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


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


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

用法:

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

Completely-symmetric 第二類橢圓積分。

函數 RG 定義為 [1]

參數

x, y, z array_like

實數或複數輸入參數。 x、y 或 z 可以是沿負實軸切割的複平麵中的任意數。

out ndarray,可選

函數值的可選輸出數組

返回

R 標量或 ndarray

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

注意

該實現使用關係 [1]

和對稱性x,y,z當可以選擇至少一個非零參數作為樞軸時。當其中一個參數接近於零時,將改為應用 AGM 方法。其他特殊情況在參考文獻之後計算。[2]

參考

[1] (1,2)

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

[2]

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

例子

基本同質性:

>>> import numpy as np
>>> from scipy.special import elliprg
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> z = 6.
>>> scale = 0.3 + 0.4j
>>> elliprg(scale*x, scale*y, scale*z)
(1.195936862005246+0.8470988320464167j)
>>> elliprg(x, y, z)*np.sqrt(scale)
(1.195936862005246+0.8470988320464165j)

簡化:

>>> elliprg(0, y, y)
1.756203682760182
>>> 0.25*np.pi*np.sqrt(y)
1.7562036827601817
>>> elliprg(0, 0, z)
1.224744871391589
>>> 0.5*np.sqrt(z)
1.224744871391589

具有半軸 abc 的三軸橢球的表麵積由下式給出

>>> def ellipsoid_area(a, b, c):
...     r = 4.0 * np.pi * a * b * c
...     return r * elliprg(1.0 / (a * a), 1.0 / (b * b), 1.0 / (c * c))
>>> print(ellipsoid_area(1, 3, 5))
108.62688289491807

相關用法


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