代码如下:
%名称:二分法
%功能:计算f(x)=0的近似解
%in:f、a、b、tol(容差)
%out:无,近似解保存在xc变量中
a=0;
b=1;
tol=0.00005;
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(fc)*sign(fa)<0
b=c;fb=fc;
else
a=c;fa=fc;
end
end
xc=(a+b)/2;