numerische Integration in viele Variablen

12

Sei und f ( x ) : [ 0 , 1 ] nC sei eine Funktion in diesen Variablen.x=(x1,x2,,xn)[0,1]nf(x):[0,1]nC

Gibt es ein rekursives Schema für dieses iterierte Integral?

[0,1]ndxif(x)

Wenn und ich [ 0 , 1 ] in 100 Segmente zerlege, müssen wir 10 bis 20 Punkte addieren. Es muss einen intelligenteren Weg geben.n=10[0,1]1020


Tatsächlich ist die Funktion, die ich integrieren möchte, das Haar-Maß der Einheitsgruppe.

U(n)f(EIN) dEIN=1n![0,2π]nj<k|eichθj-eichθk|2f(θ1,,θn) dθ12π  dθn2π
John Mangual
quelle
2
Wenn Ihre Dimension nicht zu groß ist, können Sie auch spärliche Quadraturmethoden für Ihr Integral in Betracht ziehen.
Paul
@Paul kannst du dieses Thema in einer Antwort näher erläutern? Ich werde wahrscheinlich abstimmen
John Mangual

Antworten:

15

Bei Integrationen mit vielen Variablen ist die Monte-Carlo-Methode normalerweise eine gute Wahl. Sein Fehler nimmt ab, wenn wobei N die Anzahl der ausgewählten gleichverteilten Punkte ist. Dies ist natürlich nicht gut für Räume mit geringen Abmessungen (1D und 2D), in denen Methoden hoher Ordnung existieren. Die meisten dieser deterministischen Methoden benötigen jedoch eine große Anzahl von Punkten in höheren Dimensionen. Zum Beispiel ist ein 1D-Schema 1. OrdnungO(Ö(N)in 2D undO(N 1Ö(N)in 3D. Die Stärke der Monte-Carlo-Methode besteht darin, dass die Fehlerkonvergenz unabhängig von der Raumdimension ist. Egal ob Ihr Leerzeichen 1D oder 100D ist, es istO(Ö(N14). Ö(N)

Da dies jedoch wahrscheinlich ist, müssen Sie es mehrmals mit einer festgelegten Anzahl von Punkten integrieren, um eine Standardabweichung und eine Schätzung Ihres Fehlers zu ermitteln.

Godric Seher
quelle
1
Für die Integration ist die Verwendung von Quasi-Monte-Carlo, beispielsweise unter Verwendung von Sobel-Sequenzen, etwas besser.
Lutz Lehmann
Ah ja, ich habe gleich verteilte Punkte angegeben (über Pseudozufall), aber nicht explizit zwischen den beiden unterschieden.
Godric Seer
1
@GodricSeer Sieht so aus, als würden Sobol-Sequenzen auch in großen Dimensionen ein schönes gleichmäßiges Netz bilden. Es scheint, dass er die gleiche Frage anspricht: zu habensehr schnell. Gray CodeundDiskrepanzenscheinen Probleme zu sein.
1nf(xich)[0,1]nf dx
John Mangual
Ja, die Sobol-Sequenz würde eine gute Punkteverteilung ergeben. Quasi-Monte-Carlo ist wahrscheinlich eine der besseren Methoden für Ihr Problem.
Godric Seer
8

Eine spärliche Gitterquadratur ist ein alternativer Ansatz zur Integration in höhere Dimensionen.

Die Quadratur beruht auf der Auswertung einer gewichteten Summe von Funktionswerten an bestimmten "optimalen" Punkten. Herkömmliche Quadratur verwendet eine Tensorproduktgitterkonstruktion in höheren Dimensionen, was bedeutet, dass Sie die Funktion mit zunehmender Dimension an einer exponentiell wachsenden Anzahl von Punkten bewerten müssen.

Der Trick, die Gitterquadratur zu sparsamen besteht darin, dass Sie mit einer kleinen Teilmenge des Tensorproduktgitters die gleiche Ordnungsgenauigkeit (im asymptotischen Sinne) können. Die wenigen Punkte, die Sie auswählen, sind diejenigen, die Monome bis zu einem gewünschten Gesamtgrad genau integrieren . Die Recheneinsparungen (im Vergleich zum Tensorproduktgitter) steigen mit zunehmender Dimension erheblich.

Es gibt jedoch Nachteile bei dieser Methode, die Sie beachten sollten.

  1. Diese Methode funktioniert nicht gut, wenn Ihre Funktion nicht glatt ist (oder durch Polynomfunktionen nicht gut approximiert wird).
  2. Während die Genauigkeitsreihenfolge der spärlichen Gitterquadratur einem Tensorproduktgitter äquivalent sein kann, kann die relative Genauigkeit viel schlechter sein. Dies liegt daran, dass die Konstante vor der Genauigkeitsreihenfolge des dünnen Gitters sehr groß sein kann.
  3. Sparsame Gitter eignen sich gut für relativ kleine Dimensionen. Aber es gibt eine Dimension, nach der Sie wahrscheinlich besser dran sind, wenn Sie eine andere Methode verwenden (wie Monte Carlo oder seine Varianten).

Für weitere Informationen zu dünnen Gittern empfehle ich Burkardts dünne Gitter in hohen Dimensionen . Wenn Sie an Code zum Generieren von spärlichen Gittern interessiert sind, sollten Sie diese Matlab-Dateien berücksichtigen .

Paul
quelle