二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例

上传人:夏** 文档编号:430764505 上传时间:2024-01-12 格式:DOC 页数:9 大小:65.50KB
返回 下载 相关 举报
二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例_第1页
第1页 / 共9页
二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例_第2页
第2页 / 共9页
二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例_第3页
第3页 / 共9页
二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例_第4页
第4页 / 共9页
二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例》由会员分享,可在线阅读,更多相关《二分法不动点迭代法艾特肯加速迭代法牛顿切线法的matlab程序及举例(9页珍藏版)》请在金锄头文库上搜索。

1、2.1.1 二分法的MATLAB主程序function k,x,wuca,yx=erfen(a,b,abtol)a(1)=a; b(1)=b; ya=fun(a(1); yb=fun(b(1); %程序中调用的fun.m 为函数 if ya* yb0, disp(注意:ya*yb0,请重新调整区间端点a和b.), returnendmax1=-1+ceil(log(b-a)- log(abtol)/ log(2); % ceil是向 方向取整for k=1: max1+1a;ya=fun(a); b;yb=fun(b); x=(a+b)/2; yx=fun(x); wuca=abs(b-a)/

2、2; k=k-1;k,a,b,x,wuca,ya,yb,yxif yx=0a=x; b=x;elseif yb*yx0b=x;yb=yx;elsea=x; ya=yx;endif b-a abtol , return, endendk=max1; x; wuca; yx=fun(x);2.1.2 不动点迭代法的MATLAB主程序function k,piancha,xdpiancha,xk,yk=diedai2(x0,tol,ddmax)x(1)=x0;for i=1: ddmax x(i+1)=fun(x(i);piancha=abs(x(i+1)-x(i); xdpiancha=pianc

3、ha/( abs(x(i+1)+eps);i=i+1; xk=x(i);yk=fun(x(i); (i-1) piancha xdpiancha xk yk if (pianchatol)|(xdpianchaddmax disp(迭代次数超过给定的最大值ddmax) k=i-1; xk=x(i);yk=fun(x(i); (i-1) piancha xdpiancha xk yk;return; endP=(i-1),piancha,xdpiancha,xk,yk;2.1.3 艾特肯加速迭代法的MATLAB主程序function k,xk,yk,p= Aitken (x0,tol, ddma

4、x)x(1)=x0;for i=1: ddmax x1(i+1)=fun(x(i); x2(i+1)=fun(x1(i+1); x(i+1)=x2(i+1)-(x2(i+1)-x1(i+1)2/(x2(i+1)-2*x1(i+1)+ x(i); piancha=abs(x(i+1)-x(i); xdpiancha= piancha/( abs(x(i+1)+eps); i=i+1; xk=x(i);yk=fun(x(i); if (pianchatol)|(xdpianchaddmax disp(迭代次数超过给定的最大值ddmax) k=i-1; xk=x(i); yk=fun(x(i); m

5、=0,1:i-1; p=m,x1,x2,x; return;endm=0,1:i-1; p=m,x1,x2,x;2.1.4 牛顿切线法的MATLAB主程序function k,xk,yk,piancha,xdpiancha=newtonqx(x0,tol,ftol,gxmax)x(1)=x0; for i=1: gxmax x(i+1)=x(i)-fun(x(i)/(dfun(x(i)+eps); piancha=abs(x(i+1)-x(i); xdpiancha= piancha/( abs(x(i+1)+eps); i=i+1;xk=x(i);yk=fun(x(i); (i-1) xk

6、yk piancha xdpianchaif (abs(yk)ftol)&(pianchatol)|(xdpianchagxmax disp(请注意:迭代次数超过给定的最大值gxmax。) k=i-1; xk=x(i);(i-1) xk yk piancha xdpiancha return;end (i-1),xk,yk,piancha,xdpiancha;例1.1:确定方程x3-x+4=0的实根的分布情况,并用二分法求在开区间 (-2,-1)内的实根的近似值,要求精度为0.001.解1. 保存如下的M文件:function y=fun(x)y=x3-x+4;2. 在工作窗口输入命令 k,x

7、,wuca,yx=erfen (-2,-1,0.001)运行后其余结果为k = 9,x=-1.7959, wuca = 9.7656e-004,yx = 0.0037例1.2: 用不动点迭代法求x5-3x+1=0在0.3附近的根,精确到4位小数.解1. 构造迭代公式 .2. 保存如下的M文件:function y=fun(x)y=(x5+1)/3;3. 在工作窗口输入命令 k,piancha,xdpiancha,xk,yk=diedai2(0.3,1e-4,100)运行后输出的结果k =3;piancha =1.206089525390697e-005;xdpiancha =3.6031294

8、77781680e-005; xk =0.3347; yk =0.3347.例1.3:用艾特肯加速迭代方法求2e在0.85附近的一个近似根,要求精度.解 1. 在MATLAB工作窗口输入程序 k,xk,yk,p= Aitken(0.85,1e-6, 100)运行后输出结果k=3,xk=0.85260550201343,yk=0.85260550201373p = 0 0 0 0.85000000000000 1.00000000000000 0.85482986389745 0.85071110652484 0.85260683568607 2.00000000000000 0.8526043

9、6491811 0.85260647150826 0.85260550201407 3.00000000000000 0.85260550201343 0.85260550201398 0.85260550201373例1.4:用牛顿切线法求方程在的近似根,要求精度.解 1. 保存如下的两个M文件:function y=fun(x)y=2*x3-3*x2+1;function y=dfun(x)y=6*x2-6*x;2. 在工作窗口输入命令 k,xk,yk,piancha,xdpiancha=newtonqx(-0.4,0.001, 0.001,100)运行后输出初始值和的迭代结果分别为: k =3,xk =-0.5000,yk =-7.7025e-007,piancha =3.5825e-004,xdpiancha =7.1650e-004k =7,xk =0.9993,yk =1.5903e-006,piancha =7.2896e-004,xdpiancha =7.2949e-004

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号