在期间[0,1]内用二分法求方程e^x+10*x-2=0的近似根,要求误差不超过0.5*10^(-3)。
实验结果:x=0.09033
代码示例:
function x = agui_bisect(fname,a,b,e)
% 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;
else
a=x;
fa=fx;
end
k=k+1;
x=(a+b)/2;
end
输入内联函数:
fun=inline('exp(x) +10*x - 2')
调用agui_bisect函数:
x = agui_bisect(fun,0,1,0.0005)
测试结果: