当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。