您的位置:首页 > 编程语言 > MATLAB

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

2018-03-16 00:27 351 查看




正割法求根代码:
zhengge.mfunction 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
9392
,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程序结果:







实验总结:

正割法通过两个初始值一次迭代来求方程的根的近似解。求解的时间较长,结果不如牛顿法精确,但是简化了计算的复杂度。
斯蒂芬森加速法通过两次迭代,一次加速来求方程的近似解。求解过程较快,收敛速度快,结果较为精确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: