牛顿法和割线法.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
牛顿法和割线法

作业十(第五章):1. 在区间(0,1.5)上分别用二分法、牛顿法和割线法编程求下面的函数的零点,精度要求10-10。 二分法 function [X]=bisection(fx,xa,xb,n,delta) % 二分法解方程 % fx是由方程转化的关于x的函数,有fx=0。 % xa 解区间上限 % xb 解区间下限 %解区间人为判断输入 % n 最多循环步数,防止死循环。 %delta 为允许误差 x=xa;fa=eval(fx); x=xb;fb=eval(fx); for i=1:n xc=(xa+xb)/2;x=xc;fc=eval(fx); X=[i,xc,fc]; if fc*fa0 xb=xc; else xa=xc; end if (xb-xa)delta,break,end End 二分法结果: 迭代34次,xc=0.5149 牛顿法 function [X]=newton(fx,e,x0,m) x=x0;k=0; F=eval(fx); if abs(F)=e X=[x F]; disp(X); return end while k=m x=x0;g=eval(diff(fx)); x1=x0-F/g; x=x1;F=eval(fx);k=k+1; if abs(F)=e X=[x1 F k];return end if km fprintf(牛顿法迭代M次没有找到方程的根) return end x0=x1; end fprintf(\n%s%.4f\t%s%d,X=,X,k=,k) %输出结果 牛顿法结果: 迭代5次 结果0.5149 割线法:function [X]=gx9(fx,x0,x1,m,e) x=x0;f0=eval(fx); x=x1;f1=eval(fx); if abs(f0)=e X=[x0,f0]; end for k=2:m if abs(f0)abs(f1) b=x0;x0=x1;x1=b; b=f0;f0=f1;f1=b; end t=(x1-x0)/(f1-f0);x0=x1;f0=f1; x1=x1-t*f1; x=x1;f1=eval(fx); if abs(f1)=e X=[x1,f1,k] return end End 割线法结果: 迭代7次 结果0.5149 2.编程求下面的函数在区间[0,13]上的所有零点,精度要求10-10。提示:先扫描得到解所在区间,再用迭代法求解。 function [X]=scan(a,b,fx) x=a;y0=eval(fx);m=100000;e=10^-10; for k=0:0.01:13 x=x+k; y1=eval(fx); if y1==0 X=x;disp(X); return end if y0*y10 y0=y1;continue end x0=x-k;x1=x; [X]=gx9(fx,x0,x1,m,e);%割线法 if xb X=x;disp(X); return end y0=y1; end %%%%%%%%%%%%%%%% function [X]=gx9(fx,x0,x1,m,e) x=x0;f0=eval(fx); x=x1;f1=eval(fx); if abs(f0)=e X=[x0,f0]; end for k=2:m if abs(f0)abs(f1) b=x0;x0=x1;x1=b; b=f0;f0=f1;f1=b; end t=(x1-x0)/(f1-f0);x0=x1;f0=f1; x1=x1-t*f1; x=x1;f1=eval(fx); if abs(f1)=e X=[x,f1,k] return end End 扫描法结果:

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档