我想實現一個迭代方法,以便在matlab中查找根。這是我的代碼,preatty簡單MatLab:尋找根的迭代方法
function [ res ] = iterative_method(f, a, b, x0, atol)
prev = f(x0);
xn = f(prev)
while (abs(xn - prev) < atol)
prev = xn
xn = f(prev)
end
res = xn
end
然後,我想找到一個根在功能
f(x) = x^3 - 30*x^2 + 2552
所以我打電話給我的功能
iterative_method(@(x) x^3 -30*x^2 + 2552,0,10,1,10^-4);
但產量沒有意義:
res =
1.5869e+10
你是什麼意思的沒有任何意義做? –
由於條件錯誤,您的代碼永遠不會進入** while循環。它認爲它應該是這樣的:'while(abs(xn - prev)> atol)',以及爲什麼當你不在任何地方使用這些值時,你給出了'a'和'b'的值?但你的問題仍然不會收斂,我認爲這是迭代方法中的一個缺陷。 –
好吧,我試圖修改它,但我得到了NaN作爲res –