当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy special.struve用法及代码示例


本文简要介绍 python 语言中 scipy.special.struve 的用法。

用法:

scipy.special.struve(v, x, out=None) = <ufunc 'struve'>#

斯特鲁维函数。

返回 Struve 阶函数的值vx。 Struve 函数定义为,

其中 是伽马函数。

参数

v array_like

Struve 函数的阶数(浮点数)。

x array_like

Struve 函数的参数(浮点数;必须为正,除非 v 是整数)。

out ndarray,可选

函数结果的可选输出数组

返回

H 标量或 ndarray

v 阶 Struve 函数在 x 处的值。

注意

[1] 中讨论的三种方法用于评估 Struve 函数:

  • 动力系列

  • 贝塞尔函数的扩展(如果 )

  • 渐近 large-z 展开(如果 )

根据总和中的最大项估计舍入误差,并返回与最小误差相关的结果。

参考

[1]

NIST 数学函数数字 Library https://dlmf.nist.gov/11

例子

计算 2 阶 1 阶 Struve 函数。

>>> import numpy as np
>>> from scipy.special import struve
>>> import matplotlib.pyplot as plt
>>> struve(1, 2.)
0.6467637282835622

通过提供阶参数 v 的列表,计算阶 1、2 和 3 的 Struve 函数在 2 处的值。

>>> struve([1, 2, 3], 2.)
array([0.64676373, 0.28031806, 0.08363767])

通过提供 x 的数组,计算多个点的 1 阶 Struve 函数。

>>> points = np.array([2., 5., 8.])
>>> struve(1, points)
array([0.64676373, 0.80781195, 0.48811605])

通过提供 v 和 z 的数组,在多个点计算多个阶的 Struve 函数。数组必须可以广播为正确的形状。

>>> orders = np.array([[1], [2], [3]])
>>> points.shape, orders.shape
((3,), (3, 1))
>>> struve(orders, points)
array([[0.64676373, 0.80781195, 0.48811605],
       [0.28031806, 1.56937455, 1.51769363],
       [0.08363767, 1.50872065, 2.98697513]])

绘制从 -10 到 10 的 0 到 3 阶 Struve 函数。

>>> fig, ax = plt.subplots()
>>> x = np.linspace(-10., 10., 1000)
>>> for i in range(4):
...     ax.plot(x, struve(i, x), label=f'$H_{i!r}$')
>>> ax.legend(ncol=2)
>>> ax.set_xlim(-10, 10)
>>> ax.set_title(r"Struve functions $H_{\nu}$")
>>> plt.show()
scipy-special-struve-1.png

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.special.struve。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。