环路错误我试图找到利用牛顿迭代法找到根源。它通过猜测然后在每次迭代之后改进猜测来做到这一点,直到得到一个零。虽然与Netwon迭代法
因为牛顿迭代方法很快就找到了零,则立即和两个或三个迭代最大应该不符合while循环的条件后,给了我一个小错误。然而,问题是,当我在我的循环“错误”后删除分号,我开始越来越分数应该打破while循环,但它像Matlab不知道123/8328423
小于1
。它会继续运行,直到我手动强制程序停止运行。
我该如何解决这个问题?我试图格式化long格式,并在命令窗口,脚本文件和循环中的某处使用double。
预先感谢您的任何提示,建议或意见,可以帮助!
A = [1,2,-4;2,-2,-2;-4,-2,1;];
format longe
% syms x y z
% P = x^4 + 3*x^2*y^2-z^3+y+1;
% feval(symengine,'degree',P,x)
syms x
B = mateigenvalue(A);
f(x) = simplify(matdet(B));
x0 = 1;
error = 10;
while(error > .01)
x1 = x0 - f(x0)/(27*(x0)-3*(x0)^2);
error = abs(((f(x0)-f(x1))/f(x0))*100)
x0 = x1;
end
x0 = double(x0)