當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy special.spence用法及代碼示例


本文簡要介紹 python 語言中 scipy.special.spence 的用法。

用法:

scipy.special.spence(z, out=None) = <ufunc 'spence'>#

斯賓塞函數,也稱為雙對數。

它被定義為

對於複數 ,采用積分輪廓以避免對數的分支切割。 Spence 函數除了在負實軸上有分支切割之外,在任何地方都是解析的。

參數

z array_like

評估 Spence 函數的要點

out ndarray,可選

函數結果的可選輸出數組

返回

s 標量或 ndarray

Spence 函數的計算值

注意

有一個不同的約定,通過積分定義 Spence 函數

這是我們的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 = -2z = -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/6spence(1) = 0spence(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()
scipy-special-spence-1.png

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.special.spence。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。