2017-08-23 2 views
3

intégration symbolique du PDF gaussienne inverse fonctionne sur Wolfram Alpha https://www.wolframalpha.com/input/?i=x%5E(-3%2F2)*exp(-Bx-A%2Fx)Comment faire allusion sympy une intégration pour l'équation gaussienne inverse

mais je ne peux pas le reproduire à l'aide sympy (Il faut toujours sans réponse):

from __future__ import division 
from sympy import * 
A, B, x = symbols('A B x') 
ig_pdf = (sqrt(x)**(-3))*exp(-B*x-A/x) 
pprint(ig_pdf, use_unicode=True) 
ig_cdf = integrate(ig_pdf, x, conds='none') 
pprint(ig_cdf, use_unicode=True) 

Existe-t-il un moyen de le faire fonctionner et de produire une intégration de forme fermée? Comment puis-je suggérer à Sympy d'utiliser une certaine règle d'intégration telle que «l'intégration par parties»?

+1

Si vous affectez 'A, B, x' comme objets de valeur réels alors sympy abandonnera et retournera simplement l'intégrale non évaluée. J'ai pris mon ordinateur pendant un bon moment. – Hannebambel

+0

Si vous avez juste besoin de dériver le CDF, il semble qu'il a une forme relativement simple en termes de CDF normal. Voir: https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution –

+0

@Hannebambel; génial. Cela vaut la peine de poster comme réponse. Ensuite, je vais le marquer comme la réponse acceptée. Quand vous dites "finalement abandonner", que cherche-t-il à abandonner? Un moyen de le rendre plus rapide? Merci @RobertDodier; Je dois l'utiliser pour d'autres cas. Ceci est un exemple. –

Répondre

1

Comme demandé ici mon commentaire comme réponse.

Je suppose que sympy n'est pas (encore) capable de résoudre cette intégrale. Affecter A, B, x = symbols('A B x', real=True) comme variables réelles ne fait pas l'affaire. sympy calcule pendant environ 40 minutes avant de retourner simplement l'intégrale, pas la solution. La même sortie peut être obtenue beaucoup plus rapidement en utilisant ig_cdf = sym.integrals.Integral(ig_pdf, x) au lieu de l'intégration. Testé avec sympy version 1.1.1, python 3.6.2

+0

Wolfram Alpha peut le faire sur leur serveur. Je suis curieux de voir si Mathematica (sur un PC de bureau) est capable de faire cette intégration. Wolfram vs Sympy: 1 0 –