非线性方程实验.docVIP

  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文档。上传文档
查看更多
非线性方程实验

㈠、实验目的: 1、学会判断非线性方程的根的存在性、根的分布范围; 2、掌握迭代法求非线性方程的根。学会比较不同方法之间的优缺点; ㈡、实验题目: 求非线性方程的根,精确到,给定方程为: (i): . ㈢、实验要求: 用你自己设计的一种线性收敛迭代法求方程(i)的根,然后再用斯蒂芬加速迭代计算。 用牛顿法求方程(i)的根,输出迭代初值,各次迭代值及迭代次数,并与(1)的结果比较。 运用不动点迭代法: 当时, 将.化为x==(x) 因为x[0,1],(x)[0,1]且(x)=在[0,1]内小于1,则(x)在[0,1]上存在唯一的不动点x*,使得x*=(x*);求f(x)的零点就等价于去(x)的不动点,将初始点=0.1代入(1)中: 得:=() 反复迭代计算得: =(),(k=0,1,……) 斯蒂芬森加速迭代法: 埃特金方法不管原序列是怎样产生的,对进行加速计算,得到序列,如果把埃特金加速技巧与不动点迭代结合,则可得到如下的迭代法: , ,(*)      称为斯蒂芬森(Steffensen)迭代法.可将它写成另一种不动点迭代          (**) 其中 .       (7.3.5) Newton迭代格式为: =-()/() k=0,1,2,…… 实验过程源代码及运行结果 Matlab程序: 通过图像判断有无解: Clear format long for t=1:1000 x(t)=0.01*t; y1(t)=x(t)^2-3*x(t)+2-exp(x(t)); end y2=0; plot(x,y1,r*,x,y2,bo) 运行: 不动点迭代法: 迭代公式:x==(x) MATLAB程序: clear format long k=1; x0(k)=0.5; x0(k+1)=(x0(k)^2+2-exp(x0(k)))/3; while abs(x0(k+1)-x0(k))0.000001 k=k+1; x0(k+1)=(x0(k)^2+2-exp(x0(k)))/3; end x0 k 斯蒂芬森(Steffensen)迭代法: MATLAB程序: clear format long x0=0.2; k=1; fi=inline((x.^2+2-exp(x))/3,x); yk=fi(x0); zk=fi(yk); xk=x0-((yk-x0)^2)/(zk-2*yk+x0); ax(k)=xk; while abs(xk-x0)0.000001 x0=ax(k); yk=fi(x0); zk=fi(yk); xk=x0-((yk-x0).^2)/(zk-2*yk+x0); k=k+1; ax(k)=xk; end ax k 运行后: 牛顿迭代法: Matlab编程: clear format long x0=0.5; k=1; x=x0-(x0^2-3*x0+2-exp(x0))/(2*x0-3-exp(x0)); while abs(x-x0)0.000001 x0=x; x=x0-(x0^2-3*x0+2-exp(x0))/(2*x0-3-exp(x0)); k=k+1; end x k 通过图像判断有无解: format long for t=1:1000 x(t)=0.01*t; y1(t)=x(t)^3+2*x(t)^2+10*x(t)-20; end y2=0; plot(x,y1,r*,x,y2,bo) 不动点迭代法: format long k=1; x0(k)=1.7; x0(k+1)=(20-x0(k)^3-2*x0(k)^2)/10; while abs(x0(k+1)-x0(k))0.000000001 k=k+1; x0(k+1)=(20-x0(k)^3-2*x0(k)^2)/10; end x0 k 结果: x0 = 1.700000000000000 0.930700000000000 k = 1 format long x0=0.2; k=1; fi=inline((20-x^3-2*x^2)/10,x); yk=fi(x0); zk=fi(yk); xk=x0-((yk-x0)^2)/(zk-2*yk+x0); ax(k)=xk; while abs(xk-x0)0.000001 x0=ax(k); yk=fi(x0); zk=fi(yk); xk=x0-((yk-x0

文档评论(0)

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

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

1亿VIP精品文档

相关文档