高斯消元法的c语言编程,用C语言编程高斯全主元消元法

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

shortlane

2013.10.25

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:46%    等级:12

已帮助:5562人

//TurboC 2.0太落后了,建议使用VC++6.0。

#include"stdio.h"

#include"math.h"

//最大49阶

#define N 50

void Gauss(float U[N][N],int n);

void main()

{

int n,i,j;

float U[N][N];

printf("------------特殊说明---------------\n");

printf("当输出的数据含有时,表示在计算过程中数据已经出现溢出!\n");

printf("-----------------------------------\n");

printf("输入对应方程的阶数:");

scanf("%d",&n);

for(i=0;i

for(j=0;j

U[i][j]=0;

printf("输入方程组的增广矩阵:\n");

for(i=0;i

for(j=0;j<=n;j++)

scanf("%f",&U[i][j]);

Gauss(U,n);

}

//高斯选列主元消去法

void Gauss(float U[N][N],int n)

{

int i,j,m,row;

float max,t,sum;

float result[50];

for(m=0;m

{

//选取主元

max=U[m][m];

for(i=m;i

{

if(fabs(max)

{

max=U[i][m];

row=i;

}

}

if(fabs(max)<0.01)

{

printf("主元接近于零,方法失效!\n");

return;

}

else

{

if(max!=U[m][m])

{

for(j=m;j<=n;j++)

{

t=U[m][j];

U[m][j]=U[row][j];

U[row][j]=t;

}

}

}

//消元

for(i=m+1;i

{

float t1,t2;

t1=U[i][m];

t2=U[m][m];

U[i][m]=0;

for(j=m+1;j<=n;j++)

U[i][j]=U[i][j]*t2-U[m][j]*t1;

}

}

//回代求解

for(i=n-1;i>=0;i--)

{

if(i==n-1) result[i]=U[i][i+1]/U[i][i];

else

{

sum=0;

for(j=i+1;j

sum=U[i][j]*result[j]+sum;

result[i]=(U[i][n]-sum)/U[i][i];

}

}

//输出根

printf("高斯选列主元消去法求得的解为:\n");

for(i=0;i

printf("%3.3f ",result[i]);

printf("\n");

} 展开

00分享举报

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值