哈工大数值解析总结上机实验报告总结.docVIP

哈工大数值解析总结上机实验报告总结.doc

  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文档。上传文档
查看更多
实验报告一 题目:非线性程求解 摘要:非线性程的解析解通常很难给出, 因此线性程的数值解法就尤为重要。 本实验采用 两种常见的求解法二分法和 Newton 法及改进的 Newton 法。 前言:(目的和意义)掌握二分法与 Newton 法的基本原理和应用。 数学原理: 对于一个非线性程的数值解法很多。 在此介绍两种最常见的法: 二分法和 Newton 法。 对于二分法,其数学实质就是说对于给定的待求解的程 f(x),其在 [a,b] 上连续, f(a)f(b)0 ,且 f(x)在[a,b]仅有一个实根 x*,取区间中点 c,若,则 c 恰为其根,否则根据 f(a)f(c)0 是否成立判断根在区间 [ a,c 和 c,b 中的哪一个,从而得出新区间,仍称为 [ a,b 。 ] [ ] ] 重复运行计算,直至满足精度为止。这就是二分法的计算思想。 Newton 法通常预先要给出一个猜测初值 x0,然后根据其迭代公式 xk 1 f (xk ) xk f ( xk ) 产生逼近解 * 的迭代数列 { k},这就是 Newton 法的思想。当 x 0 接近 * 时收敛很快,但是 x x x 当 x0 选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk 1 xk r f ( xk ) f ( xk ) 其中 r 为要求的程的根的重数,这就是改进的 Newton 法,当求解已知重数的程的根时, 在同种条件下其收敛速度要比 Newton 法快的多。 程序设计: 本实验采用 Matlab 的 M 文件编写。其中待求解的程写成 function 的式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0; %%%误差 R=1; 专业资料 k=0; %迭代次数初值 while (R5e-6) ; c=(a+b)/2; if f12(a)*f12(c)0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c %给出解 Newton 法及改进的 Newton 法源程序: clear %%%%输入函数 f=input( 请输入需要求解函数 ,s) %%%求解 f(x)的导数 df=diff(f); %%%改进常数或重根数 miu=2; %%%初始值 x0 x0=input(input initial value x0); k=0 ;%迭代次数 max=100 ;%最大迭代次数 R=eval(subs(f,x0,x)); %求解 f(x0),以确定初值 x0 时否就是解 while (abs(R)1e-8) x1=x0-miu*eval(subs(f,x0,x))/eval(subs(df,x0,x)); R=x1-x0; x0=x1; k=k+1; if (eval(subs(f,x0,x))1e-10); break end if kmax ;%如果迭代次数大于给定值,认为迭代不收敛,重新输入初值 ss=input(maybe result is error,choose a new x0,y/n?,s); if strcmp(ss,y) 专业资料 x0=input(input initial value x0); k=0; else break end end end k;%给出迭代次数 x=x0 ; %给出解 结果分析和讨论: 1. 用二分法计算程 sin x x 2 0 在[1, 2]的根。 ( 5 * 10 6 ,下同 ) 2 计算结果为 x= 1.523 ; f(x)= -3.4311e-007 ; k=18 ; 由 f(x)知结果满足要求,但迭代次数比较多,法收敛速度比较慢。 2. 用二分法计算程 x3 x 1 0 在 [1, 1.5]的根。 计算结果为 x= 1.180 ; f(x)= 2.4815e-006 ; k=17 ; f(x)知结果满足要求,但迭代次数还是比较多。 用 Newton 法求解下列程 a) xex 1 0 x0=0.5 ; 计算结果为 x= 0.978 ; f(x)= 2.0313e-016 ; k=4 ; 由 f(x)知结果满足要求,而且又迭代次数只有 4 次看出收敛速度很快。 b) x3 x 1 0 x0=1 ; c) ( x 1) 2 (2x 1) 0 x0=0.45, x 0=0.65 ; x0=0.45 时,计算结果为 x= 0.983 ; 专业资料 f(x)= -8.4584e-014 ; k=4 ; 由 f(x)知结果满足要求,而且又迭代次数只有 4 次看出收敛速度很快

文档评论(0)

187****5086 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档