Est-il possible d'intégrer analytiquement

10

Premièrement, en intégrant analytiquement, je veux dire, existe-t-il une règle d'intégration pour résoudre ce problème par opposition aux analyses numériques (telles que les règles trapézoïdales, Gauss-Legendre ou Simpson)?

J'ai une fonction g ( x ; μ , σ ) = 1f(x)=xg(x;μ,σ) est la fonction de densité de probabilité d'une distribution lognormale avec les paramètresμetσ. Ci-dessous, je vais abréger la notation eng(x)et utiliserG(x)pour la fonction de distribution cumulative.

g(x;μ,σ)=1σx2πe12σ2(log(x)μ)2
μσg(x)G(x)

J'ai besoin de calculer l'intégrale

abf(x)dx.

Actuellement, je fais cela avec l'intégration numérique en utilisant la méthode de Gauss-Legendre. Étant donné que je dois l'exécuter un grand nombre de fois, les performances sont importantes. Avant de chercher à optimiser les analyses numériques / autres éléments, j'aimerais savoir s'il existe des règles d'intégration pour résoudre ce problème.

J'ai essayé d'appliquer la règle d'intégration par parties, et j'y suis arrivé, où je suis de nouveau coincé,

  1. .udv=uvvdu

  2. u=xdu=dx

  3. dv=g(x)dxv=G(x)

  4. uvvdx=xG(x)G(x)dx

Je suis coincé, car je ne peux pas évaluer le .G(x)dx

C'est pour un progiciel que je construis.

Rosh
la source
@Rosh, par vous voulez dire la densité de probabilité de la distribution log-normale? lognormal
mpiktas
1
Ceci est exprimable en tant que temps constants d'une différence de deux cdfs normaux. Les cdfs normaux sont calculés efficacement en utilisant l'approximation rationnelle de Chebyshev de W. Cody. Vous ne devriez pas avoir besoin et, presque sans doute ne devriez pas préférer , des alternatives d'intégration numérique à cela. Si vous avez besoin de plus de détails, je peux les poster.
Cardinal
@mpiktas, Oui, lognormal est la fonction de densité de probabilité et lognormalCDF est la fonction de densité cumulative.
Rosh
3
@Rosh a une distribution lognormale signifie que log ( x ) est normalement distribué. Ainsi, remplacez x = exp ( y ) dans votre intégrale d' origine . L'intégrande est une exponentielle dont l'argument est une fonction quadratique de y . Remplir le carré le transforme en un multiple d'un PDF normal, donc votre réponse est écrite en termes de CDF normal et d'exponentielles des points de terminaison d'origine. Il existe de nombreuses bonnes approximations du CDF normal (un multiple de la fonction d'erreur). xlog(x)x=exp(y)y
whuber
1
Oui, @whuber et moi décrivions la même chose. Vous devriez obtenir quelque chose comme β=(log(b)-(μ+σ2))/σetα=(log(a)-(μ+σ2))/σetΦ()eμ+12σ2(Φ(β)Φ(α))β=(log(b)(μ+σ2))/σα=(log(a)(μ+σ2))/σΦ()désigne le cdf normal. Notez que, selon les valeurs de , b , μ et σ , il existe des moyens de réécrire cette expression pour qu'elle soit plus stable numériquement. abμσ
Cardinal

Réponses:

15

Réponse courte : Non, ce n'est pas possible, du moins en termes de fonctions élémentaires. Cependant, il existe de très bons (et raisonnablement rapides!) Algorithmes numériques pour calculer une telle quantité et ils devraient être préférés à toute technique d'intégration numérique dans ce cas.

Quantité d'intérêt en termes de cdf normal

Xμσ

abf(x)dx=ab1σ2πe12σ2(log(x)μ)2dx=P(aXb)E(XaXb).

z=(log(x)(μ+σ2))/σx=eμ+σ2eσz

abf(x)dx=eμ+12σ2αβ12πe12z2dz,
α=(log(a)(μ+σ2))/σβ=(log(b)(μ+σ2))/σ

abf(x)dx=eμ+12σ2(Φ(β)Φ(α)),
Φ(x)=x12πez2/2dz

Approximation numérique

Φ(x)

Il nous reste donc à utiliser un algorithme numérique pour approximer la quantité souhaitée. Cela peut être fait en virgule flottante double précision IEEE via un algorithme de WJ Cody. C'est l' algorithme standard pour ce problème, et en utilisant des expressions rationnelles d'un ordre assez faible, il est également assez efficace.

Voici une référence qui discute de l'approximation:

WJ Cody, Rational Chebyshev Approximations for the Error Function , Math. Comp. , 1969, p. 631--637.

R

Voici une question connexe, au cas où vous seriez intéressé.

cardinal
la source