⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jacobi

📁 收集的C语言算法程序
💻
字号:
Jacobi迭代2007-07-16 18:35#include<iostream>
#include<math.h>
using namespace std;
#define n 4                           
#define err 0.01
#define N 10

void main()
{
int i,j,k;
float a[n][n],b[n],x[n],y[n],tempsum=0,sum=0;

cout<<"Please input the matrix of coefficients:"<<"\n";
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>a[i][j];

cout<<"Please input the right part:"<<"\n";
for(i=0;i<n;i++)
cin>>b[i];

cout<<"Please input the initializing vector x:\n";
for(i=0;i<n;i++)
{
cout<<"x["<<i+1<<"]"<<"=";
     cin>>x[i];
}
k=1;                                        //k要放在while之外
while(1)
{
    for(i=0;i<n;i++)
    {
   for(j=0;j<n,j!=i;j++)
      tempsum+=a[i][j]*x[j];
  
   y[i]=(b[i]-tempsum)/a[i][i];
   sum+=(y[i]-x[i])*(y[i]-x[i]);
    }
sum=sqrt(sum);
if(sum<err) {cout<<"The result is:\n"; for(i=0;i<n;i++) cout<<"x["<<i+1<<"]="<<x[i]<<"\n";break;}
else 
{
   if(k<N) {k=k+1;for(i=0;i<n;i++) x[i]=y[i];tempsum=0;sum=0;}                        //注意tempsum和sum都要重新置0
      else {cout<<"Error Warning,calculator is unable to determine the reslut!\n";break;}     //注意跳出循环
}
}
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -