(MATLAB 牛顿迭代法)
syms x; %定义变量x
f(x)=x3+4*x2-10;
g(x)=diff(f(x)); %求导
x0=1.5
x1=x0-f(x0)/g(x0); %迭代公式
vpa(x1,6)
i=0; %迭代次数
while abs(x1-x0)>=0.001 & i<100 %判断条件(0.001)于最大循环次数
i=i+1;
x0=x1; %替换
x1=x0-f(x0)/g(x0);
vpa(x1,6)
end
if i==101
disp(‘不收敛’)
end
vpa(f(x1)) %最终f(x1)的值
运行结果
|
请发表评论