发布时间:2023-09-12 08:30
正割法求根代码:
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
程序结果:
实验总结:
正割法通过两个初始值一次迭代来求方程的根的近似解。求解的时间较长,结果不如牛顿法精确,但是简化了计算的复杂度。
斯蒂芬森加速法通过两次迭代,一次加速来求方程的近似解。求解过程较快,收敛速度快,结果较为精确。