scipy.special.spence#

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

Функция Спенса, также известная как дилогарифм.

Он определяется как

\[\int_1^z \frac{\log(t)}{1 - t}dt\]

для комплексных \(z\), где контур интегрирования выбирается чтобы избежать разрез ветви логарифма. Функция Спенса аналитична везде, кроме отрицательной вещественной оси, где она имеет разрез ветви.

Параметры:
zarray_like

Точки, в которых вычисляется функция Спенса

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

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

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

Вычисленные значения функции Спенса

Примечания

Существует другое соглашение, которое определяет функцию Спенса интегралом

\[-\int_0^z \frac{\log(1 - t)}{t}dt;\]

это наш spence(1 - z).

Примеры

>>> import numpy as np
>>> from scipy.special import spence
>>> import matplotlib.pyplot as plt

Функция определена для комплексных входных данных:

>>> spence([1-1j, 1.5+2j, 3j, -10-5j])
array([-0.20561676+0.91596559j, -0.86766909-1.39560134j,
       -0.59422064-2.49129918j, -1.14044398+6.80075924j])

Для комплексных входных данных на разрезе ветви, который является отрицательной вещественной осью, функция возвращает предел для z с положительной мнимой частью. Например, в следующем примере обратите внимание на изменение знака мнимой части вывода для z = -2 и z = -2 - 1e-8j:

>>> spence([-2 + 1e-8j, -2, -2 - 1e-8j])
array([2.32018041-3.45139229j, 2.32018042-3.4513923j ,
       2.32018041+3.45139229j])

Функция возвращает nan для вещественных входных данных на разрезе ветви:

>>> spence(-1.5)
nan

Проверьте некоторые конкретные значения: spence(0) = pi**2/6, spence(1) = 0 и spence(2) = -pi**2/12.

>>> spence([0, 1, 2])
array([ 1.64493407,  0.        , -0.82246703])
>>> np.pi**2/6, -np.pi**2/12
(1.6449340668482264, -0.8224670334241132)

Проверьте тождество:

spence(z) + spence(1 - z) = pi**2/6 - log(z)*log(1 - z)
>>> z = 3 + 4j
>>> spence(z) + spence(1 - z)
(-2.6523186143876067+1.8853470951513935j)
>>> np.pi**2/6 - np.log(z)*np.log(1 - z)
(-2.652318614387606+1.885347095151394j)

Построение графика функции для положительных вещественных входных данных.

>>> fig, ax = plt.subplots()
>>> x = np.linspace(0, 6, 400)
>>> ax.plot(x, spence(x))
>>> ax.grid()
>>> ax.set_xlabel('x')
>>> ax.set_title('spence(x)')
>>> plt.show()
../../_images/scipy-special-spence-1.png