📄 雅各比.cpp
字号:
#include<iostream>
using namespace std;
#include<math.h>
float max(float array[],int n)
{
int i;
float maximum=0.0;
for(i=0;i<=n;i++) if(maximum<=array[i]) maximum=array[i];
return maximum;
}
void main()
{
float a[3][3],b[3],x[3],y[3],m[3];
int i,j,k,n;
cout<<"输入a[3][3]:"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) cin>>a[i][j];
}
cout<<"input b[3] please"<<endl;
for(i=0;i<3;i++) cin>>b[i];
cout<<"输入初值:"<<endl;
for(i=0;i<3;i++) cin>>x[i];
float sum,maximum,e;
k=1;
float N;
maximum=0.0;
cout<<"n=";cin>>n;
cout<<"e=";cin>>e;
cout<<"输入迭代次数:"<<endl;
cout<<"N=";cin>>N;
sub:
for(i=0;i<=n;i++)
{
sum=0;
for(j=0;j<=n;j++)
{
if(j==i) continue;
sum=sum+a[i][j]*x[j];
}
y[i]=(b[i]-sum)/a[i][i];
m[i]=fabs(x[i]-y[i]);
}
maximum=max(m,n);
if(maximum<e) {for(i=0;i<=n;i++) cout<<"Y"<<i<<"="<<y[i]<<"\n";}
else
{
if(k==N) cout<<"error!";
else
{
k=k+1;for(i=0;i<=n;i++) x[i]=y[i];goto sub;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -