📄 bisection.pro
字号:
; $Id: bisection.pro,v 1.2 2002/03/14 11:49:11 riccardi Exp $
function bisection, w, func_name, TOL=eps
if n_elements(eps) eq 0 then eps=1d-6
w_inf = min(w, MAX=w_sup)
f_inf = call_function(func_name, w_inf)
f_sup = call_function(func_name, w_sup)
if f_inf*f_sup ge 0 then message, "ERROR"
dw = (w_sup-w_inf)
repeat begin
w_mid = (w_inf+w_sup)/2d0
f_mid = call_function(func_name, w_mid)
if f_mid*f_inf gt 0 then begin
w_inf = w_mid
f_inf = f_mid
endif else begin
w_sup = w_mid
f_sup = f_mid
endelse
endrep until (abs(w_inf-w_sup) lt eps*w_mid) or (abs(f_inf-f_sup) lt eps*f_mid) or f_mid eq 0.0
return, w_mid
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -