matlab实现正割法求根和Aitken加速方法


正割法求根代码:

zhengge.m

function zhengge(x0,x1,e)
    syms x;
    f(x)=exp(-x);
    K=0;
    while abs(x1-x0)>e
        fprintf('第%d次xk=%.6f迭代结果为:%6f\n',K,x0,f(x0));
        x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0));
        x0=x1;
        x1=x2;
        K=K+1;
    end
end
        
    

斯蒂芬森法求根代码:

function siDiFenSen(x0,e)
 syms x;
 y(x)=exp(-x);
 z(x)=exp(-(exp(-x)));
 K=0;
x1=x0-(y(x0)-x0)*(y(x0)-x0)/(z(x0)-2*y(x0)+x0);
fprintf('%.8f\n',x1);
 while (abs(x1-x0)>e) 
      fprintf('第%d次迭代,xk=%.8f,yk=%.8f,zk=%.8f\n',K,x0,y(x0),z(x0));
      x0=x1;
      x1=x0-(y(x0)-x0)*(y(x0)-x0)/(z(x0)-2*y(x0)+x0);
      K=K+1;
 end
end

程序结果:




实验总结:

正割法通过两个初始值一次迭代来求方程的根的近似解。求解的时间较长,结果不如牛顿法精确,但是简化了计算的复杂度。

斯蒂芬森加速法通过两次迭代,一次加速来求方程的近似解。求解过程较快,收敛速度快,结果较为精确。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值