Integrali approssimativi con simulazione Monte Carlo in R


12

Come approssimo il seguente integrale usando la simulazione MC?

1111|xy|dxdy

Grazie!

Modifica (alcuni contesti): sto cercando di imparare a usare la simulazione per approssimare gli integrali e sto facendo pratica quando ho incontrato alcune difficoltà.

Modifica 2 + 3 : in qualche modo mi sono confuso e ho pensato di dover dividere l'integrale in parti separate. Quindi, in realtà l'ho capito:

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))

2
Sei sulla strada giusta! La risposta che dai è molto vicina all'essere corretta. Ti manca una piccola parte. ( Suggerimento : qual è il pdf di una variabile casuale )? U(1,1)
cardinale il

2
Sono 0,5. Quindi devo moltiplicare per due 2 per dare: 'mean (4 * abs (xy))'. L'ho finalmente capito?
mio nome

3
(+1) ! :) Potrebbe essere necessario attendere alcune (8?) Ore, ma dovresti considerare di tornare e inserire la modifica in una risposta in modo che altri utenti (come me) possano votarla. Benvenuti nel sito! Spero di vederti continuare a partecipare qui. Saluti. :)
cardinale il

1
Un punto da aggiungere: trovo che i massimi siano estremamente utili per la matematica simbolica. Se dovessi fare calcoli analitici da solo, avrei lo stesso problema di @EpiGrad. Ma in maxima, potresti fare integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);e ottenere la risposta 8/3.
Karl,

2
Per la R interessata, sebbene non altrettanto elegante con il codice massimo pubblicato da Karl, si può fare integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)e ottenere un'approssimazione numerica. Utilizzando il pacchetto cubatureadaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1)) può essere utilizzato. Questo è solo per dare un paio di idee per la valutazione numerica di integrali che potrebbero tornare utili, ad esempio quando si verifica se una simulazione funziona correttamente.
NRH,

Risposte:


1

Solo per riferimento, un integrale di dimensioni ridotte come quello di solito viene eseguito in modo più efficiente tramite quadratura deterministica anziché Monte Carlo. Monte Carlo si presenta a sé stante in circa 4-6 dimensioni. Devo prima impararlo in dimensioni ridotte, ovviamente ...


2
Immagino sia per questo che questa domanda è taggata a casa :-).
whuber

0

Puoi farlo in Excel con Tukhi .

accedere

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

e premi il pulsante Esegui.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.