📄 新建 文本文档 (2).txt
字号:
#include <iostream>
#include <iomanip>
#include <cmath>
#define N 50
using namespace std;
void main()
{ int i,j,done=1,k=1;
const n=3;
double e=1.0e-5; //设置精度
double a[n][n]={{8,-3,2},{4,11,-1},{6,3,12}}; //存放系数矩阵
double b[n]={20,33,36};
double x0[n]={0,0,0};
double x1[n];
double u[n];
cout<<"迭代次数"<<setw(5)<<"1"<<setw(7)<<"2"<<setw(10)<<"3"<<endl;
while(done)
{ for(i=0;i<n;i++)
{ double sum=0.0;
for(j=0;j<n;j++)
if(j!=i)
sum+=a[i][j]*x0[j];
x1[i]=(b[i]-sum)/a[i][i];
u[i]=fabs(x1[i]-x0[i]);
x0[i]=x1[i];
}
cout<<k<<" ";
for(i=0;i<n;i++)
cout<<setw(10)<<setprecision(7)<<x0[i];
cout<<endl;
double max=0.0;
for(i=0;i<n;i++) //设置跳出循环也就是满足一定精度,迭代终止的条件
{ if(u[i]>max)
max=u[i];}
if(max<e) break;
k++;
if(k==N) //如果迭代次数太大,则同样跳出循环,迭代终止
{done=0;break;}
}
switch(done)
{
case 1: cout<<"方程组的解为:"<<endl; /*根据不同的done值决定输出情况*/
for(i=0;i<n;i++)
cout<<x0[i]<<" ";
break;
case 0: cout<<"迭代次数已达上限,迭代失败!"<<endl;
break;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -