scipy.special.fresnel#

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

菲涅耳積分。

菲涅耳積分定義如下:

\[\begin{split}S(z) &= \int_0^z \sin(\pi t^2 /2) dt \\ C(z) &= \int_0^z \cos(\pi t^2 /2) dt.\end{split}\]

請參閱 [dlmf] 以了解詳細資訊。

參數:
zarray_like

實數或複數值引數

out2-tuple of ndarrays, optional

函數結果的可選輸出陣列

回傳:
S, C2-tuple of scalar or ndarray

菲涅耳積分的值

另請參閱

fresnel_zeros

菲涅耳積分的零點

參考文獻

[dlmf]

NIST 數學函數數位圖書館 https://dlmf.nist.gov/7.2#iii

範例

>>> import numpy as np
>>> import scipy.special as sc

當 z 沿實軸趨近於無限大時,S 和 C 收斂到 0.5。

>>> S, C = sc.fresnel([0.1, 1, 10, 100, np.inf])
>>> S
array([0.00052359, 0.43825915, 0.46816998, 0.4968169 , 0.5       ])
>>> C
array([0.09999753, 0.7798934 , 0.49989869, 0.4999999 , 0.5       ])

它們與誤差函數 erf 相關。

>>> z = np.array([1, 2, 3, 4])
>>> zeta = 0.5 * np.sqrt(np.pi) * (1 - 1j) * z
>>> S, C = sc.fresnel(z)
>>> C + 1j*S
array([0.7798934 +0.43825915j, 0.48825341+0.34341568j,
       0.60572079+0.496313j  , 0.49842603+0.42051575j])
>>> 0.5 * (1 + 1j) * sc.erf(zeta)
array([0.7798934 +0.43825915j, 0.48825341+0.34341568j,
       0.60572079+0.496313j  , 0.49842603+0.42051575j])