1. 程式人生 > >二分法求解方程的值 matlab

二分法求解方程的值 matlab

首先定義一個二分求根的函式:

function root=bisect(fun,a,b,eps)
n=1+round((log(b-a)-log(eps))/log(2));
fa=feval(fun,a);fb=feval(fun,b);
for i=1:n
    c=(b+a)/2;
    fc=feval(fun,c);
    if fc*fa<0
        b=c;fb=fc;
    else
        a=c;fa=fc;
    end
end
root=c;


其次再控制欄進行呼叫,所呼叫的函式必須滿足二分求根的條件;也就是在該區間內有且只有一個根存在,呼叫方式如下:

 format long; %調整輸出精度,顯示15位雙精度,7為單精度
>> f=inline('x^2+x-1');%定義運算函式
>> eps=1e-3;a=0;b=1;
>> root=bisect(f,a,b,eps)