1. 程式人生 > >【原始碼】二分法及MATLAB實現

【原始碼】二分法及MATLAB實現

二分法是一種求解給定函式根的數值方法。二分法的實質是通過不斷地把函式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

英文課件下載地址:

更多精彩文章請關注微訊號:在這裡插入圖片描述