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


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


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

用法:

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

正弦和余弦积分。

正弦积分是

余弦积分是

其中 是欧拉常数, 是对数的主分支[1]。

参数

x array_like

计算正弦和余弦积分的实数或复数点。

out ndarray 的元组,可选

函数结果的可选输出数组

返回

si 标量或 ndarray

x 处的正弦积分

ci 标量或 ndarray

x 处的余弦积分

注意

对于 x < 0 的实数参数,ci 是余弦积分的实部。对于这样的点 ci(x)ci(x + 0j) 相差 1j*pi 倍。

对于实参,该函数是通过调用 Cephes’ 来计算的[2] 思慈常规。对于复杂的参数,该算法基于 Mpmath[3] 例程。

参考

[1] (1,2)

米尔顿·阿布拉莫维茨和艾琳·A·斯特根编辑。包含公式、图表和数学表格的数学函数手册。纽约:多佛,1972 年。(参见第 5.2 节。)

[2]

Cephes 数学函数库,http://www.netlib.org/cephes/

[3]

弗雷 Delhi 克约翰逊等人。 “mpmath:arbitrary-precision 浮点运算的 Python 库”(0.19 版)http://mpmath.org/

例子

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.special import sici, exp1

sici 接受实数或复数输入:

>>> sici(2.5)
(1.7785201734438267, 0.2858711963653835)
>>> sici(2.5 + 3j)
((4.505735874563953+0.06863305018999577j),
(0.0793644206906966-2.935510262937543j))

对于右半平面中的 z,正弦和余弦积分与指数积分 E1 相关(在 SciPy 中实现为 scipy.special.exp1 ):

  • Si(z) = (E1(i*z) - E1(-i*z))/2i + pi/2

  • Ci(z) = -(E1(i*z) + E1(-i*z))/2

请参见 [1](方程 5.2.21 和 5.2.23)。

我们可以验证这些关系:

>>> z = 2 - 3j
>>> sici(z)
((4.54751388956229-1.3991965806460565j),
(1.408292501520851+2.9836177420296055j))
>>> (exp1(1j*z) - exp1(-1j*z))/2j + np.pi/2  # Same as sine integral
(4.54751388956229-1.3991965806460565j)
>>> -(exp1(1j*z) + exp1(-1j*z))/2            # Same as cosine integral
(1.408292501520851+2.9836177420296055j)

绘制在实轴上评估的函数;水平虚线位于 pi/2 和 -pi/2 处:

>>> x = np.linspace(-16, 16, 150)
>>> si, ci = sici(x)
>>> fig, ax = plt.subplots()
>>> ax.plot(x, si, label='Si(x)')
>>> ax.plot(x, ci, '--', label='Ci(x)')
>>> ax.legend(shadow=True, framealpha=1, loc='upper left')
>>> ax.set_xlabel('x')
>>> ax.set_title('Sine and Cosine Integrals')
>>> ax.axhline(np.pi/2, linestyle=':', alpha=0.5, color='k')
>>> ax.axhline(-np.pi/2, linestyle=':', alpha=0.5, color='k')
>>> ax.grid(True)
>>> plt.show()
scipy-special-sici-1.png

相关用法


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