nabisect.m

来自「Matlab数值解算法实现代码」· M 代码 · 共 17 行

M
17
字号
function x=nabisect(fname,a,b,e)
%用途:二分法解非线性f(x)=0;
%格式:x=nabisect(fname,a,b,e)
%     fname为用函数句柄或内嵌函数表达的f(x)
%     a, b为区间端点,e为精度(默认值1e-4),x返回解。
%     程序要求函数在两端点值必须异号。

if nargin<4,e=1e-4;end;
fa=feval(fname,a);fb=feval(fname,b);
if fa*fb>0, error('函数在两端点值必须异号');end
x=(a+b)/2
while (b-a)>(2*e),
   fx=feval(fname,x);
   if fa*fx<0,b=x;fb=fx;else a=x;fa=fx;end
   x=(a+b)/2
end

⌨️ 快捷键说明

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