bisect.m
上传用户:ay_070428
上传日期:2014-12-04
资源大小:11427k
文件大小:1k
源码类别:

语音合成与识别

开发平台:

Matlab

  1. function [c,err,yc]=bisect(f,a,b,delta)
  2. %缩小范围,
  3. %input-f is the function input as a string'f'
  4. %     -a and b are the left and right end points
  5. %      -delta is the tolerance
  6. %      output-c is the zero
  7. %      -yc=f(c)
  8. %      -err is the error estimate for c
  9. ya=feval(f,a);%对函数F进行计算
  10. yb=feval(f,b);
  11. if ya*yb>0,break,end
  12. max1=1+round((log(b-a)-log(delta)/log(2));%????
  13. for k=1:max1
  14.     c=(a+b)/2;
  15.     yc=feval(f,c);
  16.     if yc==0
  17.         a=c;
  18.         b=c;
  19.     elseif yb*yc>0
  20.         b=c;
  21.         yb=yc;
  22.     else a=c;
  23.         ya=yc;
  24.     end
  25.     if b-a<delta,break,end
  26. end
  27. c=(a+b)/2;
  28. err=abs(b-a);
  29. yc=feval(f,c);