scipy.special.kve#

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

指數縮放的第二類修正貝索函數。

返回實數階 v 在複數 z 下,指數縮放的第二類修正貝索函數(有時稱為第三類)。

kve(v, z) = kv(v, z) * exp(z)
參數:
varray_like of float

貝索函數的階數

zarray_like of complex

評估貝索函數的參數

outndarray, optional

函數結果的可選輸出陣列

返回:
scalar or ndarray

指數縮放的第二類修正貝索函數。

另請參閱

kv

此函數不帶指數縮放。

k0e

此函數 0 階的更快版本。

k1e

此函數 1 階的更快版本。

註解

AMOS [1] 常式 zbesk 的包裝函式。 有關所用演算法的討論,請參閱 [2] 及其中的參考文獻。

參考文獻

[1]

Donald E. Amos, “AMOS, A Portable Package for Bessel Functions of a Complex Argument and Nonnegative Order”, http://netlib.org/amos/

[2]

Donald E. Amos, “Algorithm 644: A portable package for Bessel functions of a complex argument and nonnegative order”, ACM TOMS Vol. 12 Issue 3, Sept. 1986, p. 265

範例

在以下範例中,kv 返回 0,而 kve 仍然返回有用的有限數字。

>>> import numpy as np
>>> from scipy.special import kv, kve
>>> import matplotlib.pyplot as plt
>>> kv(3, 1000.), kve(3, 1000.)
(0.0, 0.03980696128440973)

通過為 v 參數提供列表或 NumPy 陣列作為參數,在一個點評估不同階數的函數

>>> kve([0, 1, 1.5], 1.)
array([1.14446308, 1.63615349, 2.50662827])

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

>>> points = np.array([1., 3., 10.])
>>> kve(0, points)
array([1.14446308, 0.6977616 , 0.39163193])

通過為 vz 都提供陣列,在多個點評估不同階數的函數。 兩個陣列都必須可廣播到正確的形狀。 要計算點的 1D 陣列的 0、1 和 2 階

>>> kve([[0], [1], [2]], points)
array([[1.14446308, 0.6977616 , 0.39163193],
       [1.63615349, 0.80656348, 0.41076657],
       [4.41677005, 1.23547058, 0.47378525]])

繪製從 0 到 5 的 0 到 3 階函數圖。

>>> fig, ax = plt.subplots()
>>> x = np.linspace(0., 5., 1000)
>>> for i in range(4):
...     ax.plot(x, kve(i, x), label=fr'$K_{i!r}(z)\cdot e^z$')
>>> ax.legend()
>>> ax.set_xlabel(r"$z$")
>>> ax.set_ylim(0, 4)
>>> ax.set_xlim(0, 5)
>>> plt.show()
../../_images/scipy-special-kve-1.png