📄 john1.cpp
字号:
#include<stdio.h>
#include<math.h>
#define N 500
void main()
{
int i;
float x[4];
float c[4][5]={10,-1,2,0,-11,0,8,1,3,-11,2,-1,10,0,6,-1,3,-1,11,25};
void GaussSeidel(float *,int,float[]);
GaussSeidel(c[0],4,x);
for(i=0;i<=3;i++)
printf("x[%d]=%f\n",i,x[i]);
}
void GaussSeidel(float *a,int n,float x[])
{
int i,j,k=1;
float d, dx ,eps;
for(i=0;i<=n-1;i++) x[i]=0.0;
while(1)
{
eps=0;
for(i=0;i<=n-1;i++)
{
d=0;
for(j=0;j<=n-1;j++)
{
if(j==i)continue;
d+=*(a+i*(n+1)+j)*x[j];
}
dx=(*(a+i*(n+1)+n)-d)/(*(a+i*(n+1)+i));
eps+=fabs(dx-x[i]);
x[i]=dx;
}
if(eps<1e-6)
{
printf("迭代次数为:%d\n",k);
return;
}
if(k>N)
{
printf("迭代发散\n");
return;
}
k++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -