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


Python SciPy special.airye用法及代碼示例

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

用法:

scipy.special.airye(z, out=None) = <ufunc 'airye'>#

index 縮放的艾裏函數及其導數。

縮放:

eAi  = Ai  * exp(2.0/3.0*z*sqrt(z))
eAip = Aip * exp(2.0/3.0*z*sqrt(z))
eBi  = Bi  * exp(-abs(2.0/3.0*(z*sqrt(z)).real))
eBip = Bip * exp(-abs(2.0/3.0*(z*sqrt(z)).real))

參數

z array_like

真實或複雜的論點。

out ndarray 的元組,可選

函數值的可選輸出數組

返回

eAi, eAip, eBi, eBip 標量或 ndarray 的 4 元組

index 尺度的艾裏函數 eAi 和 eBi,以及它們的導數 eAip 和 eBip

注意

AMOS 的包裝器[1]例行公事瘋狂的茲比裏.

參考

[1]

Donald E. Amos,“AMOS,用於複雜參數和非負階貝塞爾函數的便攜式軟件包”,http://netlib.org/amos/

例子

我們可以計算 index 縮放的 Airy 函數及其導數:

>>> import numpy as np
>>> from scipy.special import airye
>>> import matplotlib.pyplot as plt
>>> z = np.linspace(0, 50, 500)
>>> eAi, eAip, eBi, eBip = airye(z)
>>> f, ax = plt.subplots(2, 1, sharex=True)
>>> for ind, data in enumerate([[eAi, eAip, ["eAi", "eAip"]],
...                             [eBi, eBip, ["eBi", "eBip"]]]):
...     ax[ind].plot(z, data[0], "-r", z, data[1], "-b")
...     ax[ind].legend(data[2])
...     ax[ind].grid(True)
>>> plt.show()
scipy-special-airye-1_00_00.png

我們可以使用通常的非縮放 Airy 函數通過以下方式計算這些:

>>> from scipy.special import airy
>>> Ai, Aip, Bi, Bip = airy(z)
>>> np.allclose(eAi, Ai * np.exp(2.0 / 3.0 * z * np.sqrt(z)))
True
>>> np.allclose(eAip, Aip * np.exp(2.0 / 3.0 * z * np.sqrt(z)))
True
>>> np.allclose(eBi, Bi * np.exp(-abs(np.real(2.0 / 3.0 * z * np.sqrt(z)))))
True
>>> np.allclose(eBip, Bip * np.exp(-abs(np.real(2.0 / 3.0 * z * np.sqrt(z)))))
True

比較非縮放函數和 index 縮放函數,通常的非縮放函數對於大值會迅速下溢,而 index 縮放函數則不會。

>>> airy(200)
(0.0, 0.0, nan, nan)
>>> airye(200)
(0.07501041684381093, -1.0609012305109042, 0.15003188417418148, 2.1215836725571093)

相關用法


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