数值分析二分法实验.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多
数值分析二分法实验

数值分析实验-二分法 RoJ 2011.10.15 用二分法求 的正根(精确到小数点后3位 ) 1.绘制函数图形 ezplot(x^3+x^2-3*x-3,[-2,2]) grid on 2.可见-1为一个根,另外两个根分别在-1.5和1.5左右,确定这两个根: fzero(x^3+x^2-3*x-3,-1.5) ans = -1.7321 fzero(x^3+x^2-3*x-3,1.5) ans = 1.7321(正根) 3.根号3的15位精确值( format long sqrt(3) ans = 1.732050807568877) 二分法实现程序1(bisect.m) %二分法(Bisection Method) %fun 为 f(x)的表达式 %[a,b]为求根区间 %tol为精度 %x为近似根 %k为迭代次数 function [x,k]=bisect(fun,a,b,tol) fa=feval(fun,a);fb=feval(fun,b);%求区间端点的函数值 if fa*fb0 disp([a,b]不包含根); return; end k=0; %二分迭代次数置初值 while abs(b-a)/2tol %当区间分半后长度小于等于给定精度,退出循环体 x=(a+b)/2;fx=feval(fun,x);%求区间中点函数值 if fx*fa0 %判断两端点处函数值符号,做二分 b=x;fb=fx;%根在[a, x]内 else a=x;fa=fx;%根在[x, b]内 end k=k+1; %二分次数增加1 end x=(a+b)/2; %满足精度的根 运行结果: f=inline(x^3+x^2-3*x-3); [x,k]=bisect(fun,1,2,1e-3) x = 1.7314 k = 10 注:该程序结果是在可接受的范围内, 两句在命令窗口的执行语句也可作为一个主程序存在一个文件中。如命名为bisexam.m,其内容为: f=inline(x^3+x^2-3*x-3); [x,k]=bisect(fun,1,2,1e-3) 运行:bisexamCR和上面得到同样的结果 二分法实现程序2 function [c,err,yc]=bisect(f,a,b,delta) %Matlab Programs by John H. Mathews and Kurtis D. Fink,其参数注省略 ya=feval(f,a); yb=feval(f,b); if ya*yb 0,end max1=1+round((log(b-a)-log(delta))/log(2));%由定理2-4确定最大迭代次数 for k=1:max1 c=(a+b)/2; yc=feval(f,c); if yc==0 a=c; b=c; elseif yb*yc0 b=c; yb=yc; else a=c; ya=yc; end if b-a delta, break,end end c=(a+b)/2; err=abs(b-a); yc=feval(f,c); 注:round(x), 朝最近方向取整 例如: round(-1.2),结果为-1 round(1.2),结果为1 运行结果: erfenfa c = 1.7319(满足精度的解) err = 9.7656e-004(误差) yc = -0.0011(在近似解处的函数值) 注:该例若显示迭代次数,也是10次,显然,结果要好于程序1。 Format命令只影响数据输出格式,对Matlab的内部计算和数据存储的数值精度不产生任何影响。   用户可以用format命令设置或改变数据输出格式。例如,若输入 》x = [ 4/3 1.2345e – 6 ] 那么,在不同的输出格式下的输出为 》format short 1.3333 0.0000 》format shorte 1.3333e + 00 1.2345e – 06 》format long 1.333333333333 0.00000123450000   asin 反正弦函数。 acos 反余弦函数。 atan 反正切函数。 sinh 双曲正弦函数。 cosh

文档评论(0)

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

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

1亿VIP精品文档

相关文档