原理:
每一次将区间压缩至原来的一半而且其中一个区间至少包含一个根,逐步缩短区间,直至最终区间最佳为止。
Matlab程序:
function [y]=f(x)
y=x^3-x^2-x-1;
end
function []=bina(a,b)
while abs(a-b)>0.1
if (f(a)*f(b))<0
c=(a+b)/2;
if (f(a)*f(c))<0
b=c;
else
if (f(c)*f(b))<0
a=c;
end
end
end
end
p=a
q=b
运行程序的输入、输出:
1. 输入: bina(-10,10)
2. 输出: p =1.7969
q =1.8750