function x = agui_bisect(fname,a,b,e)
fa = feval(fname,a);
fb = feval(fname,b);
if fa*fb>0
error("两端函数值同号");end
k=0;
x=(a+b)/2;
while(b-a)>(2*e)
fx=feval(fname,x);
if fa*fx<0
b=x;
fb=fx;
else
a=x;
fa=fx;
end
k=k+1;
x=(a+b)/2;
end
命令行
>> fun=inline('exp(x)+10*x-2')
fun =
内联函数:
fun(x) = exp(x)+10*x-2
>> x=agui_bisect(fun,0,1,0.5e-3)
x =
0.0903