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


Python SciPy special.elliprf用法及代码示例


本文简要介绍 python 语言中 scipy.special.elliprf 的用法。

用法:

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

Completely-symmetric 第一类椭圆积分。

函数 RF 定义为 [1]

参数

x, y, z array_like

实数或复数输入参数。 x、y 或 z 可以是沿负实轴切割的复平面中的任意数,但最多其中之一可以为零。

out ndarray,可选

函数值的可选输出数组

返回

R 标量或 ndarray

积分值。如果 x、y 和 z 都是实数,则返回值是实数。否则,返回值很复杂。

注意

该代码实现了基于重复定理和级数展开至七阶(参见:https://dlmf.nist.gov/19.36.i)的卡尔森算法以及完全积分的 AGM 算法。 [2]

参考

[1]

B. C. Carlson 主编,“数学函数数字 Library ”第 19 章,NIST,美国商务部。 https://dlmf.nist.gov/19.16.E1

[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 elliprf
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> z = 6.
>>> scale = 0.3 + 0.4j
>>> elliprf(scale*x, scale*y, scale*z)
(0.5328051227278146-0.4008623567957094j)
>>> elliprf(x, y, z)/np.sqrt(scale)
(0.5328051227278147-0.4008623567957095j)

所有三个论点都一致:

>>> x = 1.2 + 3.4j
>>> elliprf(x, x, x)
(0.42991731206146316-0.30417298187455954j)
>>> 1/np.sqrt(x)
(0.4299173120614631-0.30417298187455954j)

所谓“first lemniscate constant”:

>>> elliprf(0, 1, 2)
1.3110287771460598
>>> from scipy.special import gamma
>>> gamma(0.25)**2/(4*np.sqrt(2*np.pi))
1.3110287771460598

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.special.elliprf。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。