• Non ci sono risultati.

Numeri pseudocasuali • Il periodo deve essere il pi`u lungo possibile; • la distribuzione deve essere uniforme in [0, 1] p(x)=costante in [0, 1]; • le correlazioni devono essere trascurabili

N/A
N/A
Protected

Academic year: 2021

Condividi "Numeri pseudocasuali • Il periodo deve essere il pi`u lungo possibile; • la distribuzione deve essere uniforme in [0, 1] p(x)=costante in [0, 1]; • le correlazioni devono essere trascurabili"

Copied!
12
0
0

Testo completo

(1)

Numeri pseudocasuali

• Il periodo deve essere il pi` u lungo possibile;

• la distribuzione deve essere uniforme in [0, 1]

p(x)=costante in [0, 1];

• le correlazioni devono essere trascurabili

D

x

n+1

· x

n

E

D

x

n+1E

hx

n

i = 0;

• distribuzioni uniformi:

– metodi lineari congruenti;

– metodi Fibonacci lagged;

– metodi non lineari, etc

• distribuzioni non uniformi:

– distribuzione gaussiana e metodo di Box- M¨ uller

– distribuzione qualsiasi;

(2)

Metodi lineari congruenti (LCM)

• x

n+1

= (a · x

n

+ b) mod m;

• di solito b = 0;

• a ` e primo;

• m ` e primo, oppure m = 2

n

Problema

overflow per moltiplicazione per a.

Soluzione

m = a · q + r con r < q scrivo x

n

= z · q + w allora

a · x

n

= a · (z · q + w) = a · q · z + a · w

= (a · q + r) · z − r · z + a · w a · x

n

= m · z − r · z + a · w

con r · z < q · z < x

n

< m e a · w < a · q < m

Quindi a · w − r · z ` e minore di m ed il risulato ` e a · x

n

mod m = a · w − r · z(+m) =

a · (x

n

mod m) − r · (x

n

/q) (+m) Esempio:

a = 16807 m = 2147483647 q = 127773 r =

2836

(3)

Metodi Fibonacci lagged

• Simili alla successione di Fibonacci, ma con pi` u termini;

• usano LCM come ”starter” per i primi ter- mini;

• hanno periodo molto lungo e scarse corre- lazioni;

• pi` u successioni indipendenti con la stessa

regola. Occorre una certa attenzione alle

condizioni iniziali;

(4)

Esempio: r250

• x

n

=

P250j=1

a

q

x

n−q

• periodo N ≈ 2

250

• a

q

= 0 escluso che per q = 103, 250 per cui a

q

= 1

• quindi x

n

= x

n−103

+ x

n−250

• in realt` a si usa xor: x

n

= x

n−103

xor x

n−250

• memorizzo gli ultimi 250 termini in uno

stack circolare per non dover spostare ad

ogni passo un intero vettore

(5)

Metodo di Box-M¨ uller

Voglio una distribuzione gaussiana: se x

1

e x

2

hanno distribuzione uniforme p

x

in (0, 1) cerco la distribuzione p

y

di y

1

e y

2

definiti da

y1 = p

−2 ln x1sin(2πx2) y2 = p

−2 ln x1 cos(2πx2)

Quindi

x1 = exp −12(y12 + y22)

e

p

y

(y

1

) p

y

(y

2

) dy

1

dy

2

= p

x

(x

1

) p

x

(x

2

) dx

1

dx

2

= dx

1

dx

2

p

y

(y

1

) p

y

(y

2

) ∂(y

1

, y

2

)

∂(x

1

, x

2

) = 1

∂(y1, y2)

∂(x1, x2) =

−1 x1

−2 ln x1 sin(2πx2) 2π√

−2 ln x1cos(2πx2)

−1 x1

−2 ln x1 cos(2πx2) −2π√

−2 ln x1 sin(2πx2)

∂(y

1

, y

2

)

∂(x

1

, x

2

) = 2π x

1

Percio‘ py(y1) py(y2) = x1 = 1

2πe−(y21+y22)/2 py(y1) = 1

√2πe−y12/2 py(y2) = 1

√2πe−y22/2

(6)

Gaussiana con media e varianza qualsiasi

• voglio una distribuzione di probabilit` a della forma

√ 1

2πσ exp



−(x − µ)

2

/2σ

2

• per ottenere la stessa distribuzione con me- dia µ basta aggiungere µ ai numeri random generati

• per ottenere una varianza σ

2

basta molti- plicare il numero random per σ . Se

p

x

(x) = 1

√ 2π exp



−x

2

/2



allora, definendo y = σ · x ottengo

p

y

(y) = 1

√ 2πσ exp



−y

2

/2σ

2

(7)

Distribuzioni qualsiasi

Se voglio ottenere una distribuzione con pro- babilit` a p(x) arbitraria limitata superiormente.

• suppongo che mi interessi 0 ≤ x ≤ a

• suppongo che p(x) ≤ b ∀x in [0, a]

• scelgo un numero a caso x con distribuzione uniforme nel range [0, a]

• scelgo un secondo numero a caso y con yǫ[0, b]

• se y < p(x) accetto il numero, altrimenti

procedo con altri due numeri

(8)

Applicazioni

Integrazione con numeri pseudocasuali Data f (x) voglio calcolare

Z b

a

f (x) dx

dove so che f (x) ` e compresa tra zero e f

max

.

• genero coppie di numeri che corrispondono a un punto nel rettangolo che ha lati tra a e b e tra zero e f

max

.

• calcolo la percentuale P di punti che cadono sotto la curva y = f (x)

• l’integrale vale P · (b − a) · f

max

(9)

Test di uniformit` a e correlazioni

0 0.5 1

x 0.0496

0.0498 0.05 0.0502 0.0504

frazione

0 0.2 0.4 0.6 0.8 1

xn+1

0 0.2 0.4 0.6 0.8 1

x n

(10)

Problemi Volume di una sfera unitaria

• x

2

+ y

2

+ z

2

≤ 1;

• considero solo un ottante con x > 0, y > 0, z > 0;

• genero una terna di numeri casuali x, y e z;

• guardo se x

2

+ y

2

+ z

2

≤ 1, nel qual caso accetto la terna;

• ripeto per un gran numero di terne;

• alla fine divido le terne accettate per quelle totali;

• moltiplico per 8;

• nota: l’errore ` e O(1/ √ N )

• In N dimensioni la sfera ` e data da x

21

+ · · · + x

2n

≤ 1.

Trovare il volume.

(11)

Moto Browniano

• Prendo x = y = 0 inizialmente;

• noto x al tempo t, al tempo successivo x

` e dato da x

= x + ǫξ

1

e y

= y + ǫξ

2

con ǫ costante e ξ

1

e ξ

2

gaussiane;

• dopo N passi verifico che x

2

+ y

2

∼ Nǫ

2

;

(12)

Teorema del limite centrale

• Considero le variabili ξ

1

. . . ξ

N

;

• guardo come ` e distribuita la media (ξ

1

+ ξ

2

+ · · · + ξ

N

)/N al variare di N ;

• per N grande devo trovare una distribuzione

gaussiana;

Riferimenti

Documenti correlati

sua divisione in due cellule, tempo caratteristico della specie e delle condizioni colturali..

Si aggiunga alla classe ArrayStack (implementa l’interfaccia Stack usando un array) il metodo Stack clone() che restituisce un nuovo stack avente lo stesso contenuto dello stack...

Funzioni membro operator* e inversa sintatticamente corrette ma non seguono le richieste del testo Dopo il ciclo di lettura dal file devi salvare il valore di i ad esempio in

Se  la  Pa  si  è  scostata  dai  valori  normali  (valore  di  riferimento  VR)  i  meccanismi  di  compenso 

[r]

Scrivere una classe Esercizio.java che contiene un metodo notIn che, ricevuta in ingresso una stringa x contenente solamente caratteri alfabetici, stampa a video,

Precisiamo la domanda; prendiamo in un piano perpendicolare alla costola del diedro un sistema cartesiano ortonormale in cui il semiasse positivo delle ascisse `e l’intersezione

Cercare di usare ragionamenti il più possibile strutturali e non solo calcoli