scipy.special.kv#
- scipy.special.kv(v, z, out=None) = <ufunc 'kv'>#
實數階第二類修正貝索函數 v
返回實數階 v 在複數 z 的修正貝索函數值。
這些函數有時也稱為第三類函數、巴塞特函數或麥克唐納函數。它們被定義為修正貝索方程式的解,其中,
\[K_v(x) \sim \sqrt{\pi/(2x)} \exp(-x)\]當 \(x \to \infty\) [3]。
- 參數:
- varray_like of float
貝索函數的階數
- zarray_like of complex
評估貝索函數的自變數
- outndarray, optional
函數結果的可選輸出陣列
- 返回值:
- 純量或 ndarray
結果。請注意,輸入必須為複數類型才能獲得複數輸出,例如
kv(3, -2+0j)
而不是kv(3, -2)
。
註釋
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
[3]NIST Digital Library of Mathematical Functions, Eq. 10.25.E3. https://dlmf.nist.gov/10.25.E3
範例
繪製多個階數的實數輸入函數
>>> import numpy as np >>> from scipy.special import kv >>> import matplotlib.pyplot as plt >>> x = np.linspace(0, 5, 1000) >>> for N in np.linspace(0, 6, 5): ... plt.plot(x, kv(N, x), label='$K_{{{}}}(x)$'.format(N)) >>> plt.ylim(0, 10) >>> plt.legend() >>> plt.title(r'Modified Bessel function of the second kind $K_\nu(x)$') >>> plt.show()
計算單一值在多個階數下的結果
>>> kv([4, 4.5, 5], 1+2j) array([ 0.1992+2.3892j, 2.3493+3.6j , 7.2827+3.8104j])