杨顶辉数值分析大作业.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验3.1 (主元的选取与算法的稳定性) 问题提出 Gauss消去法是我们在线性代数中己经熟悉的,但是由于计算机的数值运算是在一个有 限的浮点数集合上进行的,如何才能确保Gauss消去法作为数值算法的稳定性呢? Gauss消 去法从理论算法到数值算法,其关键是主元的选取。主元的选择从数学理论上看起来平凡, 它却是数值分析中十分典型的问题。 实验内容 考虑线性方程组Ax=b,AeR^,beRf\编制一个能自动选取主元,又能手动选取主元 的求解线性代数方程组的Gauss消去过程。 实验要求 (1)「6 1 (1) 「6 1 _ 8 6 1 15 ,b = 8 6 1 15 8 6 14 取矩阵A = ,则方程有解, 1) o取n = 10计算矩 阵的条件数,分别用顺序Gauss消元、列主元Gauss消元和完全选主元Gauss消去方法 求解,结果如何? 现选择程序中手动选取主元的功能,每步消去过程总选取按模最小或按模尽可能小的元 素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元, 结果又会如何?分析实验的结果。 取矩阵阶数n = 20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过 程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。 选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数,重复上述实验,观察记录 并分析实验的结果。 算法分析及程序实现 本题的完整程序参考附件中的experiment_3_l.m.下面是对关键部分进行说明。 1.顺序Gauss法 该方法分为消去和回代两个步骤。消去步骤及主要思想如下: for step=l:n-1 %Mstep/Jr|^ for i=step+l:n; 1 (i, step) =A (iz step) /A (step,step); 咎计 H■第step+1 彳」fl勺消元囚子 b(i)=b(i)—丄(i,step)*b(step); for j=step:n A(iz j)=A(i/j)-1(irstep)*A(stepf j); end end end 回代步骤: X (n) =b (n) /A (n, n); for i=n-l:-1:1 x (i) = (b(i)-sum(x(i + 1:n) f.*A(izi+l:n)))/A(iri); end 用顺序Gauss消去法,必须要求溥)工0,否则还是需要选取主元:且就算溥)工0,若 £)|接近零,可能使得消元因子变得很大,给计算带来较大的误差。 2?列主元Gauss消去法 与Gauss消去法相比,列主元Gauss消去法只是在进入每一步消元之前,进行一个选主 元的过程: for step=l:n-1 if method==2 %列主元Gauss7肖去法 [main, i_step] =max (abs (A(step:n, step))); 直选出最大(l勺列王亍匸 i_step=i_step+step-l; A股大列土元所处的列 midA=A; %交换A的两行 A(i_stepz :)=A(step,:); A(step,:)=midA(i_stepz:); mi db=b; 毛交换b的两行 b(i_step)=b(step); b(step)=midb(i_stGp); end 一般来说,列主元消去法是比较有效的算法,舍入误差一般已经较小,是实际计算中常 用的方法。 完全选主元高斯消去法 与Gauss消去法相比,完全选主元方法多了两个步骤。一是在进入每一步消元之前,选 主元: for step=l:n-1 if method==3咎完全选主元方法… (row,col]=find(A(step:nz step:n)==max(max(abs(A(step:n,step:n) ) ))f1); row=row+step-l; col=col+step-l; %找到矩阵A右卜角(n+l-step)阶方阵小的最人值 midA=A; 色交换A中行的位置 A(row,:)=A(step,:); A(step,:)=miaA(row,:); midA=A; 侖交换A屮列的位置 A (:,col)=A(:,step); A(:,step)=midA(:/col); micib=b; %交换b中行的位置 b(row)=b(step); b(step)=midb(row); midx=x_p; $将列交换对x屮元素排列的影响记录卜?來 x_p(step)=x_p (col); x_p(col)=midx(step); end ? ? ? 另外,由于X中的元素在选主元的过程中重新排列了,所以最后求出的结果碍要重排回 原来的顺序: if (method==3)or(method==4) m

文档评论(0)

152****6253 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档