1 / 7
文档名称:

理学试验直接法求解线性方程组.pptx

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

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

分享

预览

理学试验直接法求解线性方程组.pptx

上传人:niuww 2022/10/27 文件大小:157 KB

下载得到文件列表

理学试验直接法求解线性方程组.pptx

相关文档

文档介绍

文档介绍:该【理学试验直接法求解线性方程组 】是由【niuww】上传分享,文档一共【7】页,该文档可以免费在线阅读,需要了解更多关于【理学试验直接法求解线性方程组 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。试验3解线性方程组的直接法
/*DirectMethodforSolvingLinearSystems*/
求解
§1高斯消元法/*GaussianElimination*/
高斯消元法:
思路
首先将A化为上三角阵/*upper-triangularmatrix*/,再回代求解/*backwardsubstitution*/。
=
Guass列主元消去法步骤
基本步骤
,b,TOL
=1:N

|P|<=TOL则停止,输出无解信息,否则




#include<>
#include<>
#include<>
#include<>
#defineN4
#defineEPS1e-5
voidGuass(doubleA[][N+1])
{inti,j,k=0,I,t;
doublew=0,p,b;
for(k=0;k<N-1;k++)
{/*选主元*/
p=A[k][k];
I=k;
for(i=k+1;i<N;i++)
if(fabs(A[i][k])>fabs(p))
{p=A[i][k];
I=i;
}
if(fabs(p)<EPS)
{printf("thenumberiserror!i=%d,
k=%d\n",i,k);
exit(0);
}
/*换行*/
if(I!=k)
for(j=0;j<N+1;j++)
{b=A[k][j];
A[k][j]=A[I][j];
A[I][j]=b;
}
for(i=k+1;i<N;i++)
{/*行乘数*/
A[i][k]=A[i][k]/A[k][k];
for(j=k+1;j<N+1;j++)
A[i][j]=A[i][j]-A[i][k]*A[k][j];
}
}
/*输出变换后的矩阵*/
printf("TheMatrix:\n");
for(i=0;i<N;i++)
{for(j=0;j<N+1;j++)
printf("A[%d][%d]=%",
i,j,A[i][j]);
printf("\n");
}
if(fabs(A[N-1][N-1])<EPS)
{printf("thenumberiserrorA=%f\n",
A[N-1][N-1]);
exit(-1);
}
A[N-1][N]=A[N-1][N]/A[N-1][N-1];
/*回代求解*/
for(k=N-2;k>=0;k--)
{w=0;
for(j=k+1;j<N;j++)
w=w+A[k][j]*A[j][N];
A[k][N]=A[k][N]-w;
A[k][N]=A[k][N]/A[k][k];
}
/*方程组的解*/
printf("theroot:\n");
for(i=0;i<N;i++)
printf("x[%d]=%f\n",i,A[i][N]);
}
voidmain()
{doubleA[N][N+1]=/{1,-1,2,-1,-16,2,-2,3,-3,-40,1,1,1,0,-4,1,-1,4,3,8};
clrscr();
Guass(A);
}