关于一个C语言编写列主元消元法的问题,求助

 我来答
从空去听8
2017-12-31 · TA获得超过7442个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5717万
展开全部
高斯消元法是将方程组中的一方程的未知数用含有另一未知数的代数式表示,并将其代人到另一方程中,这就消去了一未知数,得到一解;或将方程组中的一方程倍乘某个常数加到另外一方程中去,也可达到消去一未知数的目的。消元法主要用于二元一次方程组的求解。核心
1)两方程互换,解不变;
2)一方程乘以非零数k,解不变;
3)一方程乘以数k加上另一方程,解不变[2] 。
如是老师布置数值作业实验,可以借鉴,请勿抄袭(NEU)
//列主元高斯消去法#include <stdio.h>#include <stdlib.h>int main()
{ int n; int j,j1,j2,j3,j4,j5,j6,j7,j8,j9,j10; double temp; double SUM=0; printf("请输入未知解的个数:"); scanf("%d",&n); double A[n][n+1]; double x[n]; printf("请输入系数矩阵增广后的矩阵:\n"); for( j=0;j<n;j++) for( j1=0;j1<n+1;j1++) scanf("%lf",&A[j][j1]); for(j2=0;j2<n-1;j2++) //完全主元素
{ for(j3=j2+1;j3<n;j3++)
{ if(A[j2][j2]>=A[j3][j2]) continue; else
{ for(j4=j2;j4<n+1;j4++)
{
temp = A[j2][j4];
A[j2][j4] = A[j3][j4];
A[j3][j4] = temp;
}
}
} if(A[j2][j2]==0) printf("no unique solution!\n"); for(j5=j2+1;j5<n;j5++)
{ for(j6=j2+1;j6<n+1;j6++)
A[j5][j6]=A[j5][j6]-((A[j5][j2]*A[j2][j6])/A[j2][j2]);

}
} for(j7=n-1;j7>=0;j7--) //回代
{
x[j7]=(A[j7][n]-SUM)/A[j7][j7];
SUM = 0;
j9 = j7-1; for(j8=j7-1;j8<n-1;j8++)
{
SUM = SUM+x[++j9]*A[j7-1][j9];
}
} printf("所求解分别为(保留五位小数):"); //输出解
for(j10 = 0;j10<n;j10++) printf("%.5lf",x[j10]); return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式