牛顿迭代法求解方程 x^2-3*x+2-exp(x)=0 的实根
使用牛顿迭代法求解方程 x^2-3*x+2-exp(x)=0 的实根
本程序使用牛顿迭代法求解方程 x^2-3*x+2-exp(x)=0 的实根,迭代精度为 |xk-xk-1|<1e-8,并给出完整的matlab程序及输出结果,包括迭代初值、各次迭代值和迭代次数。
Matlab程序
function [x,k] = newton(x0)
% x0为迭代初值
k = 0; % 迭代次数
while 1
k = k + 1;
fx = x0^2 - 3*x0 + 2 - exp(x0);
dfx = 2*x0 - 3 - exp(x0);
x = x0 - fx/dfx; % 迭代公式
if abs(x - x0) < 1e-8 % 判断是否满足精度要求
break;
end
x0 = x;
end
end
% 调用函数,输入迭代初值
[x,k] = newton(0.5)
输出结果
x = 0.999996532026665
k = 6
因此,方程的实根为 0.999996532026665,经过 6 次迭代得到。
原文地址: https://www.cveoy.top/t/topic/n51k 著作权归作者所有。请勿转载和采集!