1. 程式人生 > >二分法的程式碼實現

二分法的程式碼實現

二分法是計算機求解方程的常用演算法,很容易在matlab中實現。

%計算f(x)= 0的近似解,容差為tol

fuction xc = bisec(f,a,b,tol)
if sign(f(a))*sign(f(b)) >= 0
    error('f(a)f(b)<0 not satisfied!')
end
fa = f(a);
fb = f(b);
while (b-a)/2 > tol
   c = (a+b)/2;
   fc = f(c);
   if fc == 0
     break
   end
   if sign(fa)*sign(fb)<0
       b=c;fb = fc;
   else
       a = c;fa = fc;
   end 
end

xc = (a+b)/2

在matlab中首先要在命令列中鍵入:

 f = @(x) x^3+x-1