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


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。