#include<stdio.h>
#include<stdlib.h>
int main(){
int a,b,n;
printf("输入增广矩阵的行数列数 例:3 4\n");
scanf("%d %d",&a,&b);
printf("输入n迭代次数 \n");
scanf("%d",&n);
double matrix[a][b];
double x[a];
printf("开始输入增广矩阵\n");
for (int i = 0; i < a; i++)
{
printf("第%d行\n",i+1);
for (int j = 0; j < b; j++)
{
scanf("%lf",&matrix[i][j]);
}
}
printf("设定初值x:\n");
for (int i = 0; i < a; i++)
{
scanf("%lf",&x[i]);
}
for (int i = 0; i < n; i++)
{
double count=0;
for (int j = 0; j < a; j++)
{
for (int k = 0; k < a; k++)
{
if (k==j)
{
continue;
}
count+=matrix[j][k]*x[k];
}
x[j]=(matrix[j][a]-count)/matrix[j][j];
count=0;
}
printf("%d ",i+1);
for (int i = 0; i < a; i++){
printf("x%d=%lf ",i+1,x[i]);
if(i==a-1)
printf("\n");
}
}
system("pause");
return 0;
}
高斯-赛德尔迭代(Gauss–Seidel method)c语言实现
最新推荐文章于 2024-04-07 13:53:25 发布