Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « scipy.special »

Fonction hyp2f1 - module scipy.special

Signature de la fonction hyp2f1

Description

hyp2f1.__doc__

hyp2f1(x1, x2, x3, x4, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])

hyp2f1(a, b, c, z)

Gauss hypergeometric function 2F1(a, b; c; z)

Parameters
----------
a, b, c : array_like
    Arguments, should be real-valued.
z : array_like
    Argument, real or complex.

Returns
-------
hyp2f1 : scalar or ndarray
    The values of the gaussian hypergeometric function.

See also
--------
hyp0f1 : confluent hypergeometric limit function.
hyp1f1 : Kummer's (confluent hypergeometric) function.

Notes
-----
This function is defined for :math:`|z| < 1` as

.. math::

   \mathrm{hyp2f1}(a, b, c, z) = \sum_{n=0}^\infty
   \frac{(a)_n (b)_n}{(c)_n}\frac{z^n}{n!},

and defined on the rest of the complex z-plane by analytic
continuation [1]_.
Here :math:`(\cdot)_n` is the Pochhammer symbol; see `poch`. When
:math:`n` is an integer the result is a polynomial of degree :math:`n`.

The implementation for complex values of ``z`` is described in [2]_.

References
----------
.. [1] NIST Digital Library of Mathematical Functions
       https://dlmf.nist.gov/15.2
.. [2] S. Zhang and J.M. Jin, "Computation of Special Functions", Wiley 1996
.. [3] Cephes Mathematical Functions Library,
       http://www.netlib.org/cephes/

Examples
--------
>>> import scipy.special as sc

It has poles when `c` is a negative integer.

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

It is a polynomial when `a` or `b` is a negative integer.

>>> 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])

It is symmetric in `a` and `b`.

>>> 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.        ])

It contains many other functions as special cases.

>>> 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