高斯列主元消去法解线性方程组
原创
©著作权归作者所有:来自51CTO博客作者lucky1的原创作品,请联系作者获取转载授权,否则将追究法律责任
#include<stdio.h>
#include<math.h>
Gaussdiedai(n,a,x)
int n;
double *a,*x;
{
int i,j,k,r;
double m;
for(k=0;k<n-1;k++)
{
r=k;
m=fabs(a[k*(n+1)+k]);
for(i=k+1;i<n;i++)
if(fabs(a[i*(n+1)+k])>m)
{
r=i;
m=fabs(a[i*(n+1)+k]);
}
if(r>k)
for(j=k;j<n+1;j++)
{
m=a[k*(n+1)+j];
a[k*(n+1)+j]=a[r*(n+1)+j];
a[r*(n+1)+j]=m;
}
for(i=k+1;i<n;i++)
{
m=a[i*(n+1)+k]/a[k*(n+1)+k];
for(j=k+1;j<n+1;j++)
a[i*(n+1)+j]-=m*a[k*(n+1)+j];
}
}
x[n-1]=a[(n-1)*(n+1)+n]/a[(n-1)*(n+1)+(n-1)];
for(i=n-2;i>=0;i--)
{
m=a[i*(n+1)+n];
for(j=i+1;j<n;j++)
m-=a[i*(n+1)+j]*x[j];
x[i]=m/a[i*(n+1)+i];
}
}
main()
{
double a[3][4]={{0.001000,2.000,3.000,1.000},{-1.000,3.712,4.623,2.000},{-2.000,1.072,5.643,3.000}},x[3];
int i;
Gaussdiedai(3,a,x);
for(i=0;i<3;i++)
printf("%f\n",x[i]);
}
上一篇:用追赶法解线性方程组
下一篇:高斯全主元消去法解线性方程组
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
解线性方程组 python 解线性方程组的步骤
4.1 线性方程组的初等变换用消元法解线性方程组1)交换两方程位置2)用非零数乘某方程3)某方程的l倍加到另一方程4.2 线性方程组有解的判定系数矩阵 增广矩阵 方程组的解:1)当,有解:唯一解; &
解线性方程组 python 线性代数 数据分析 数据挖掘 算法