二分法求根函数

来源:互联网 发布:小米关闭自动更新软件 编辑:程序博客网 时间:2024/05/17 07:38
function [x_star,k]=bisect(fun,a,b,ep)


%bisect 二分法求根
% fun(x)求根的函数
%a为求根起始点
%b为求根区间的终点
%ep为容许误差


if nargin < 4
    disp('请输入正确参数\n');
    return;
end


err=1;
fa=feval(fun,a)
fb=feval(fun,b)
mid=(a+b)/2
fmid=feval(fun,mid)


while (abs(fb-fa)>ep)
    if fa*fmid <0
        b=mid
    elseif fa*fmid ==0
        x_star=fmid
        return ;
    else
        a=mid
    end
  fa=feval(fun,a)
  fb=feval(fun,b)
  mid=(a+b)/2
  fmid=feval(fun,mid)  
    
    
    
end


     x_star=mid

end





使用 在运行环境输入  :例如:    fun=inline('x^3-x-1'); [x_star,k]=bisect(fun,1,1.5,0.005)


0 0
原创粉丝点击