牛顿法和割线法.docx
- 文档编号:11666151
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:6
- 大小:63.12KB
牛顿法和割线法.docx
《牛顿法和割线法.docx》由会员分享,可在线阅读,更多相关《牛顿法和割线法.docx(6页珍藏版)》请在冰豆网上搜索。
牛顿法和割线法
作业十(第五章):
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);
fori=1:
n
xc=(xa+xb)/2;x=xc;fc=eval(fx);
X=[i,xc,fc];
iffc*fa<0
xb=xc;
elsexa=xc;
end
if(xb-xa) End 二分法结果: 迭代34次,xc=0、5149 牛顿法 function[X]=newton(fx,e,x0,m) x=x0;k=0; F=eval(fx); ifabs(F)<=e X=[xF]; disp(X); return end whilek<=m x=x0;g=eval(diff(fx)); x1=x0-F/g; x=x1;F=eval(fx);k=k+1; ifabs(F)<=e X=[x1Fk];return end ifk>m 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); ifabs(f0)<=e X=[x0,f0]; end fork=2: m ifabs(f0) 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); ifabs(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; fork=0: 0、01: 13 x=x+k; y1=eval(fx); ify1==0 X=x;disp(X); return end ify0*y1>0 y0=y1;continue end x0=x-k;x1=x; [X]=gx9(fx,x0,x1,m,e);%割线法 ifx>b 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); ifabs(f0)<=e X=[x0,f0]; end fork=2: m ifabs(f0) 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); ifabs(f1)<=e X=[x,f1,k] return end End 扫描法结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 牛顿 割线