jacobi.c
来自「这是数值方法中各种插值算法」· C语言 代码 · 共 86 行
C
86 行
#include <stdio.h>
#include <math.h>
#define N 3
void main()
{
int n1=3;
double x1[N]={0,0,0};
double a1[N][N]={1,2,-2,1,1,1,2,2,1};
double b1[N]={1,3,5};
void Jacobi(int n,double xx[N],double a[N][N],double b[N]);
Jacobi(n1,x1,a1,b1);
getchar();
}
void Jacobi(int n,double xx[N],double a[N][N],double b[N])
{
int i,j,k;
double sum;
double x[N],bj[N][N],fj[N];
for(i=0;i<N;i++)
{
x[i]=xx[i];
fj[i]=b[i]/a[i][i];
for(j=0;j<N;j++)
{
if(i==j)
{
bj[i][j]=0;
}
else
{
bj[i][j]=-a[i][j]/a[i][i];
}
}
}
for(k=0;k<n;k++)
{
for(i=0;i<N;i++)
{
sum=0.0;
for(j=0;j<N;j++)
{
sum=sum+x[j]*bj[i][j];
}
xx[i]=sum+fj[i];
}
for(i=0;i<N;i++)
{
x[i]=xx[i];
}
}
printf("The result of X is :\n");
for(i=0;i<N;i++)
{
printf(" %f\n",x[i]);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?