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


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


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

用法:

scipy.special.elliprd(x, y, z, out=None) = <ufunc 'elliprd'>#

第二類對稱橢圓積分。

函數 RD 定義為 [1]

參數

x, y, z array_like

實數或複數輸入參數。 x 或 y 可以是沿負實軸切割的複平麵中的任意數,但最多其中一個可以為零,而 z 必須非零。

out ndarray,可選

函數值的可選輸出數組

返回

R 標量或 ndarray

積分值。如果 x、y 和 z 都是實數,則返回值是實數。否則,返回值很複雜。

注意

RD 是橢圓積分 RJ 的簡並情況:elliprd(x, y, z) == elliprj(x, y, z, z)

該代碼實現了基於重複定理和級數展開至七階的卡爾森算法。 [2]

參考

[1]

B. C. Carlson 主編,“數學函數數字 Library ”第 19 章,NIST,美國商務部。 https://dlmf.nist.gov/19.16.E5

[2]

B. C. Carlson,“實數或複數橢圓積分的數值計算”,Numer。算法,卷。 10,沒有。 1,第 13-26 頁,1995 年。https://arxiv.org/abs/math/9409227 https://doi.org/10.1007/BF02198293

例子

基本同質性:

>>> import numpy as np
>>> from scipy.special import elliprd
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> z = 6.
>>> scale = 0.3 + 0.4j
>>> elliprd(scale*x, scale*y, scale*z)
(-0.03703043835680379-0.24500934665683802j)
>>> elliprd(x, y, z)*np.power(scale, -1.5)
(-0.0370304383568038-0.24500934665683805j)

所有三個論點都一致:

>>> x = 1.2 + 3.4j
>>> elliprd(x, x, x)
(-0.03986825876151896-0.14051741840449586j)
>>> np.power(x, -1.5)
(-0.03986825876151894-0.14051741840449583j)

所謂“second lemniscate constant”:

>>> elliprd(0, 2, 1)/3
0.5990701173677961
>>> from scipy.special import gamma
>>> gamma(0.75)**2/np.sqrt(2*np.pi)
0.5990701173677959

相關用法


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