scipy.special.kve#

scipy.special.kve(v, z, выход=None) = 'kve'>#

Экспоненциально масштабированная модифицированная функция Бесселя второго рода.

Возвращает экспоненциально масштабированную модифицированную функцию Бесселя второго рода (иногда называемую третьего рода) для вещественного порядка v при комплексных z:

kve(v, z) = kv(v, z) * exp(z)
Параметры:
varray_like из float

Порядок функций Бесселя

zarray_like комплексных чисел

Аргумент, в котором вычисляются функции Бесселя

выходndarray, необязательно

Необязательный выходной массив для результатов функции

Возвращает:
скаляр или ndarray

Экспоненциально масштабированная модифицированная функция Бесселя второго рода.

Смотрите также

kv

Эта функция без экспоненциального масштабирования.

k0e

Более быстрая версия этой функции для порядка 0.

k1e

Более быстрая версия этой функции для порядка 1.

Примечания

Оболочка для AMOS [1] рутина zbesk. Для обсуждения используемого алгоритма см. [2] и ссылки в нём.

Ссылки

[1]

Дональд Э. Амос, «AMOS, переносимый пакет для функций Бесселя комплексного аргумента и неотрицательного порядка», http://netlib.org/amos/

[2]

Дональд Э. Амос, "Алгоритм 644: Переносимый пакет для функций Бесселя комплексного аргумента и неотрицательного порядка", ACM TOMS Том. 12 Выпуск 3, сентябрь 1986, стр. 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)

Вычислите функцию в одной точке для разных порядков, предоставив список или массив NumPy в качестве аргумента для v параметр:

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

Оцените функцию в нескольких точках для порядка 0, предоставив массив для z.

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

Вычислить функцию в нескольких точках для разных порядков, предоставляя массивы для обоих v для z. Оба массива должны быть совместимы для трансляции в правильную форму. Для вычисления порядков 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 до 3 на интервале от 0 до 5.

>>> 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