bisection.m
来自「用matlab写的一些数值算法」· M 代码 · 共 16 行
M
16 行
function [a, b] = bisection(f, a0,b0, tol)
% Bisection to find root of f. Start interval [a0,b0]
% with f(a0)*f(b0) < 0 (is not checked)
% Repeat until the interval is smaller than tol
% Version 29.05.2004. INCBOX
a = a0; b = b0; sfb = sign(feval(f, b)) % initialize
while b-a > tol
x = (a + b)/2; sfx = sign(feval(f, x));
disp([a b sfx])
if sfx == 0 % f(x) = 0
a = x; b = x; break % return with a = b = x
elseif sfx == sfb, b = x;
else, a = x; end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?