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


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


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

用法:

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

简并对称椭圆积分。

函数 RC 定义为 [1]

参数

x, y array_like

实数或复数输入参数。 x 可以是沿负实轴切割的复平面中的任意数。 y 必须非零。

out ndarray,可选

函数值的可选输出数组

返回

R 标量或 ndarray

积分值。如果 y 为负实数,则返回柯西主值。如果 x 和 y 均为实数,则返回值为实数。否则,返回值很复杂。

注意

RC 是对称积分 RF 的退化情况:elliprc(x, y) == elliprf(x, y, y) 。它是一个初等函数而不是椭圆积分。

该代码实现了基于重复定理和级数展开至七阶的卡尔森算法。 [2]

参考

[1]

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

[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 elliprc
>>> x = 1.2 + 3.4j
>>> y = 5.
>>> scale = 0.3 + 0.4j
>>> elliprc(scale*x, scale*y)
(0.5484493976710874-0.4169557678995833j)
>>> elliprc(x, y)/np.sqrt(scale)
(0.5484493976710874-0.41695576789958333j)

当两个参数重合时,积分就特别简单:

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

另一个简单的情况:第一个参数消失:

>>> y = 1.2 + 3.4j
>>> elliprc(0, y)
(0.6753125346116815-0.47779380263880866j)
>>> np.pi/2/np.sqrt(y)
(0.6753125346116815-0.4777938026388088j)

什么时候xy都是正数,我们可以表达\(R_C(x,y)\) 就更基本的函数而言。对于本案\(0 \le x < y\) ,

>>> x = 3.2
>>> y = 6.
>>> elliprc(x, y)
0.44942991498453444
>>> np.arctan(np.sqrt((y-x)/x))/np.sqrt(y-x)
0.44942991498453433

对于 的情况,

>>> x = 6.
>>> y = 3.2
>>> elliprc(x,y)
0.4989837501576147
>>> np.log((np.sqrt(x)+np.sqrt(x-y))/np.sqrt(y))/np.sqrt(x-y)
0.49898375015761476

相关用法


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