MATLAB 迭代法解方程
1、代碼如下:
%%牛頓迭代法解方程
function x=newton_interation(fun,dfun,x0,EPS) %簡單牛頓迭代法%fun即迭代函數,dfun即迭代函數的一階導數,x0為迭代初值,EPS為精度x1=x0-fun(x0)/dfun(x0); %牛頓迭代公式
d=norm(x1-x0); %計算誤差
while d>=EPSx0=x1;x1=x0-fun(x0)/dfun(x0);d=norm(x1-x0);
end
x=x1; %將符合條件的結果輸出
2、應用demo
假設函數 f(x) 為:
f(x)=x3+4x2?10f(x)=x^3 + 4\, x^2 - 10 f(x)=x3+4x2?10
則其一階導函數為:
f′(x)=3x2+8xf'(x)=3\,x^2 + 8\, x f′(x)=3x2+8x
這里的format long只是使matlab顯示小數點的后幾位,并不會影響計算結果,沒有這一行,matlab只會默認顯示顯示小數點后5位,導致看不出兩個結果的區別。