【原始碼】二分法及MATLAB實現
阿新 • • 發佈:2019-01-31
二分法是一種求解給定函式根的數值方法。二分法的實質是通過不斷地把函式f(x)零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值。
將m = (a+b)/2作為新的b端點,繼續重複以上步驟,直到逼近誤差足夠小為止。
二分法的求解步驟:
舉例:求解f(x) = x2– 3在區間[0, 4]上的根。
完整MATLAB求解函式:
function p = bisection(f,a,b)
% f為待求解函式,a與b分別為待求解區間的兩個端點值
% provide the equation you want to solvewith R.H.S = 0 form.
% Write the L.H.S by using inline function
% Give initial guesses.
% Solves it by method of bisection.
% A very simple code. But may come handy
if f(a)*f(b)>0
disp(‘Wrong choice bro’)
else
p= (a + b)/2;
err = abs(f§);
while err > 1e-7
if f(a)*f§<0
b = p;
else
a = p;
end
p= (a + b)/2;
err = abs(f§);
end
end
英文課件下載地址:
更多精彩文章請關注微訊號: