1 / 4
文档名称:

高斯消元法解线性方程组.doc

格式:doc   大小:49KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

高斯消元法解线性方程组.doc

上传人:mh900965 2018/3/24 文件大小:49 KB

下载得到文件列表

高斯消元法解线性方程组.doc

文档介绍

文档介绍:高斯消元法解线性方程组

熟练运用已学计算方法求解方程组。
加深对计算方法技巧,选择正确的计算方法来求解各种方程组。
培养使用电子计算机进行科学计算和解决问题的能力。

合理利用Gauss消元法求解下列方程组:


Visual C++ C语言

高斯分解法:
lik=aik/akk
aij= aij- lik* akj k=1,2,…,n-1
i=k+1,k+2, …,n j=k+1,k+2, …,n+1
xn= ann+1/ ann
xk=( akn+1-∑akj xj)/ akk (k=n-1,n-2, …,2,1)

#include <>
#include <>
#include <>
#include <>
int GS(int,double**,double *,double);
double **TwoArrayAlloc(int,int);
void TwoArrayFree(double **);
void main()
{
int i,j,n;
double ep,**a,*b;
ep = 1e-4;
printf("你要解几元线性方程组:\n");
scanf("%d",&n);
a = TwoArrayAlloc(n,n);
b = (double *)calloc(n,sizeof(double));
if(b == NULL)
{
printf("内存分配失败\n");
exit(1);
}
for(i=0;i<n;i++)
{
printf("请输入第%d行相应的系数:\n",i+1);
for(j=0;j<n;j++)
{
printf("a[%d][%d]: ",i,j);
scanf("%lf",a[i]+j);
fflush(stdin);
}
printf("请输入第%d行相应的常数:\n",i+1);
printf("b[%d]: ",i);
scanf("%lf",b+i);
fflush(stdin);
}
printf("方程组:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]>0)
{
if(j>0)printf(" + ");
if(a[i][j]!=1)
printf("%lfX%d",a[i][j],j+1);
else
printf("X%d",j+1);
} if(a[i][j]<0) {
if(j>0)printf(" - ");
if(a[i][j]!=-1)
printf("%lfX%d",fabs(a[i][j]),j+1);
else
printf("X%d",j+1);
} }
printf("= %lf\n",b[i]);
}
if(!GS(n,a,b,ep)) {
printf("不可以用高斯消去法求解\n");
exit(0)