解线性方程组的迭代法.c
来自「高斯-塞德尔迭代法算法: 设方程组AX=b 的系数矩阵的对角线元素」· C语言 代码 · 共 39 行
C
39 行
#include<stdio.h>
#include<math.h>
#include<string.h>
#define M 3
#define N 4
void main()
{ static float a[M][N]={{5,-1,-1,3},
{1,-10,20,11},{-10,1,-5,-14}};
float x[M]={0,0,0};
double r;
float t,q,e=0.0001;
int i=0,j,k,lm=100;
for(i;i<M;i++)
{ for(j=0;j<N;j++)
printf("%15f",a[i][j]);
printf("\n");
}
for(k=0;k<lm;k++)
{
r=0;
for(i=0;i<M;i++)
{
q=0;
t=x[i];
for(j=0;j<M;j++)
{
if(j!=i) q=q+a[i][j]*x[j];
x[i]=(a[i][N-1]-q)/a[i][i];
}
if(fabs(x[i]-t)>r) r=fabs(x[i]-t);
}
if(r<e)break;
}
if(k==lm)printf("no");
else
for(i=0;i<M;i++)
printf("x(%d)=%15.7f\n",i,x[i]);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?