scipy.special.modstruve#
-
scipy.special.modstruve(v, x, выход=None) =
'modstruve'> # Модифицированная функция Струве.
Возвращает значение модифицированной функции Струве порядка v в x. Модифицированная функция Струве определяется как,
\[L_v(x) = -\imath \exp(-\pi\imath v/2) H_v(\imath x),\]где \(H_v\) является функцией Струве.
- Параметры:
- varray_like
Порядок модифицированной функции Струве (float).
- xarray_like
Аргумент функции Струве (float; должен быть положительным, если только v является целым числом).
- выходndarray, необязательно
Необязательный выходной массив для результатов функции
- Возвращает:
- Lскаляр или ndarray
Значение модифицированной функции Струве порядка v в x.
Смотрите также
Примечания
Три метода, рассмотренные в [1] используются для оценки функции:
степенной ряд
разложение в функции Бесселя (если \(|x| < |v| + 20\))
асимптотическое разложение при больших x (если \(x \geq 0.7v + 12\))
Ошибки округления оцениваются на основе наибольших членов в суммах, и результат, связанный с наименьшей ошибкой, возвращается.
Ссылки
[1]NIST Digital Library of Mathematical Functions https://dlmf.nist.gov/11
Примеры
Вычислить модифицированную функцию Струве порядка 1 при значении 2.
>>> import numpy as np >>> from scipy.special import modstruve >>> import matplotlib.pyplot as plt >>> modstruve(1, 2.) 1.102759787367716
Вычислить модифицированную функцию Струве при 2 для порядков 1, 2 и 3, предоставив список для параметра порядка v.
>>> modstruve([1, 2, 3], 2.) array([1.10275979, 0.41026079, 0.11247294])
Вычислить модифицированную функцию Струве порядка 1 для нескольких точек, предоставив массив для x.
>>> points = np.array([2., 5., 8.]) >>> modstruve(1, points) array([ 1.10275979, 23.72821578, 399.24709139])
Вычислить модифицированную функцию Струве для нескольких порядков в нескольких точках, предоставив массивы для v и z. Массивы должны быть транслируемы к правильным формам.
>>> orders = np.array([[1], [2], [3]]) >>> points.shape, orders.shape ((3,), (3, 1))
>>> modstruve(orders, points) array([[1.10275979e+00, 2.37282158e+01, 3.99247091e+02], [4.10260789e-01, 1.65535979e+01, 3.25973609e+02], [1.12472937e-01, 9.42430454e+00, 2.33544042e+02]])
Построить график модифицированных функций Струве порядка от 0 до 3 от -5 до 5.
>>> fig, ax = plt.subplots() >>> x = np.linspace(-5., 5., 1000) >>> for i in range(4): ... ax.plot(x, modstruve(i, x), label=f'$L_{i!r}$') >>> ax.legend(ncol=2) >>> ax.set_xlim(-5, 5) >>> ax.set_title(r"Modified Struve functions $L_{\nu}$") >>> plt.show()