環路錯誤我試圖找到利用牛頓迭代法找到根源。它通過猜測然後在每次迭代之後改進猜測來做到這一點,直到得到一個零。雖然與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)