Erstens, durch analytische Integration, meine ich, gibt es eine Integrationsregel, um dies zu lösen, im Gegensatz zu numerischen Analysen (wie Trapez-, Gauß-Legendre- oder Simpson-Regeln)?
Ich habe eine Funktion wobei
Ich muss das Integral \ int_ {a} ^ {b} f (x) \, \ rd x \> berechnen
Derzeit mache ich dies mit numerischer Integration nach der Gauss-Legendre-Methode. Da ich dies viele Male ausführen muss, ist die Leistung wichtig. Bevor ich mich mit der Optimierung der numerischen Analysen / anderer Teile befasse, möchte ich wissen, ob es Integrationsregeln gibt, um dies zu lösen.
Ich habe versucht, die Regel der Teilintegration anzuwenden, und bin dazu gekommen, wo ich wieder feststecke.
.
Ich stecke fest, da ich das \ int G (x) \ rd x nicht auswerten kann .
Dies ist für ein Softwarepaket, das ich erstelle.
quelle
Antworten:
Kurze Antwort : Nein, zumindest in Bezug auf Elementarfunktionen ist dies nicht möglich. Es gibt jedoch sehr gute (und relativ schnelle!) Numerische Algorithmen zur Berechnung einer solchen Größe, und sie sollten in diesem Fall jeder numerischen Integrationstechnik vorgezogen werden.
Interessante Menge in Bezug auf normales cdf
Die Menge, an der Sie interessiert sind, hängt tatsächlich eng mit dem bedingten Mittelwert einer logarithmischen Zufallsvariablen zusammen. Das heißt, wenn als Lognormal mit den Parametern und , dann verwenden Sie unter Verwendung Ihrer NotationX μ σ
Um einen Ausdruck für dieses Integral zu erhalten, setzen Sie die Substitution . Dies mag zunächst etwas unmotiviert erscheinen. Beachten Sie jedoch, dass mit dieser Substitution und durch eine einfache Änderung der Variablen wobei und .z=(log(x)−(μ+σ2))/σ x=eμ+σ2eσz
Daher ist wobei der Standard ist normale kumulative Verteilungsfunktion.
Numerische Approximation
Es wird oft angegeben, dass kein bekannter Ausdruck in geschlossener Form für existiert. Ein Satz von Liouville aus dem frühen 19. Jahrhundert behauptet jedoch etwas Stärkeres: Es gibt keinen Ausdruck in geschlossener Form für diese Funktion . (Für den Beweis in diesem speziellen Fall siehe Brian Conrads Bericht .)Φ(x)
Wir müssen also einen numerischen Algorithmus verwenden, um die gewünschte Menge zu approximieren. Dies kann innerhalb des IEEE-Gleitkommas mit doppelter Genauigkeit über einen Algorithmus von WJ Cody erfolgen. Es ist der Standardalgorithmus für dieses Problem, und unter Verwendung rationaler Ausdrücke relativ niedriger Ordnung ist es auch ziemlich effizient.
Hier ist eine Referenz, die die Annäherung diskutiert:
Dies ist unter anderem auch die Implementierung, die sowohl in MATLAB als auch in wird, falls diese das Abrufen von Beispielcode erleichtern.R
Hier ist eine verwandte Frage, falls Sie interessiert sind.
quelle