二分法求解方程的值 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)


 

你可能感兴趣的:(Matlab,函数)