- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高斯列主元消去法解线性方程组的实现
高斯列主元消去法解线性方程组的实现
班级 学号 姓名榴莲
一、实验任务
采用高斯列主元消去法求解线性方程组,以下消解方程为例。
1 2 1 x1 0 2 2 2 x2 = 3 -1 -3 0 x3 2
二、编程环境
Windows7,Codeblock.
三、算法步骤
Gauss 消去法的基本思想是,通过将一个方程乘或除某个数以及两个方程相
加减这两种运算手续,逐步减少方程组中变元的数目,最终使某个方程只含有一
个变元,从而得出所求的解。对于,Gauss 消去法的求解思路为:
(1) 若,先让第一个方程组保持不变,利用它消去其余方程组中的,使之变成
一个关于变元的 n-1 阶方程组。
(2) 按照(1)中的思路继续运算得到更为低阶的方程组。(3) 经过 n-1 步的消元后,得到一个三角方程。
(4) 利用求解公式回代得到线性方程组的解。
四、程序流程图
数据结构:
i,j 变量 double a[10][10] a 矩阵 double b[10] b 矩阵 double x[10] 求解的 x 矩阵 n 矩阵的维度
五、程序
#includestdio.h
#includemath.h
void guess(double a[][10],double b[],double x[],int n) {
int k,i,j;
for(k=0; kn-1; k++) { double ma = a[k][k]; int tab = k; for(i=k+1; in; i++) {
if(fabs(ma)fabs(a[i][k])) { ma = a[i][k];
tab = i;
}
}
double mid; mid = b[k]; b[k] = b[tab]; b[tab] = mid; for(i=k; in; i++) {
mid = a[k][i]; a[k][i] = a[tab][i]; a[tab][i] = mid;
}
for(i=k+1; in; i++) { b[i]=b[i]-a[i][k]/a[k][k]* b[k]; for(j=k+1; jn; j++) {
a[i][j]=a[i][j]-a[i][k]/a[k][k]*a[k][j];
}
a[i][k]=0;
}
}
for(k=n-1; k=0; k--) { double s =0;
for(j=k+1; jn; j++) s += a[k][j]*x[j]; x[k]=(b[k]-s)/a[k][k];
}
}
int main() { int i,j;
double a[10][10] = {{1,2,1},{2,2,3},{-1,-3,0}}; double b[10] = {0,3,2};
double x[10]; int k,n=3; guess(a,b,x,n);
printf(三角化矩阵 A:\n); for(i=0; in; i++) {
for(j=0; jn; j++) { printf(%7.2lf,a[i][j]);
}
printf(\n);
}
printf(\n 方程数值 b:\n);
for(i=0; in; i++) printf(%7.2lf,b[i]);
printf(\n);
printf(\n 求得的函数值 x:\n);
for(i=0; in; i++) printf(%7.2lf,x[i]);
printf(\n);
}
六、实验结果及分析
高斯消去法由消元和回代两个过程组成。消元就是对增广矩阵做有限次的初等行变换,使它的系数矩阵部分变为一个上三角矩阵。用一个数乘某一行加到另一行上。经过 n-1 次消元后,原增广矩阵变为行阶梯矩阵,然后就可以求的 x 值。
七、心得体会
通过这次数值分析实验,使我加深了对 Gauss 消去求解线性方程组的理解,
掌握了利用各种方法进行 Gauss 消元解线性方程组。我相信,在我以后的学习生
文档评论(0)