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

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

§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* yb>0, disp('注意:ya*yb>0,请重新调整区间端点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; k=k-1;[k,a,b,x,wuca,ya,yb,yx]if yx==0a=x; b=x;elseif yb*yx>0b=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=piancha/( abs(x(i+1))+eps);i=i+1; xk=x(i);yk=fun(x(i)); [(i-1) piancha xdpiancha xk yk] if (pianchaddmax 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, ddmax)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 (pianchaddmax disp('迭代次数超过给定的最大值ddmax') k=i-1; xk=x(i); yk=fun(x(i)); m=[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 yk piancha xdpiancha]if (abs(yk)g

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值