當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy optimize.ridder用法及代碼示例


本文簡要介紹 python 語言中 scipy.optimize.ridder 的用法。

用法:

scipy.optimize.ridder(f, a, b, args=(), xtol=2e-12, rtol=8.881784197001252e-16, maxiter=100, full_output=False, disp=True)#

使用 Ridder 的方法在區間中找到函數的根。

參數

f 函數

Python 函數返回一個數字。 f 必須是連續的,並且 f(a) 和 f(b) 必須有相反的符號。

a 標量

包圍區間 [a,b] 的一端。

b 標量

包圍區間 [a,b] 的另一端。

xtol 編號,可選

計算出的根 x0 將滿足 np.allclose(x, x0, atol=xtol, rtol=rtol) ,其中 x 是精確根。該參數必須為正數。

rtol 編號,可選

計算的根 x0 將滿足 np.allclose(x, x0, atol=xtol, rtol=rtol) ,其中 x 是確切的根。該參數不能小於其默認值 4*np.finfo(float).eps

maxiter 整數,可選

如果在 maxiter 迭代中未實現收斂,則會引發錯誤。必須 >= 0。

args 元組,可選

包含函數的額外參數f.f被稱為apply(f, (x)+args).

full_output 布爾型,可選

如果full_output為 False,則返回根。如果full_output為真,返回值為(x, r),其中x是根,並且r是一個RootResults對象。

disp 布爾型,可選

如果為真,如果算法沒有收斂,則提高 RuntimeError。否則,收斂狀態記錄在任何 RootResults 返回對象中。

返回

root 浮點數

a 和 b 之間的 f 的根。

r RootResults (如果 full_output = True 則存在)

包含有關收斂信息的對象。特別是,如果例程收斂,r.converged 為 True。

注意

用途[裏德斯1979]求函數根的方法f參數之間ab. Ridders 的方法比二分法快,但通常不如 Brent 例程快。[裏德斯1979]提供算法的經典說明和來源。在任何最新版本的數字食譜中也可以找到說明。

這裏使用的例程與標準演示略有不同,以便更加小心容忍。

參考

[騎手1979] (1,2)

Ridders, C. F. J. “一種計算實連續函數單根的新算法。” IEEE Trans。電路係統 26, 979-980, 1979。

例子

>>> def f(x):
...     return (x**2 - 1)
>>> from scipy import optimize
>>> root = optimize.ridder(f, 0, 2)
>>> root
1.0
>>> root = optimize.ridder(f, -2, 0)
>>> root
-1.0

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.optimize.ridder。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。