正文

雅克比迭代算法2006-11-01 21:13:00

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

分享到:

雅克比迭代算法     #include <iostream> #include <string> #include <vector> #include <iomanip> using namespace std;   const int n=3;          //设置方程组的维   float a[n][n],x[n],b[n];   void input_data() //输入方程组的相关数据 {       cout<<"输入方程组的系数矩阵a["<<n<<"]["<<n<<"]:"<<endl;     for(int i=0;i<n;i++)         for(int j=0;j<n;j++)             cin>>a[i][j];     cout<<"输入x[1,...,"<<n<<"]的初值:"<<endl;     for(i=0;i<n;i++)                    cin>>x[i];     cout<<"输入b[1,...,"<<n<<"]的初值:"<<endl;     for(i=0;i<n;i++)                    cin>>b[i];  }   void output_equation()  //输出方程组 {     for(int i=0;i<n;i++)     {         for(int j=0;j<n;j++)         {             if(j>0&&a[i][j]>0)                 cout<<"+";             cout<<a[i][j]<<"  x["<<j+1<<"]  ";         }         cout<<"="<<b[i]<<endl;     } }   void main () {     input_data();     int counter;            //设置计算时迭代的次数     cout<<"输入迭代的次数"<<endl;     cin>>counter;     system("cls");     output_equation();     int k=0,i=0;            //k用来统计迭代的次数;i用来表示x的序列     float m_num1;     //m_x用来保存x的原先值;m_num1用来计算j!=i的数据之和     cout<<endl;     cout<<"k\t";     for(int j=0;j<n;j++)         cout<<"x["<<j+1<<"]\t\t\t";     cout<<endl;     cout<<k<<"\t";     k++;     cout << setiosflags(ios::fixed);   //和下一句结合起来用来设定小数位的位数     cout << setprecision(10);     float x_next[n];     for(j=0;j<n;j++)     {         cout<<x[j]<<"\t\t";     }     cout<<endl;     do     {               m_num1=0;         for(j=0;j<n;j++)         {             if(j!=i)                 m_num1=m_num1+a[i][j]*x[j];             }         x_next[i]=(b[i]-m_num1)/a[i][i];                if(i<n-1)             i++;         else         {             for(j=0;j<n;j++)                 x[j]=x_next[j];             cout<<k<<"\t";             for(j=0;j<n;j++)                 cout<<x[j]<<"\t\t";             cout<<endl;             i=0;             k++;         };          }while(k<=counter); } 引用地址:http://blog.programfan.com/trackback.asp?id=19815 

阅读(2763) | 评论(1)


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

评论

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