scipy.special.hyp2f1

scipy.special.hyp2f1(a, b, c, z) = <ufunc 'hyp2f1'>

高斯超几何函数2F1(a,b;c;z)

参数
a、b、carray_like

论据,应该是实实在在的。

zarray_like

论据,真实的或复杂的。

退货
hyp2f1标量或ndarray

高斯超几何函数的值。

参见

hyp0f1

合流超几何极限函数。

hyp1f1

Kummer(合流超几何)函数。

注意事项

此函数是为以下对象定义的 \(|z| < 1\) 作为

\[\mathm{sup2f1}(a,b,c,z)=\sum_{n=0}^\infty \frac{(A)_n(B)_n}{(C)_n}\frac{z^n}{n!},\]

并通过解析延拓定义在复z平面的睡觉上 [1]. 这里 \((\cdot)_n\) 是POCHHAMER符号;请参见 poch 。什么时候 \(n\) 是整数,则结果是一次多项式 \(n\)

的复数值的实现 z 中对此进行了说明 [2].

参考文献

1

美国国家标准与技术研究院数学函数数字类库https://dlmf.nist.gov/15.2

2
  1. 张俊明,金俊明,“特殊函数的计算”,Wiley 1996。

3

Cphes数学函数库,http://www.netlib.org/cephes/

示例

>>> import scipy.special as sc

当它有杆子的时候 c 是负整数。

>>> sc.hyp2f1(1, 1, -2, 1)
inf

当满足以下条件时,它是一个多项式 ab 是负整数。

>>> a, b, c = -1, 1, 1.5
>>> z = np.linspace(0, 1, 5)
>>> sc.hyp2f1(a, b, c, z)
array([1.        , 0.83333333, 0.66666667, 0.5       , 0.33333333])
>>> 1 + a * b * z / c
array([1.        , 0.83333333, 0.66666667, 0.5       , 0.33333333])

它是对称的 ab

>>> a = np.linspace(0, 1, 5)
>>> b = np.linspace(0, 1, 5)
>>> sc.hyp2f1(a, b, 1, 0.5)
array([1.        , 1.03997334, 1.1803406 , 1.47074441, 2.        ])
>>> sc.hyp2f1(b, a, 1, 0.5)
array([1.        , 1.03997334, 1.1803406 , 1.47074441, 2.        ])

它还包含许多特殊情况下的其他功能。

>>> z = 0.5
>>> sc.hyp2f1(1, 1, 2, z)
1.3862943611198901
>>> -np.log(1 - z) / z
1.3862943611198906
>>> sc.hyp2f1(0.5, 1, 1.5, z**2)
1.098612288668109
>>> np.log((1 + z) / (1 - z)) / (2 * z)
1.0986122886681098
>>> sc.hyp2f1(0.5, 1, 1.5, -z**2)
0.9272952180016117
>>> np.arctan(z) / z
0.9272952180016123