bisect.m

来自「matlab程序」· M 代码 · 共 25 行

M
25
字号
function [c,err,yc]=bisect(f,a,b,delta)
ya=feval(f,a);
yb=feval(f,b);
if ya*yb>0
   return;
end
max1=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;
   elseif yb*yc>0
       b=c;
       yb=yc;
   end
   if b-a<delta
       break
   end
end
c=(a+b)/2;
err=abs(b-a);
yc=feval(f,c);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?