Gauss method

Thuật toán này quá quen thuộc với những ai đã học môn “Đại số tuyến tính” hoặc “Giải thích số”. Tôi cài đặt ra đây hi vọng có ích cho các bạn. Dùng VS2005, ngôn ngữ C++.

#include<iostream>
#include<math.h>
#include<conio.h>
#include<stdio.h>

using namespace std;
void main()
{
—–float A[20][20];
—–float X[20];
—–float B[20];
—–float S;
—–int i,j,k,m;
—-int s=0;
—–int n;
—–cout<<“An so bat ki de bat dau\n”;
—–cin>>s;
—–while(s!=0){
———-cout<<“he co bao nhieu phuong trinh???        “;
———-cin>>n;
———-cout<<“ban dau nhap vao 1 ma tran da\n”;
———-cout<<“//////////////////////////////\n”;
———-for(i=0;i<n;i++)
—————for(j=0;j<=n;j++)
—————{
——————–cout<<“A[“<<i<<“][“<<j<<“]    =    “;
——————–cin>>A[i][j];
——————–cout<<“\n”;
—————}
—————cout<<“Ta co ma tran tong quat cua he pt nhu sau\n”;
————–-for(i=0;i<n;i++)
—————{    for(j=0;j<=n;j++)
——————–cout<<A[i][j]<<”    “;
——————–cout<<“\n”;
—————}
///////////////////////////////////////////////////////////////////
//qua trinh thuan. Để hiểu được qú trình thuận và ngược các bạn có thể tìm đọc thuật toán này ở bất kì sách giải //tích số nào

—–for(j=0;j<=n;j++){
———-if(A[j][j]==0)
—————for(m=j+1;m<n;m++){
——————–if(A[m][j]!=0)
——————--{    for(k=0;k<=n;k++) {
————————-float tg    =    A[j][k];
————————-A[j][k]    =    A[m][k];
————————-A[m][k]    =    tg;
——————–}break;
—————}
—–}
—–for(i=j+1;i<n;i++){
———-float x=A[i][j];
———-for(k=0;k<=n;++k)
—————A[i][k]    -=    A[j][k]/A[j][j]*x;
—–}

—–cout<<“\nma tran sau khi bien doi GAUSS la\n”;
—–for(i=0;i<n;i++)
—–{
———-for(k=0;k<=n;k++)
———-cout<<A[i][k]<<”    “;
———-B[i]    =    A[i][n];
———-cout<<“\n”;
—–}
//////////////////////////////////////////////////////////////////
//qua trinh nguoc

—–X[n-1]=B[n-1]/A[n-1][n-1];
—–for(i=n-2;i>=0;i–){
———-S    =    0;
———-for(j=i+1;j<n;j++) {
—————S    +=A[i][j]*X[j];
—————X[i]    =    (B[i]-S)/A[i][i];
———-}
—–}
—–cout<<“\nnghiem cua phuong trinh la    \n”;

—–for(i=0;i<n;i++)
———-cout<<“X[“<<i<<“]    =    “<<X[i]<<“\n”;
———-cout<<“Ban co muon tiep tuc giai he phuong trinh voi chuong trinh cua HA HONG toi?\n”;
———-
cout<<“An so bat ki de tiep tuc, va ‘0’ de thoi\n”;
———-cin>>s;
—–}

}

//nếu các bạn có thắc mắc về thuật toán hãy phản hồi lại cho tôi.

4 thoughts on “Gauss method

  1. hic hic! khung khiep that! minh nhu lac vao me cung, chang hiu gi het!
    moi dau mo ra thay may dong chu nghe that “hoành choáng”, tuong hay vao lien. hic, toan ngon ngu cua dan IT. Dung la Hong IT!

  2. ban oi! sao cai chuong chinh TC Routh ay’ loi~ nhiu` wa. Mih chay ko dc ma cug ko sua dc vi mih ko bit ve C++ moi hoc wa ty C thoi. Coi lai giup mih nha ^^

  3. —————cout<<”Ta co ma tran tong quat cua he pt nhu sau\n”;
    Cái dòng này thì phải sửa lại thành:
    cout<<”Ta co ma tran tong quat cua he pt nhu sau\n”;
    Ví dụ thế

  4. hi em,theo như những gì anh đọc được code của em thì bài toán giai quyết được với ma trận cỡ 20×20 nhưng trong những bài toán cần giai một phương trình với các ma trận cỡ lớn,kích thước ma trận lên đến 100000×100000 thì gỉai quyết thế nào,đây là điều anh đang cần,dù sao cũng rất cám ơn đoạn code của em và chúc luôn vui vẻ hạnh phúc .

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s