在书上看见一个关于二分法的MATLAB程序,按照书上程序却无法计算。总是显示程序错误,请高手看看这个程序是不是有问题。function [c,err,yc]=bisect(f,a,b,delta)% f是所要求解的函数% a和b分别为有根区间左右限% delta是所允许的误差界% c为所求近似解% yc为函数f在c上的值% err是c的误差估计if nargin<4 delta=1e-5;endya=feval('f',a)yb=feval('f',b)if yb==0,c=b,return,endif ya*yb>0, disp('(a,b)不是有根区间'); return,endmax1=1+round((log(b-a)-log(delta))/log(2))for k=1:max1 c=(a+b)/2; yc=feval('f',c); if yc==0 a=c;b=c;break, elseif yb>*yc>0 b=c,yb=yc; else a=c;ya=c; end if(b-a)<delta,break,endendk,c=(a+b)/2,err=abs(b-a),yc=feval('f',c)
|