我在Matlab中实现了牛顿方法:
format long
f = @(x) [x(1),x(2),x(3)];
grad_f = @(x) [[1,0,0],[0,1,0],[0,0,1]];
x0 = [0.01,0.9,0.9]
dy = vpa(grad_f(x0));
y = vpa(f(x0));
NumIters = 10;
for j=1:NumIters
s = vpa(dy\y');
x0 = vpa(x0 - s');
dy = vpa(grad_f(x0));
y = vpa(f(x0));
x0
y
end
这是正确使用vpa吗?现在一切都以无限精度计算?因此,如果它不收敛,那是由于问题而不是由于舍入误差(数值不稳定)?