数值分析求解非线性方程根的二分法简单迭代法和牛顿迭代法.docxVIP

数值分析求解非线性方程根的二分法简单迭代法和牛顿迭代法.docx

  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、编写二分法、牛顿迭代法程序,并使用这两个程序计算 在[0, 1]区间的解,要求误差小于 ,比较两种方法收敛速度。2、在利率问题中,若贷款额为20万元,月还款额为2160元,还期为10年,则年利率为多少?请使用牛顿迭代法求解。3、由中子迁移理论,燃料棒的临界长度为下面方程的根,用牛顿迭代法求这个方程的最小正根。4、用牛顿法求方程的根,精确至8位有效数字。比较牛顿迭代法算单根和重根的收敛速度,并用改进的牛顿迭代法计算重根。实验程序第1题: 区间[0,1]函数画图可得函数零点约为0.5。画图函数:function Test1()% f(x) 示意图, f(x) = x + exp(x) - 2; f(x) = 0r = 0:0.01:1;y = r + exp(r) - 2plot(r, y); grid on二分法程序:计算调用函数:[c,num]=bisect(0,1,1e-4)function[c,num]=bisect(a,b,delta)%Input –a,b是取值区间范围% -delta是允许误差%Output -c牛顿迭代法最后计算所得零点值% -num是迭代次数ya = a + exp(a) - 2;yb = b + exp(b) - 2;if ya * yb0 return;endfor k=1:100 c=(a+b)/2; yc= c + exp(c) - 2; if abs(yc)=delta a=c; b=c; elseif yb*yc0 b=c; yb=yc; else a=c; ya=yc; end if abs(b-a)delta num=k; %num为迭代次数 break; endendc=(a+b)/2;err=abs(b-a);yc = c + exp(c) - 2;牛顿迭代法程序:计算调用函数:[c,num]=newton(@func1,0.5,1e-4)调用函数:function [y] = func1(x)y = x + exp(x) - 2;end迭代算法:function[c,num]=newton(func,p0,delta)%Input -func是运算公式% -p0是零点值% -delta是允许误差%Output -c牛顿迭代法最后计算所得零点值% -num是迭代次数num=-1;for k=1:1000 y0=func(p0); dy0=diff(func([p0 p0+1e-8]))/1e-8; p1=p0-y0/dy0; err=abs(p1-p0); p0=p1; if(errdelta) num=k; %num为迭代次数 break; endendc=p0;第2题:由题意得到算式:计算调用函数:[c,num]=newton(@func2,0.02,1e-8)程序:先用画图法估计出大概零点位置在0.02附近。画图程序:function Test2()% f(x) 示意图, f(x) = 200000*(1+x).^10-2160*12*10; f(x) = 0r = linspace(0,0.06, 100);y = 200000*(1+r).^10-2160*12*10;plot(r, y);grid on调用函数:function[y]=func2(r)y=200000*(1+r).^10-2160*12*10;end牛顿迭代法算法程序:function [c,num] =newton(func,p0,delta)%Input -func是运算公式% -p0是零点值% -delta是允许误差%Output -c牛顿迭代法最后计算所得零点值% -num是迭代次数num=-1;for k=1:1000 y0=func(p0); dy0=diff(func([p0 p0+1e-8]))/1e-8; p1=p0-y0/dy0; err=abs(p1-p0); p0=p1; if(errdelta) num=k; break; endendc=p0;第3题: 求最小正数解计算调用函数:[c,num]=newton(@func3, 1 ,1e-8)程序:先用画图法估计出最小正解位置在1到2之间画图程序:function Test3()% f(x) 示意图, f(x) = cot(x)-(x.^2-1)./(2.*x); f(x) = 0ezplot(cot(x)-(x.^2-1)./(2.*x),[-6,6]);grid on调用函数:function[y]=func3(x)y=c

文档评论(0)

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

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

1亿VIP精品文档

相关文档