欢迎来到天天文库
浏览记录
ID:49978900
大小:50.63 KB
页数:10页
时间:2020-03-03
《牛顿法和割线法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、作业十(第五章):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:nxc=(xa+xb)/2;x=xc;fc=eval(fx);X=[i,xc,fc
2、];iffc*fa<0xb=xc;elsexa=xc;endif(xb-xa)mf
3、printf('牛顿法迭代M次没有找到方程的根')returnendx0=x1;endfprintf('%s%.4ft%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)<=eX=[x0,f0];endfork=2:mifabs(f0)4、0)/(f1-f0);x0=x1;f0=f1;x1=x1-t*f1;x=x1;f1=eval(fx);ifabs(f1)<=eX=[x1,f1,k]returnendEnd割线法结果:迭代7次结果0.51492.编程求下面的函数在区间[0,13]上的所有零点,精度要求10-10。提示:先扫描得到解所在区间,再用迭代法求解。function[X]=scan(a,b,fx)x=a;y0=eval(fx);m=100000;e=10^-10;fork=0:0.01:13x=x+k;y1=eval(fx);ify1==0X=x;d5、isp(X);returnendify0*y1>0y0=y1;continueendx0=x-k;x1=x;[X]=gx9(fx,x0,x1,m,e);%割线法ifx>bX=x;disp(X);returnendy0=y1;end%%%%%%%%%%%%%%%%function[X]=gx9(fx,x0,x1,m,e)x=x0;f0=eval(fx);x=x1;f1=eval(fx);ifabs(f0)<=eX=[x0,f0];endfork=2:mifabs(f0)6、;f0=f1;f1=b;endt=(x1-x0)/(f1-f0);x0=x1;f0=f1;x1=x1-t*f1;x=x1;f1=eval(fx);ifabs(f1)<=eX=[x,f1,k]returnendEnd扫描法结果:
4、0)/(f1-f0);x0=x1;f0=f1;x1=x1-t*f1;x=x1;f1=eval(fx);ifabs(f1)<=eX=[x1,f1,k]returnendEnd割线法结果:迭代7次结果0.51492.编程求下面的函数在区间[0,13]上的所有零点,精度要求10-10。提示:先扫描得到解所在区间,再用迭代法求解。function[X]=scan(a,b,fx)x=a;y0=eval(fx);m=100000;e=10^-10;fork=0:0.01:13x=x+k;y1=eval(fx);ify1==0X=x;d
5、isp(X);returnendify0*y1>0y0=y1;continueendx0=x-k;x1=x;[X]=gx9(fx,x0,x1,m,e);%割线法ifx>bX=x;disp(X);returnendy0=y1;end%%%%%%%%%%%%%%%%function[X]=gx9(fx,x0,x1,m,e)x=x0;f0=eval(fx);x=x1;f1=eval(fx);ifabs(f0)<=eX=[x0,f0];endfork=2:mifabs(f0)6、;f0=f1;f1=b;endt=(x1-x0)/(f1-f0);x0=x1;f0=f1;x1=x1-t*f1;x=x1;f1=eval(fx);ifabs(f1)<=eX=[x,f1,k]returnendEnd扫描法结果:
6、;f0=f1;f1=b;endt=(x1-x0)/(f1-f0);x0=x1;f0=f1;x1=x1-t*f1;x=x1;f1=eval(fx);ifabs(f1)<=eX=[x,f1,k]returnendEnd扫描法结果:
此文档下载收益归作者所有