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


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


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

用法:

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

第二種實數階的 index 縮放貝塞爾函數。

返回第二種實數階的 index 縮放貝塞爾函數v在複雜的z

yve(v, z) = yv(v, z) * exp(-abs(z.imag))

參數

v array_like

訂單(浮點數)。

z array_like

參數(浮點數或複數)。

out ndarray,可選

函數結果的可選輸出數組

返回

Y 標量或 ndarray

index 縮放貝塞爾函數的值。

注意

對於正v值,計算是使用 AMOS 進行的[1] 茲貝西例程,它利用與 Hankel Bessel 函數的連接\(H_v^{(1)}\) \(H_v^{(2)}\) ,

對於負 v 值,公式,

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

指數縮放貝塞爾函數對於大 z 很有用:對於這些,未縮放貝塞爾函數很容易 under-or 溢出。

參考

[1]

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

例子

比較輸出yvyve對於大型複雜參數z通過計算它們的順序值v=1z=1000j。我們看到yv返回 nan 但是yve返回一個有限數:

>>> import numpy as np
>>> from scipy.special import yv, yve
>>> v = 1
>>> z = 1000j
>>> yv(v, z), yve(v, z)
((nan+nanj), (-0.012610930256928629+7.721967686709076e-19j))

對於真正的參數z,yve返回相同yv最多浮點錯誤。

>>> v, z = 1, 1000
>>> yv(v, z), yve(v, z)
(-0.02478433129235178, -0.02478433129235179)

通過為 v 提供列表或 NumPy 數組,可以同時評估該函數的多個階數:

>>> yve([1, 2, 3], 1j)
array([-0.20791042+0.14096627j,  0.38053618-0.04993878j,
       0.00815531-1.66311097j])

以同樣的方式,通過為 z 提供列表或 NumPy 數組,可以在一次調用中在多個點評估該函數:

>>> yve(1, np.array([1j, 2j, 3j]))
array([-0.20791042+0.14096627j, -0.21526929+0.01205044j,
       -0.19682671+0.00127278j])

通過提供數組,還可以同時在多個點評估多個訂單vz具有廣播兼容的形狀。計算yve對於兩個不同的訂單v和三點z產生一個 2x3 數組。

>>> v = np.array([[1], [2]])
>>> z = np.array([3j, 4j, 5j])
>>> v.shape, z.shape
((2, 1), (3,))
>>> yve(v, z)
array([[-1.96826713e-01+1.27277544e-03j, -1.78750840e-01+1.45558819e-04j,
        -1.63972267e-01+1.73494110e-05j],
       [1.94960056e-03-1.11782545e-01j,  2.02902325e-04-1.17626501e-01j,
        2.27727687e-05-1.17951906e-01j]])

相關用法


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