- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学会高斯列主元消去法求线性方程的解matlab
实验目的:学会高斯列主元消去法求线性方程的解实验内容:编程完成高斯列主元消去法用 format rat模式设置数字显示模式生成7*7和7*1的矩阵A和b,要求A、b均为随机整数,且值介于[-100, 100]之间,且数据的符号大致各半用高斯列主元消去法求解方程Ax=b算法中使用的数据及运算结果用得到的x与x=A\b比较,验证结果是否正确上机报告内容:描述高斯列主元消去法的算法过程画出算法的流程图(或算法主要步骤描述)写出测试用例及运行结果写出各个重点步骤的设计方法或注意事项写出在编程过程中遇到的问题和解决方法上机心得体会实验过程:1.高斯列主元消去法的算法过程先进行选行号与交换行的步骤. 即对, 执行 a) 选行号, 使, 称为第k个主元. b) 交换第k行与行, 即交换与及与, .作初等行变换如下:第一步, 记, , , .设, 对计算 , 第二步, 设, 对计算, , 如此继续, 第步结束, 得矩阵(n)然后进行回代, 即可解出:,, .2.算法的流程图3.测试用例及运行结果先按照题目要求,生成7*7和7*1的矩阵A和b,要求A、b均为随机整数,且值介于[-100, 100]之间,且数据的符号大致各半所用程序为A=randsrc(7,7,[-100:100])b=randsrc(7,1,[-100:100])结果为A = -24 29 46 -11 -66 -98 -87 72 64 -38 39 96 79 98 71 32 68 24 -46 -60 17 19 -32 14 59 -50 -40 -15 -1 -42 -26 92 76 32 3 80 -32 41 5 48 -43 -33 65 7 9 76 -73 -6 -13 b = -55 16 52 6 28 -58 -24 然后用编写的matlab程序运行得到如下结果,p =6 2 3 5 7 1 4 x = -2229/2180 -161/773 6679/3313 519/964 -197/4098 2034/3043 7879/6996 为了验证结果是否正确,用用x=A\b得到x = -2229/2180 -161/773 6679/3313 519/964 -197/4098 2034/3043 7879/6996 与上述结果相同,所以验证上述程序运行出来的结果是正确的正确。4.写出各个重点步骤的设计方法或注意事项程序附录1.生成7*7和7*1的矩阵A=randsrc(7,7,[-100:100])b=randsrc(7,1,[-100:100])format rat; %设定显示结果为近似有理数disp(请输入未知数系数矩阵A:);A=input(A=);disp(请输入常数项列向量b:);b=input(b=);detA = det(A); %求行列式A的值ifdetA=0disp (‘A是奇异矩阵’)breakendn=length(b); %求np=1:n;%生成一个数组用来存放换行次序lu=A; %将A赋值给lu便于记忆y=[]; %记录消去法中常数项b的中间变量for k=1:n [c,i]=max(abs(lu(k:n,k))); %找出最大值放入C,以及最大值的位置放入iik=i+k-1; %计算最大值对应元素下标ifik~=km=p(k);p(k)=p(ik);p(ik)=m; %记录这一步骤是用的第几行作为主元ck=lu(k,:);l
文档评论(0)