Introduzione Ago di Buffon Sfere Integrali Casualità Previsioni Diffusione Percolazione Catene di Markov Derivati Code

 

Integrale di una funzione

Si è visto come applicare il metodo Monte Carlo per determinare l'area del cerchio.
Per determinare l'area sottesa dal grafico di una funzione \(f:[a,b]\to \mathbb R\) non negativa e l'asse delle ascisse si può procedere in modo analogo:

\(f(x) =\) per \(x\in \big[\) , \(\big]\)


Punti totali: 0 Punti sotto curva: 0 Integrale ≈

Qualche altro esempio interessante:

Si osservi che \(\frac{\displaystyle\int_a^bf(x) dx}{(b-a)} \approx \min_f+(\max_f-\min_f) \frac{M}{N} \), quindi il valore medio della funzione è \[\frac{\text{n° punti sotto la curva}\cdot\max_f+ \text{n°punti sopra la curva}\cdot\min_f}{\text{n° totale punti}},\] media pesata di \(\max_f\) e \(\min_f\) con pesi dati dal numero di punti estratti casualmente in \([a,b]\times[\min_f,\max_f]\) che cadono sotto e che cadono sopra la curva.

Naturalmente si può applicare il metodo al calcolo di integrali di funzioni di più variabili reali.

Possiamo anche applicare il metodo di Monte Carlo al calcolo del valor medio \(\overline f\) di \(f\) per poi determinare \(\displaystyle \int_a^bf(x) dx = \overline f (b-a).\) Il codice Javascript seguente, che può essere eseguito e al quale si possono apportare modifiche, è una descrizione del procedimento. Mentre la function int fornisce solo la stima dell'integrale, la function int_err fornisce anche l'errore dato dallo scarto.


-

Si osservi anche che \(\displaystyle \frac{1}{n} \sum_i f(x_i)(b-a)= \frac{1}{n} \sum_i \frac{f(x_i)}{\frac{1}{b-a}}\) e \(p(x)=\frac{1}{b-a}\) è la densità di probabilità della distribuzione uniforme su \([a,b].\) Ciò suggerisce l'idea che si possano considerare altre più opportune distribuzioni per la scelta casuale dei campioni \(x_i,\) ad esempio in modo che siano più frequenti là dove la funzione da integrare cambia più rapidamente, meno frequenti dove è stazionaria, determinando quindi \(\displaystyle \overline f=\frac{1}{n} \sum_i \frac{f(x_i)}{p(x_i)}\).

Il metodo Monte Carlo adattivo migliora il Monte Carlo classico, che calcola la media dei valori della funzione estraendo campioni uniformi in \([a,b],\) concentrando più campioni dove la funzione varia maggiormente:

  1. divide l’intervallo in sottointervalli,
  2. fa una stima iniziale con pochi punti,
  3. stima la varianza in ciascuno,
  4. assegna più punti dove la varianza è maggiore.
Funziona meglio perché, riducendo la varianza globale, la convergenza è più veloce.

Il codice JavaScript seguente può essere eseguito e modificato per sperimentare il metodo.


-

Naturalmente sono possibili ulteriori miglioramenti.
Il codice JavaScript seguente è una versione ricorsiva in stile adaptive quadrature Monte Carlo che divide l’intervallo solo dove serve, cioè dove l’errore stimato è alto. Più precisamente:
per ogni intervallo \([a,b]\):
  1. stima l’integrale con Monte Carlo
  2. divide in due: \([a,\frac{a+b}{2}]\) e \([\frac{a+b}{2},b]\)
  3. stima separatamente
  4. se le stime sono simili
    • allora accetta
    • altrimenti ricorsione

-

Distanza media tra due punti a caso nell'ipercubo.

Si tratta di un problema che al crescere della dimensione conduce al calcolo di integrali di difficile risoluzione esatta.

Dati due punti indipendenti e uniformi \(P,Q \in [0,1]^d,\) la distanza euclidea è \[ d = \sqrt{\sum_{k=1}^d (x_{P,k} - x_{Q,k})^2}. \] Ad esempio se \(d=1\) la distanza media è \(\mathbb{E}[d] = \int_0^1\int_0^1|x_P-x_Q|dx_Pdx_Q =\frac{1}{3}.\)
Se \(d=2\) allora \[\mathbb{E}[d] = \int_0^1\int_0^1\int_0^1\int_0^1\sqrt{(x_{P,1}-x_{Q_1})^2+(x_{P,2}-x_{Q_2})^2}dx_{P,1}dx_{Q,1}dx_{P,2}dx_{Q,2} =\dots=\]\[=\frac{2+\sqrt2+5\log(1+\sqrt2)}{15}≈ 0.521405.\] Se \(d=3\) il calcolo esatto è ancora più complicato: \(\mathbb{E}[d] = \frac{4 + 17\sqrt2 - 6\sqrt3 + 21\log(1 + \sqrt2) + 42\log(2 + \sqrt3)- 7\pi}{105} ≈0.661707182.\)
È concettualmente molto più semplice stimare \(\mathbb{E}[d]\) con il metodo Monte Carlo.

Dimensione d =
estraendo N = coppie di punti.
Il grafico mostra la stima all'aumentare del numero di coppie di punti considerate.

è la stima della distanza media tra coppie di punti nel cubo -dimensionale


Riferimenti sito/bibliografici: