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


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


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

用法:

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

第一類實數和複數參數的貝塞爾函數。

參數

v array_like

訂單(浮點數)。

z array_like

參數(浮點數或複數)。

out ndarray,可選

函數值的可選輸出數組

返回

J 標量或 ndarray

貝塞爾函數的值

注意

對於正v值,計算是使用 AMOS 進行的[1] zbesj例程,它利用與修改後的 Bessel 函數的連接\(I_v\) ,

對於負 v 值,公式,

被使用,其中\(Y_v(z)\) 是第二類貝塞爾函數,使用 AMOS 例程計算茲貝西.請注意,對於整數,第二項正好為零v;為了提高準確性,第二項被明確省略v這樣的值v = 樓層(v).

不要與球麵貝塞爾函數混淆(請參閱 spherical_jn )。

參考

[1]

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

例子

在某一點評估 0 階函數。

>>> from scipy.special import jv
>>> jv(0, 1.)
0.7651976865579666

在某一點評估不同階次的函數。

>>> jv(0, 1.), jv(1, 1.), jv(1.5, 1.)
(0.7651976865579666, 0.44005058574493355, 0.24029783912342725)

通過提供一個列表或 NumPy 數組作為 v 參數的參數,可以在一次調用中執行不同順序的評估:

>>> jv([0, 1, 1.5], 1.)
array([0.76519769, 0.44005059, 0.24029784])

通過提供 z 數組,在多個點評估函數的 0 階。

>>> import numpy as np
>>> points = np.array([-2., 0., 3.])
>>> jv(0, points)
array([ 0.22389078,  1.        , -0.26005195])

如果 z 是一個數組,並且在一次調用中計算不同的階數,則階數參數 v 必須可廣播為正確的形狀。要計算一維數組的階數 0 和 1:

>>> orders = np.array([[0], [1]])
>>> orders.shape
(2, 1)
>>> jv(orders, points)
array([[ 0.22389078,  1.        , -0.26005195],
       [-0.57672481,  0.        ,  0.33905896]])

繪製從 -10 到 10 的 0 到 3 階函數。

>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> x = np.linspace(-10., 10., 1000)
>>> for i in range(4):
...     ax.plot(x, jv(i, x), label=f'$J_{i!r}$')
>>> ax.legend()
>>> plt.show()
scipy-special-jv-1.png

相關用法


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