?? 賽德爾迭代法.cpp
字號:
//
#include <iostream.h>
#include <math.h>
int main()
{
int i,j,n;
long double x[100],B[100][100],F[100],e,sum,a,max=0;
cout<<"***************賽德爾迭代法***************"<<endl;
cout<<"輸入方程組的階數n=";
cin>>n;
cout<<"輸入允許的誤差e=";
cin>>e;
cout<<"輸入系數矩陣B:"<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>B[i][j];
cout<<"輸入左端項F:"<<endl;
for(i=1;i<=n;i++)
cin>>F[i];
for(i=1;i<=n;i++)
x[i]=0;
while(1)
{
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
sum=sum+B[i][j]*x[j];
}
a=x[i];
x[i]=sum+F[i];
if(fabs(x[i]-a)>max) max=fabs(x[i]-a);
}
if(max<e)
{
for(i=1;i<=n;i++)
cout<<"x["<<i<<"]="<<x[i]<<" ";
return 1;
}
else max=0;
}
cout<<"N次迭代后不收斂;"<<endl;
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -