Approximation d'intégrales à l'aide de la simulation de Monte Carlo dans R

12

Comment puis-je approximer l'intégrale suivante à l'aide de la simulation MC?

1111|xy|dxdy

Merci!

Modifier (un certain contexte): j'essaie d'apprendre à utiliser la simulation pour approximer les intégrales et je m'entraîne quand j'ai rencontré des difficultés.

Edit 2 + 3 : D'une certaine manière, je suis devenu confus et j'ai pensé que je devais diviser l'intégrale en parties séparées. Donc, je l'ai compris:

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))
Mon nom
la source
2
Tu es sur la bonne piste! La réponse que vous donnez est très proche d'être correcte. Il vous manque une toute petite partie. ( Indice : quel est le pdf d'une variable aléatoire )? U(1,1)
Cardinal
2
C'est 0,5. J'ai donc besoin de multiplier par deux 2 pour donner: «moyenne (4 * abs (xy))». L'ai-je enfin compris?
Mon nom
3
(+1) Oui ! :) Vous devrez peut-être attendre quelques (8?) Heures, mais vous devriez envisager de revenir et de placer votre modification dans une réponse afin que d'autres utilisateurs (comme moi) puissent la voter. Bienvenue sur le site! J'espère vous voir continuer à participer ici. À votre santé. :)
cardinal
1
Un point à ajouter: je trouve les maxima extrêmement utiles pour les mathématiques symboliques. Si je devais faire des calculs analytiques moi-même, j'aurais le même problème que @EpiGrad. Mais au maximum, vous pourriez faire integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);et obtenir la réponse 8/3.
Karl
2
Pour les R intéressés, bien que pas aussi élégants au code de maxima affiché par Karl, on peut le faire integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)et obtenir une approximation numérique. L'utilisation de l' ensemble cubatureadaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1)) peut être utilisée. Ceci est juste pour donner quelques idées pour l'évaluation numérique des intégrales qui pourraient être utiles, par exemple lors du test si une simulation fonctionne correctement.
NRH

Réponses:

1

Juste pour référence, une intégrale de faible dimension comme celle-ci est généralement plus efficace via une quadrature déterministe au lieu de Monte Carlo. Monte Carlo prend toute sa dimension avec environ 4 à 6 dimensions. Je dois d'abord l'apprendre dans les petites dimensions, bien sûr ...

user873
la source
2
Je suppose que c'est pourquoi cette question est étiquetée devoirs :-).
whuber
0

Vous pouvez le faire dans Excel avec Tukhi .

Entrer

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

et appuyez sur le bouton Exécuter.

Keith A. Lewis
la source