收藏 分享(赏)

实验二列主元消元法.doc

上传人:hskm5268 文档编号:8838434 上传时间:2019-07-14 格式:DOC 页数:4 大小:82KB
下载 相关 举报
实验二列主元消元法.doc_第1页
第1页 / 共4页
实验二列主元消元法.doc_第2页
第2页 / 共4页
实验二列主元消元法.doc_第3页
第3页 / 共4页
实验二列主元消元法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、列主元消元法解线性方程:学院:计算机与信息工程学院 班级: 计算机科学与技术师范汉班学号: 20081121107姓名: 黄志强指导老师: 马季驌1. 算法分析:列主元消元法解线性方程组的核心思想与高斯消元法一致。都是将增广矩阵中的系数矩阵部分化为上三角形式,然后采用回代或者将系数矩阵化为对角型从而得到方程组的解。只不过在列主元消元法中需要将待处理列的元素中取绝对值最大的那个通过行变换移至对角线位置,作为消元媒介。只需要添加一个找列主元再换行的语句即可。大多数对程序的说明,都加在程序中作为注释。2. 程序代码:#includeusing namespace std;float a2020;fl

2、oat fabs(float x)return x0?x:-x;int main()int n,i,j,p,x,y,f,q,bigq;float k,t,max;coutn/作为系数矩阵对应行列式是否为 0 的标识; coutaij;/输入线性方程组的系数矩阵 coutain+1;/输入完毕 for(j=1;jmax)max=fabs(aqj);bigq=q; coutji-) / i 代表第 J 大步的第 i 小步 k=-aij/ajj; for(p=1;p=n+1;p+)aip+=ajp*k;if(aip0.0001)aip=0; /依次消去 aij元,构造上三角行列式 cout“一小步:

3、n 行乘系数为:“k“;乘“k“处理之后得到:“endl; for(x=1;x=n;x+)for(y=1;y=n+1;y+)cout.setf(ios:left);cout.width(5);coutaxy“ “;/xy 原来是沿用大循环中的 ij,导致循环一次就出错的局面:看来还是分别用循环控制变量的号;遇到多重循环的例子不能复制粘贴取巧 coutendl; /行列式消去化零情况的跟踪报道 /*/for(j=1;j=n;j+) /j 代表一大步 for(i=f=1;iji+) / i 代表第 J 大步的第 i 小步 k=-aij/ajj; for(p=1;p=n+1;p+)aip+=ajp*

4、k; /依次消去 aij元,由上三角系数矩阵构造对角线系数矩阵 /* coutkendl; for(x=1;x=n;x+)for(y=1;y=n+1;y+)coutaxy“ “;/xy 原来是沿用大循环中的 ij,导致循环一次就出错的局面:看来还是分别用循环控制变量的号;遇到多重循环的例子不能复制粘贴取巧 coutendl; */行列式消去化零情况的跟踪报道 /*/ if(judge!=0)cout“n 该线性方程的解为: “endl;for(i=1;i=n;i+)cout“x“i“=“ain+1/aiiendl; /计算完毕,输出结果 cout“请依次输入行列式的阶数(按 0 结束):“; 3. 运行结果4.结果分析:测试数据为:31 1 11 2 12 1 16 8 7本程序与高斯消元法类似,每做一大步,一小步都做一个输出的跟踪报道。很清楚的反映了运算的每个步骤。对于第 J 大步的列主元对其赋初值为 ajj的绝对值,并依次和第 J 行以后的列元素的绝对值作比较,用 bigQ 记下比较后的列主元的行号;在对第 J 列第 I 行消元时,先输出行乘系数 K= -aij/ajj, 再输出第 J 行乘以 K 并加到第 i 行后的矩阵;最后输出方程的解。考虑到列主元 ajj任然可能为零,不能作为自然主元的情况,说明该方程组无解或者解不唯一,本程序附加了一个语句使求解过程提前结束。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报