scipy.special.sici#

scipy.special.sici(x, выход=None) = 'sici'>#

Интегралы синуса и косинуса.

Интегральный синус

\[\int_0^x \frac{\sin{t}}{t}dt\]

и косинусный интеграл равен

\[\gamma + \log(x) + \int_0^x \frac{\cos{t} - 1}{t}dt\]

где \(\gamma\) является постоянной Эйлера и \(\log\) является главной ветвью логарифма [1].

Параметры:
xarray_like

Вещественные или комплексные точки, в которых вычисляются синус и косинус интегралы.

выходкортеж ndarray, опционально

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

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

Интегральный синус в x

ciскаляр или ndarray

Косинусный интеграл в x

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

shichi

Гиперболические интегральные синус и косинус.

exp1

Экспоненциальный интеграл E1.

expi

Экспоненциальный интеграл Ei.

Примечания

Для вещественных аргументов с x < 0, ci является вещественной частью косинусного интеграла. Для таких точек ci(x) и ci(x + 0j) отличаются на множитель 1j*pi.

Для вещественных аргументов функция вычисляется вызовом Cephes’ [2] sici процедура. Для комплексных аргументов алгоритм основан на [3] si и ci функций.

Ссылки

[1] (1,2)

Milton Abramowitz and Irene A. Stegun, eds. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. New York: Dover, 1972. (См. Section 5.2.)

[2]

Библиотека математических функций Cephes, http://www.netlib.org/cephes/

[3]

Fredrik Johansson и другие. «mpmath: библиотека 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()
../../_images/scipy-special-sici-1.png