J'ai énormément de difficulté à évaluer avec le package en R. Dans mon cas, les valeurs de , , sont toujours des nombres réels positifs. Même ainsi, la fonction hypergéométrique est incroyablement sensible à leurs valeurs. Je ne recherche pas une précision extrême; Je peux utiliser Excel pour obtenir une estimation approximative de l'hypergéométrique de Guass qui convient à mes besoins.hypergeo
Avez-vous des suggestions pour une implémentation en R qui donnerait un calcul hypergéométrique gaussien rapide, sans erreur, sinon super précis, de nombres réels positifs avec une large gamme de valeurs?
Edit: il semble qu'il y ait beaucoup plus de code pour cela dans MATLAB que R. Des réflexions sur pourquoi?
r
hypergeometric
enroule
la source
la source
Réponses:
À moins que vous n'ayez besoin d'évaluer la fonction hypergéométrique de Gauss pour les valeurs complexes des paramètres ou de la variable, il est préférable d'utiliser le
gsl
package de Robin Hankin .Sur la base de mon expérience, je recommande également d'évaluer uniquement la fonction hypergéométrique de Gauss pour une valeur de la variable située dans et d'utiliser une formule de transformation pour les valeurs dans .[0,1] ]−∞,0]
Mise à jour
Voici mon implémentation alternative avec le paquet gmp (au moins, pour le plaisir)
la source
@ La formule de Stéphane Laurent ci-dessus est excellente. Je l' ai remarqué qu'il produit parfois
NaN
s quanda
,b
,c
sont grandes etz
est négative - je ne l' ai pas été en mesure de cerner les conditions précises vers le bas. Dans ces cas, nous pouvons utiliser une autre transformation hypergéométrique à partir de l'expression alternative de Stéphane. Cela conduit à cette formule alternative:Par exemple:
tous trois d'accord avec Mathematica
Hypergeometric2F1
. Cette formule semble bien se comportait aussi pour les plus petitsa
,b
,c
. Notez qu'il existe des cas où cette formule donneNaN
et Stéphane de ne pas , cependant. Mieux vaut vérifier au cas par cas.la source