方程组求解.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
方程组求解

《C语言程序设计实验指导》 一、目的 设计和实现一个线形方程求解的软件包,参与一个软件设计、开发的全过程,综合提高学生计算机应用的能力。 二、要求 用ANSI C设计求解线性方程组的通用函数,包括:高斯消元法、选主元高斯消元法、全主元高斯消元法,迭代法、高斯—赛得尔迭代法(至少包括两种不同算法)。 示例程序另附 三、求解线性方程组的常用算法简介 假设以下讨论的方程组有唯一解,即A-1存在。在此,求解给定未知数的方程组(四元一次),从而展开、分析问题,归纳出求解一般的、n个未知数的方程组的算法和程序。 1 有回代的高斯消元法 ⑴ 消元步骤 ▲ 第1次消元(k=1) ① 第1个方程同除以a11得1.2式。式中a12、a13、a14、a15均为同除a11后的值,因为考虑到在程序中用数组元素与矩阵元素对应,只是1个用当前值覆盖被除之前的值的问题,所以1.2式中未以a12表示相除后的该元素以区别于a12的原值。 ② 将1.2式第1行同乘以-a21加到第2行上,使a21为0、第2行其它元素作相应改变而第2个方程式的相等关系不变:   a22=a22-a12*a21  a23=a23-a13*a21   a24=a24-a14*a21  a25=a25-a15*a21 同样,将1.2式第1行同乘以-a31加到第3行上、同乘以-a41加到第4行上。计算步骤如下: 归纳出第1次消元过程的算法1.3(k=1)式,第1次消元后的结果如1.4式所示。 ▲ 第2次消元(k=2) ① 第2个方程同除以a22得1.5式。 ② 将2.5式第2行同乘以-a32、-a42分别加到第3行、第4行,计算步骤分别表示如下: 可归纳出第2次消元算法,仍可用1.3式表示(k=2)。第2次消元后的结果如1.6式所示。 ▲ 第3次消元(k=3) ① 第3个方程同除以a33得1.7式。 ② 将1.7式第3行同乘以-a43加到第4行: 第3次消元过程的算法,还可以用1.3式表示(k=3)。消元后的结果如1.8式所示。 ⑵ 回代步骤 根据消元后所得1.8式,可知x4=a45/a44 ;进而可求x3、x2、x1:考虑到在算出x4后a45的值无须保留、等等,可将方程组的解均存储到A数组的最后1列。   ⑶ 有回代高斯消元法解n元1次线性方程组程序流程图   此前,n行n+1列数组a的前n列存放方程组的系数矩阵,最后1列存放方程组的右端项。此后,a的最后1列存放方程组的解。 2 无回代的高斯消元法 ⑴ 与有回代高斯消元法相比较:第k次消元时,不仅要将行数大于K的行上第k列元素消为0,还要将行数小于K的行上第k列元素消为0。以2.1式为例,经4次消元,每次消元后结果依次如下:   ⑵ 无回代高斯消元法解n元1次线性方程组程序流程图 3 全主元高斯消元法 考虑到消元过程中,有除法运算,当除数较小时,将产生较大的舍入误差,直接影响到解的精度。因此,全主元方法是:① 在第k次消元前,在方阵右下方的n-k+1阶子阵中找出绝对值最大的元素aLm;② 将矩阵的第L行与第K行对调,再将矩阵的第M列与第K列对调,使得aLm调换到K行K列的位置;③ 再执行消元步骤。 例如,某4元1次方程组第1次消元后结果如下式⑴所示,则第2次消元前应在系数矩阵的右下方3行、3列(阴影部分)寻找绝对值最大的元素:L为3,M为4(该元素为9)。 将第3行与第2行对调,对调后结果如下式⑵;再将第4列与第2列对调,结果如下式⑶。 ⑴ 解决因调列而产生的问题   ⑵ 全主元高斯消元法解n元1次线性方程组程序流程图 对调矩阵的两行(系数、右端项),不影响解的顺序,消元过程结束后,a1,n+1即x1、a2,n+1即x2、...、an,n+1即xn。而将矩阵的两列对调,使解的顺序发生了变化,这种变化在多次消元后更是难以确定的。为追踪因调列而导致解的顺序的变化情况,在程序中可设立1个数组如ij。   iji=i(i=1,n),初值表示消元前解的顺序。此后,每有换列发生,在将第M列与K列对调的同时、还要将ijk与iji对调。这样,在消元结束后,要知道ai,n+1存放的是按原顺序是哪一个x值,只要看iji值即可:若ij3为9则a3,n+1存放x9;若ij5为2则a5,n+1存放x2;等等。 4 解线性方程组的迭代法   直接解法又叫精确解法,由于方程组阶数、运算次数的增加,导致运算中舍入误差的增加,使得精确解法对许多高阶方程组反而不精确了。采用近似解法中的迭代算法,往往可以计算中令人满意的结果。 ⒈ 简单迭代法 ⑴ 一般步骤

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档