Incomprensione della stima di Monte Carlo Pi


9

Sono abbastanza sicuro di capire come funziona l'integrazione Monte Carlo ma non capisco la formulazione di come viene utilizzata per stimare Pi. Seguirò la procedura descritta nella quinta diapositiva di questa presentazione http://homepages.inf.ed.ac.uk/imurray2/teaching/09mlss/slides.pdf

Comprendo i passaggi preliminari. Pi è uguale a 4 volte l'area di un quarto del cerchio unitario. E l'area del quarto in alto a destra del cerchio unitario centrato su (0,0) è equivalente all'integrale della curva che è il quarto in alto a destra del cerchio unitario in e . 0 < y < 10<x<10<y<1

Quello che non capisco è come questo integrale sia

I((x2+y2)<1)P(x,y)dxdy

dove P(x,y) è distribuito uniformemente nel quadrato dell'unità attorno al quarto di cerchio (cioè è sempre uguale a 1 se 0<x<1 e 0<y<1 e 0 altrimenti). Quindi questo significherebbe che I((x2+y2)<1)P(x,y)
è la funzione che è il quadrante in alto a destra del cerchio unitario a 0<x<1 e 0<y<1 ma non capisco come questo sia vero poiché la funzione indicatore può essere solo 1 o 0. Capisco che probabilmente è scritto in questo modo per facilitare il campionamento Monte Carlo (cioè è un'aspettativa, quindi basta campionare da P(x,y) e ottieni la media dei campioni applicati a I((x2+y2)<1)) ma non ha senso intuitivo per me perché quell'integrale rappresenti l'area sotto quella curva.

Qualcuno potrebbe fornire una spiegazione intuitiva di questo. Magari mostra come quell'integrale è stato derivato in modo graduale?

MODIFICARE:

Sono stato in grado di comprendere meglio collegando le aspettative a un'area. Lo spiegherò qui nel caso in cui aiuti qualcuno. Per prima cosa inizia con la relazione Pi con l'area del quadrante in alto a destra del cerchio unitario

π=4×Atr

Quindi posizioniamo il quadrante in alto a destra nel quadrato dell'unità. E sotto una distribuzione uniforme sul quadrato dell'unità, l'area del quadrante del cerchio è proporzionale alla probabilità di ottenere un campione da esso. Ne segue che vale la seguente uguaglianza

P(x2+y2<1)=AtrAsquare

e Asquare=1 così

P(x2+y2<1)=Atr

E sostituendo l'equazione originale

π=4×P(x2+y2<1)

ed è anche vero che che è uguale al doppio integrale originale.P(x2+y2<1)=E[I(x2+y2<1)]

Quindi l'ho capito mettendo in relazione l'area con una probabilità, quindi mettendo in relazione tale probabilità con un'aspettativa equivalente all'integrale. Fammi sapere se ho fatto degli errori.

Risposte:


8

L'area di un cerchio circolare di raggio è uguale a . Significa che un quarto di cerchio ha un'area . Ciò significa che il quadrato con lato il raggio del cerchio come .π l 2 l 2 π / 4 a r e a = l 2lπl2l2π/4area=l2

Ciò significa che il rapporto tra l'area di un quarto di cerchio e l'area del quadrato è . π/4

Un punto è nel quadrato se . ed è nel quarto del cerchio se . 0 < x < 1 , 0 < y < 1 0 < x < 1 , 0 < y < 1 , x 2 + y 2 < 1(x,y)0<x<1,0<y<10<x<1,0<y<1,x2+y2<1

Il tuo integrale è così Questa è esattamente l'area descritta da un quarto di cerchioI((x2+y2)<1)P(x,y)=I((x2+y2)<1)I(0<x<1)I(0<y<1)

inserisci qui la descrizione dell'immagine


Immagino che mi stia solo divertendo a disegnare una connessione tra i termini all'interno dell'integrale e la curva stessa. Se hai tracciato I (x ^ 2 + y ^ 2 <1) I (0 <x <1) (0 <y <1) per valori diversi di xey, non otterrai la curva. Perché?
user1893354

1
{(x,y):(x2+y2<1),(0<x<1),(0<y<1)} sono i punti sul quarto del cerchio. Ti suggerisco di provare a tracciare questo punto
Donbeo,

Sono d'accordo. Ma quando si applica la funzione indicatore I (.), Tutti vengono spinti a 1 o 0.
user1893354

Cosa intendi?
Donbeo,

1
La funzione indicatore in un integrale è solo un altro modo per definire le curve in cui calcolare l'integrale. quarter of circle=1(x2+y2<1)1(0<x<1)1(0<y<1)
Donbeo

4

La spiegazione intuitiva più semplice si basa sulla comprensione che . Pertanto, . Una volta compreso il doppio integal è semplicemente una probabilità, dovrebbe rendere intuitivo senso che si può campionare ed del quadrato unitario e calcolare la percentuale di traccia per cui . I ( x 2 + y 2 < 1 ) d x d y = P ( x 2 + y 2 < 1 ) x y x 2 + y 2 < 1E(I(A))=P(A)I(x2+y2<1)dxdy=P(x2+y2<1)xyx2+y2<1

Forse l'altro pezzo di intuizione che manca alla tua comprensione è la connessione tra area e probabilità. Poiché l'area dell'intera piazza unità è 1 e punti sono distribuiti uniformemente nel quadrato, l'area di qualsiasi regione nel quadrato unità corrisponderebbe alla probabilità che un punto scelto a caso sarebbe all'interno .A A(x,y)AA


Questo è anche il modo in cui lo capisco. Ma ho problemi a collegarlo alla formulazione Pi = 4x (area del quarto di cerchio). Non ha davvero senso intuitivo confrontare le aree con i campioni. Suppongo che la connessione sia che in una distribuzione uniforme, il numero di campioni è proporzionale all'area.
user1893354

1
@ user1893354 Risposta modificata. Fammi sapere se questo aiuta il tuo intuito.
jsk,

0

Sono arrivato a questo CV di surf e vedo che il codice del Monte Carlo è in Ottava. Mi capita di avere una simulazione in R che rende l'idea di derivare il numero come una distribuzione uniforme bivariata nel piano sotto i vincoli degli integrali nel PO molto intuitivo:[ 0 , 1 ]π[0,1]

Dato che il quarto di un cerchio è racchiuso in un quadrato di 1 unità, l'area è . Quindi la generazione di punti distribuiti uniformemente nel quadrato finirà per tappezzare l'intero quadrato e calcolare la frazione che soddisfa equivarrà all'integrazione di poiché stiamo solo selezionando la frazione di punti all'interno del cerchio in relazione al quadrato dell'unità:( x , y ) 1 < π/4(x,y)1((x2+y2)<1)1<(x2+y2)1((x2+y2)<1)1(0<x<1)1(0<y<1)

x <- runif(1e4); y <- runif(1e4)
radius <- sqrt(x^2 + y^2)
# Selecting those values within the circle is obtained with radius[radius < 1]:
(pi = length(radius[radius < 1]) / length(radius)) * 4     =    3.1272

Possiamo tracciare i valori che rientrano nel raggio tra 10.000 estrazioni:

inserisci qui la descrizione dell'immagine

E possiamo, naturalmente, avvicinarci sempre di più selezionando più punti. Con 1 milione di punti otteniamo:

(pi = length(radius[radius < 1]) / length(radius)) * 4 [1] 3.141644

un risultato molto approssimativo. Ecco la trama:

inserisci qui la descrizione dell'immagine

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.