标题:高斯消去法,有谁知道
只看楼主
zjjian1989
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-10-24
结帖率:100%
 问题点数:0 回复次数:2 
高斯消去法,有谁知道
用高斯消去法解线性代数,哪位高手知道啊
搜索更多相关主题的帖子: 高斯 消去法 
2008-11-17 15:47
zb95
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2008-11-22
得分:0 
你是问高斯消去法的过程吗?数值分析里有算法,随便找一本数值分析都有介绍
具体程序就自己写吧
2008-11-25 14:33
stellar_yang
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-11-6
得分:0 
#include <stdio.h>
#include <math.h>
void main()
{
int i,j,k,n,l,h,flag;
float a[100][100],b[100],m[100][100],x[100],y[100],z[100],c[100],d,t;

printf("Input n:\n");
scanf("%d",&n);

printf("input a[i][j]:\n");
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("input b[i]:\n");
for (i=0;i<n;i++)
{
scanf("%f",&b[i]);
}

/*******运算过程*******/
flag=1;
for (k=0;k<n;k++)
{
/*---选主元素---*/
  
d=a[k][k];
h=k;
for(l=k;l<n;l++)  
{  
if(fabs(a[l][k])>fabs(d))
{  
d=a[l][k];  
h=l;  
}  
}  
if(h!=k)  
{  
for(j=k;j<n;j++)  
{  
t=a[h][j];a[h][j]=a[k][j];a[k][j]=t;  
}  
t=b[k];b[k]=b[h];b[h]=t;  
}
if(a[k][k]==0)
flag=0;

/*---具体运算---*/
for (i=k+1;i<n;i++)
{
if(flag==0)
break;
m[i][k]=a[i][k]/a[k][k];
for(j=k;j<n;j++)
{
a[i][j]=a[i][j]-m[i][k]*a[k][j];
}
b[i]=b[i]-m[i][k]*b[k];
}
}

/*******回代过程*******/
if(flag!=0)
{
x[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;(i>0)||(i==0);i--)
{
y[i]=0;
for(j=i+1;j<n;j++)
{
y[j]=y[j-1]+a[i][j]*x[j];
}
x[i]=(b[i]-y[j-1])/a[i][i];
}

/*******输出结果*******/
for(i=0;i<n;i++)
{
printf("x[%d]=%f\n",i,x[i]);
}
}
else
printf("oh my god!\n");
}
2009-11-10 11:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-244791-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054627 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved