正文

guass消去求线性方程的根2006-04-19 10:34:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/bakers/12734.html

分享到:

//目标   用高斯消去法求线性方程的根 //C++实现 #include"stdio.h"#include"iostream"#include"conio.h" using namespace std; class guass{      public:             guass(int n,double t);             void begin();    void display();                                 int n;            // GUASS迭代的规模               double e;              double a[4][4];              double b[4];}; guass::guass(int m,double t){     n=m;  e=t; } void guass::begin(){   int k=1;   while(k<n)   {   double m;     for(int i=k+1;i<=n;i++)  {    m=a[i][k]/a[k][k];    b[i]=b[i]-b[k]*m;    for(int j=k+1;j<=n;j++)        a[i][j]=a[i][j]-a[k][j]*m;  }   k++;   }    if(k>=n) {  b[n]=b[n]/a[n][n];  for(int i=n-1;i>=1;i--)  {   double s=0.0000000;   for(int j=i+1;j<=n;j++)    s=s+a[i][j]*b[j];   b[i]=(b[i]-s)/a[i][i];  } }       }void guass::display(){ cout<<"输出最终解为:"; for(int i=1;i<=n;i++)  cout<<" x"<<i<<"="<<b[i];  } int main(){    int n;    double e;    cout<<"输入GUASS消去的规模:";    cin>>n;        cout<<endl;     cout<<"输入误差限:";    cin>>e;    guass gu(n,e);    cout<<"输入A:"<<endl;    for(int i=1;i<4;i++)       for(int j=1;j<4;j++)        cin>>gu.a[i][j];    cout<<"输入B:"<<endl;    for(i=1;i<4;i++)      cin>>gu.b[i];    gu.begin();    gu.display();    getch(); return 1;}               以上程序在DEV C++  VC++6.0中调试通过                 

阅读(4393) | 评论(2)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册