bisect.m
来自「余向阳博士Matlab教程的源代码。 包括:1.非线性方程的解法;2.线性方程」· M 代码 · 共 42 行
M
42 行
function [c,err,yc]=bisect(f1031,a,b,delta)
% f是所要求解的函数。
% a和b分别为有根区间的左右限。
% delta是允许的误差界。
% c为所求近似解。
% yc为函数f在c上的值。
% err是c的误差估计。
ya=feval('f1031',a);
yb=feval('f1031',b);
if yb==0
c=b;
break,
end
if ya*yb>0
disp('(a,b)不是有根区间');
return
end
max1=1+round((log(b-a)-log(delta))/log(2));
for k=1:max1
c=(a+b)/2;
yc=feval('f1031',c);
if yc==0
a=c;
b=c;
return
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
if (b-a)<delta,
return
end
end
k;
c=(a+b)/2;
err=abs(b-a);
yc=feval('f1031',c);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?