正文

guass-seidel算法程序实例2006-04-20 10:31:00

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

分享到:

//完成 时间:4.17 晚  7点     #include"stdio.h"#include"iostream"#include"conio.h"#include"math.h" using namespace std;                     int n;            // GUASSµü´úµÄ¹æÄ£               double e;                  double a[4][4]={{0,0,0,0},{0,10,-1,-2},{0,-1,10,-2},{0,-1,-1,5}};              double b[4]={0,7.2,8.3,4.2};     double x[4];     double y[4]; double max(){ double s=0.0000000000; for(int i=1;i<=3;i++)  if(fabs(x[i]-y[i])>s)s=fabs(x[i]-y[i]); return s;} void display(){ cout<<endl; for(int i=1;i<=3;i++)  cout<<" x"<<i<<"="<<y[i];  } void begin(){   int k=0;   for(int i=1;i<=3;i++)   {    x[i]=0;    y[i]=0;      }   while(k<n)   {    for(i=1;i<=3;i++)   {            double s=0;      for(int j=1;j<=3;j++)    s=s+a[i][j]*y[j];   s=s-a[i][i]*y[i];   y[i]=(b[i]-s)/a[i][i];    }   if(max()<e){display();break;}   display();   for(int t=1;t<=3;t++)    x[t]=y[t];   k++;     }    if(k>=n)cout<<"µü´úʧ°Ü£¡"<<endl;         }  int main(){          cout<<"ÊäÈëGUASS-SEIDELµü´úµÄ¹æÄ£:";    cin>>n;        cout<<endl;     cout<<"ÊäÈëÎó²îÏÞ:";    cin>>e;               cout<<"ÊäÈëA:"<<endl;    for(int i=1;i<4;i++)       for(int j=1;j<4;j++)        cout<<" a"<<i<<j<<"="<<a[i][j]<<endl;    cout<<"ÊäÈëb:"<<endl;    for(i=1;i<4;i++)       cout<<" b"<<i<<"="<<b[i]<<endl;       begin();     getch(); return 1;}      声明:格式不统一  出现乱码  懒得改  都事汉字部分  可在 dev c++中调试

阅读(4685) | 评论(0)


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

评论

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