Approximation von Integralen mit Monte-Carlo-Simulation in R

12

Wie kann ich das folgende Integral mithilfe der MC-Simulation approximieren?

-11-11|x-y|dxdy

Vielen Dank!

Bearbeiten (in einem bestimmten Kontext): Ich versuche zu lernen, wie man Simulationen verwendet, um Integrale zu approximieren, und übe mich, wenn ich auf Schwierigkeiten stoße.

Edit 2 + 3 : Irgendwie war ich verwirrt und dachte, ich müsse das Integral in separate Teile aufteilen. Also habe ich es tatsächlich herausgefunden:

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))
Mein Name
quelle
2
U(-1,1)
2
Es ist 0,5. Also muss ich mit zwei 2 multiplizieren, um zu ergeben: 'mean (4 * abs (xy))'. Habe ich es endlich verstanden?
Mein Name
3
(+1) Ja ! :) Möglicherweise müssen Sie einige (8?) Stunden warten, aber Sie sollten in Betracht ziehen, zurückzukehren und Ihre Bearbeitung in eine Antwort zu übernehmen, damit andere Benutzer (wie ich) sie positiv bewerten können. Willkommen auf der Seite! Ich hoffe Sie weiterhin hier zu sehen. Prost. :)
Kardinal
1
Ein Punkt ist hinzuzufügen: Ich finde Maxima extrem nützlich für symbolische Mathematik. Wenn ich selbst analytische Berechnungen durchführen müsste, hätte ich das gleiche Problem wie bei @EpiGrad. Aber im Maximum könnten Sie tun integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);und die Antwort 8/3 erhalten.
Karl
2
Für die R-Interessierten, obwohl nicht so elegant bei dem von Karl geposteten Maxima-Code, kann integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)man eine numerische Annäherung machen und erhalten. Mit dem Cubature- Paket adaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1))kann gearbeitet werden. Dies ist nur ein paar Ideen für die numerische Auswertung von Integralen, die nützlich sein könnten, zum Beispiel beim Testen, ob eine Simulation korrekt funktioniert.
NRH

Antworten:

1

Nur als Referenz wird ein solches niedrigdimensionales Integral normalerweise effizienter durch deterministische Quadratur anstelle von Monte Carlo ausgeführt. Monte Carlo kommt in 4 bis 6 Dimensionen zur Geltung. Ich muss es natürlich erst in kleinen Dimensionen lernen ...

user873
quelle
2
Ich denke, deshalb ist diese Frage mit Hausaufgaben markiert :-).
Whuber
0

Sie können es in Excel mit Tukhi tun .

Eingeben

=tukhi.average(abs(2*rand()-1 - (2*rand()-1))) 

und drücken Sie die Run-Taste.

Keith A. Lewis
quelle