Ich habe ein (2-dimensionales) falsches Integral
wobei die Integrationsdomäne kleiner als , aber weiter eingeschränkt durch . Da und glatt sind undAn den Grenzen impliziert die spätere Beziehung, dass der Integrand an den Grenzen singulär sein kann. Der Integrand ist jedoch endlich. Bisher berechne ich dieses Integral mit verschachtelter numerischer Integration. Dies ist erfolgreich, aber langsam. Ich suche eine geeignetere (schnellere) Methode, um das Integral zu adressieren, vielleicht eine Monte-Carlo-Methode. Aber ich brauche einen, der keine Punkte auf die Grenze der nicht-kubischen Domäne A setzt und die Grenze des unkorrekten Integrals richtig nimmt. Kann eine integrale Transformation für diesen allgemeinen Ausdruck hilfreich sein? Beachten Sie, dass ich für als Funktion von lösen und sogar für einige spezielle Gewichtsfunktionen berechnen kann .
quelle
Antworten:
Haftungsausschluss: Ich habe meine Doktorarbeit über adaptive Quadratur geschrieben, daher ist diese Antwort stark auf meine eigene Arbeit ausgerichtet.
GSLs QAGS ist der alte QUADPACK- Integrator und nicht ganz robust, insbesondere bei Singularitäten. Dies führt in der Regel dazu, dass Benutzer weitaus mehr Genauigkeitsanforderungen stellen, als sie tatsächlich benötigen, was die Integration sehr teuer macht.
Wenn Sie GSL verwenden, möchten Sie möglicherweise meinen eigenen Code, CQUAD , ausprobieren , der in diesem Dokument beschrieben wird . Es wurde entwickelt, um Singularitäten sowohl an den Intervallkanten als auch innerhalb der Domäne zu bewältigen. Beachten Sie, dass die Fehlerschätzung recht robust ist. Fragen Sie daher nur nach so vielen Ziffern, wie Sie tatsächlich benötigen.
Bei der Monte-Carlo-Integration kommt es darauf an, welche Genauigkeit Sie suchen. Ich bin mir auch nicht ganz sicher, wie gut es in der Nähe von Singularitäten funktionieren wird.
quelle
Monte-Carlo-Methoden können im Allgemeinen nicht mit der adaptiven Quadratur konkurrieren, es sei denn, Sie haben ein hochdimensionales Integral, bei dem Sie sich die kombinatorische Explosion von Quadraturpunkten mit der Dimension nicht leisten können.
Der Grund ist relativ leicht zu verstehen. Nehmen wir zum Beispiel nur∫[0,1]nf(x)dnx n M Mn k N=(kM)n k (2k−1) e=O(h5)=O(M−(2k−1))
quelle
Versuchen Sie es mit einer verschachtelten doppelt exponentiellen Quadratur (siehe Implementierungen von Ooura ). Diese Technik verwendet eine variable Transformation, die bewirkt, dass sich der transformierte Integrand an den Grenzen sehr gleichmäßig verhält und Singularitäten an der Grenze sehr effizient verarbeitet. Auf seiner Website gibt es auch eine sehr gute Referenzliste zur DE-Quadratur.
quelle