Anteprima
Vedrai una selezione di 19 pagine su 88
Laboratorio di calcolo numerico e informatica Pag. 1 Laboratorio di calcolo numerico e informatica Pag. 2
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 6
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 11
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 16
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 21
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 26
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 31
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 36
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 41
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 46
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 51
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 56
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 61
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 66
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 71
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 76
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 81
Anteprima di 19 pagg. su 88.
Scarica il documento per vederlo tutto.
Laboratorio di calcolo numerico e informatica Pag. 86
1 su 88
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

S

∈ N {0}

z(i + 1) := f (z(i)) f

ossia con funzione di mapping allora il generatore è periodico

∈ N

p z(i) = z(i + p)

di periodo e vale . numeri pseudo

Una certa distinzione deve essere fatta tra

random numeri quasi random

e . I primi (PRN) sono numeri

le cui proprietà statistiche sono il più possible vicine a quelle dei

veri numeri random, cioè quelli ottenuti da processi sici intrin-

secamente random (es. i tempi di attesa tra clicks successivi di

un contatore Geiger). Questi numeri mostrano una correlazione

trascurabile. Al contrario i numeri quasi random (QRN) sono

prodotti per fornire una una distribuzione più regolare nello spa-

zio. Questa proprietà li rende molto utili nel caso di simulazioni

Monte Carlo. In questo caso, per una data sequenza, forniscono

una stima più accurata rispetto ai numeri pseudo-random.

4.0.1 Algoritmi di generazione

Esistono diverse classi di generatori di numeri pseudo-casuali, che

si dierenziano per il tipo di algoritmo usato. Nella quasi totalità 0

essi producono una sequenza di numeri interi uniformemente distribuiti tra e un certo valore

0 1

massimo, oppure di numeri reali tra e (questi ultimi si possono sempre ottenere dai primi

semplicemente dividendo per il valore massimo).

Prima di essere usato, un generatore deve essere inizializzato assegnando un opportuno valo-

seme seed

re a un parametro numerico, o gruppo di parametri, che viene chiamato ( ). Ogni volta

che si usa lo stesso seme, si otterrà sempre la stessa identica sequenza. Il periodo di un genera-

tore non può quindi superare il numero dei possibili valori del seme: per esempio un generatore

32 bit

il cui seme è immagazzinato in un'unica variabile a potrà avere al massimo un periodo

32 32 −1

2 2

di (solitamente il valore zero non è consentito e quindi i valori possibili sono in eetti ).

Le principali classi di generatori di uso corrente sono

generatori congruenti lineari LCG, linear congruential generators

• ( ): questa è la prima

classe in ordine di tempo ad essere stata utilizzata, e tuttora la più diusa;

generatori di Fibonacci ritardati lagged Fibonacci

• ( ): sono in grado di generare se-

quenze molto lunghe. Tra questi va segnalato l'algoritmo Mersenne Twister, che ha un

19937 −

2 1

periodo di ;

registri di traslazione a retroazione lineare

• ;

registri di traslazione a retroazione generalizzata

• . 23

4.1. TECNICA DI CONGRUENZA LINEARE (LEHMER, 1951)

4.1 Tecnica di congruenza lineare (Lehmer, 1951)

Uno dei metodi più utilizzati per la generazione di numeri casuali è la Tecnica di congruenza

lineare (Linear Congruential Method). La relazione ricorsiva alla base di tale tecnica è

1

z(i + 1) = (a z(i) + b) mod n

dove

• →

a moltiplicatore;

• →

b incremento;

• →

n modulo;

• →

z(i = 0) valore iniziale (seme).

a, b, n, z mod

sono numeri interi non negativi l'operazione rappresenta il resto della divi-

0

sione. lineare ane moltiplicativo

b> 0 b = 0

Se il generatore è detto , se invece è detto .

La tecnica di congruenza lineare presenta le seguenti caratteristiche

• n )

è periodica di periodo (

• −

0, 1/n, 2/n, ..., (n 1)/n

i numeri generati sono discretizzati (solo valori ) perchè la proba-

z(i + 1) 0.5/n, 0.6/n

bilità che assuma valori come è nulla. ( )

Teorema di Knuth z(i + 1) = (a z(i) + b) mod n

Un RNG denito dalla ricorrenza ha

p n

periodo coincidente con il valore massimo se e solo se

• b n

ed sono primi tra loro;

• −

p n a 1 p

se è un divisore primo di , anche deve essere divisibile per ;

• −

4 n a 1 4

se è un divisore di , allora anche deve risultare divisibile per .

n 1 n

In questo modo la massima lunghezza di è possibile solo se è un numero primo.

congruente

1 Il numero residuo è basato sul concetto di congruenza lineare: un intero è detto essere

A

lineare ad un intero modulo , quando . La congruenza signica che è uguale

≡ ≡

R b A R mod b A R mod b A

alla somma dell'intero ed un multiplo intero del modulo (o base) .

R m b

A = R + mb

residuo

Il numero è detto (resto) ed è il resto positivo ottenuto dividendo l'intero per la base . Per

R A b

esempio se e , allora i tre possibili residui sono . In termini di congruenza

A = 10 b = 3 7, 4, 1

( ) ( ) ( )

≡ · ≡ · ≡ ·

10 7 mod 3 10 = 7 + 1 3 4 mod 3 10 = 4 + 2 3 1 mod 3 10 = 1 + 3 3

24 CAPITOLO 4. STOCASTICA SPERIMENTALE

4.2 Generatori Tausworthe

I generatori Tausworthe sono un tipo di generatori moltiplicativi ricorsivi che producono numeri

random. Ha la forma seguente

x = (A x + A x + ... + A x ) mod 2

n+1 1 n 2 n−1 k n−k+1

∈ {0, ∀

x , A 1} i 0, 1 L

dove . Generano sequenze periodiche di segmenti di lunghezza denita ,

i i

come 2

01110, L =5

L =5

Per trasformare la sequenza di lunghezza in numeri naturali (decimali) si interpretano

come rappresentazione binaria di un naturale.

4.3 Algoritmo di Mersenne Twister

Nel 1997 ci fu un notevole balzo in avanti nella tecnologia legata agli algoritmi di generazione

deterministica dei numeri. La proposta di un nuovo metodo detto Mersenne twister, ad opera

di Makoto Matsumoto e Takuji Nishimura, risolse molti problemi che vi erano stati no ad

allora con i PRNG precedenti.

Le caratteristiche di questo metodo che gli hanno permesso di diventare uno dei più sfrut-

tati sono diverse. Prima fra tutti c'è la peculiarità di avere un periodo a dir poco colossale, di

19937 −

2 1

: tale periodo molto grande non è una casualità, è stato infatti progettato apposita-

3

mente per ovviare ai problemi dovuti a dei periodi brevi. In secondo luogo il Mersenne twister

623

è in grado di produrre punti equamente distribuiti in spazi no a dimensioni (per valori di

32 bit ) ed inoltre è uno dei generatori più veloci. L'algoritmo originale tuttavia non è conside-

rato adatto per applicazioni crittograche, anche se sono state proposte delle sue varianti che

invece sarebbero in grado di lavorare in ambito crittograco.

Se pensiamo di avere una serie di sequenze di numeri pseudo random di lunghezza ssa

k k

, possiamo supporre di sfruttare tali sequenze per individuare dei punti su uno spazio

dimensionale. Nel caso in cui i numeri generati dal PRNG fossero realmente casuali, i punti

trovati sarebbero distribuiti in maniera uniforme su tutto lo spazio. Questo è uno dei tanti

criteri per valutare la bontà di un generatore pseudo casuale. Altri criteri sono un lungo

periodo e la velocità, fattore essenziale per ottenere risultati statisticamente buoni.

Ecienza

• : buoni RNG devono utilizzare una quantità ridotta di risorse (memoria);

Ripetibilità

• : partendo dallo stesso seme, devono essere in grado di riprodurre la stessa

sequenza di numeri casuali;

Portabilità

• : devono essere indipendenti dal contesto hardware software

2 .

0 1 2 3 4

· · · · ·

01110 = 0 2 + 1 2 + 1 2 + 1 2 + 0 2 = 0 + 2 + 4 + 8 + 0 = 14

3 Questo periodo spiega l'origine del nome: è un numero primo di Mersenne e alcune delle costanti dell'al-

goritmo sono anch'esse numeri primi di Mersenne. In matematica un numero primo di Mersenne è un numero

primo esprimibile come con intero positivo primo.

p −

M = 2 1 p

p 25

4.4. GENERATORE MINIMAL STANDARD

4.4 Generatore Minimal Standard

Park and Miller descrissero un certo numero di implementazioni di linguaggio ad alto livello

chiamato generatore di numeri random Minimal Standard. Queste implementazioni sono

basate sulla formula congurente lineare moltiplicativa

z(i + 1) = (a z(i) + b) mod c

a = 16807 b = 0, c =

dove il moltiplicatore attualmente usato è mentre gli altri due valori sono

32 −

2 1

.

4.5 Altre distribuzioni

4.5.1 Distribuzione esponenziale

Supponiamo di voler costruire una successione di numeri pseudocasuali come osservazioni dalla

distribuzione esponenziale, ovvero con funzione di distribuzione

−λ x

F (x) = 1 e

−1

F

Determiniamo : da −λ x

u = F (x) = 1 e

si ricava −λ x

1 u = e −λ x

ln(1 u) = ln(e )

−ln(1 −

x = u)/λ

−1

⇒ −ln(1 −

F (u) = u)/λ

U [0, 1)

Quindi se è una variabile aleatoria uniformemente distribuita in ,

−1 −ln(1 −

X = F (U ) = u)/λ 1/λ

è una variabile aleatoria con distribuzione esponenziale con media . Quindi, data una

[0, 1)

successione di numeri pseudocasuali con distribuzione uniforme in , possiamo ottenere una

successione di numeri pseudocasuali con distribuzione esponenziale.

4.5.2 Algoritmo di Box Muller (gaussiana)

La trasformazione di Box-Muller è un metodo per generare coppie di numeri casuali indipendenti

e distribuiti gaussianamente con media nulla e varianza uno.

y y x x

Consideriamo due variabili casuali e funzioni di due variabili casuali e , queste

1 2 1 2

(0, 1] x

ultime distribuite uniformemente in . Vogliamo determinare due funzioni delle variabili 1

x y y

e che permettano di ottenere variabili e indipendenti tra di loro distribuite in modo

2 1 2

N (0, 1)

gaussiano standard . Si trova che le trasformazioni cercate sono

−2 ln x sen(2 π x )

y = √ 2 1

1 −2

y = ln x cos(2 π x )

2 2 1

y y

Allora e sono variabili aleatorie indipendenti con distribuzione normale di deviazione

1 2

standard unitaria.

26 CAPITOLO 4. STOCASTICA SPERIMENTALE

4.6 Metodo Montecarlo

I Metodi Monte Carlo sono un'ampia classe di metodi computazionali basati sul campionamento

casuale per ottenere risultati numerici.

Il metodo è usato per trarre stime attraverso simulazioni. Si basa su un algoritmo che

genera una serie di numeri tra loro incorrelati, che seguono la distribuzione di probabilità che

si suppone abbia il fenomeno da indagare. L'incorrelazione tra i numeri è assicurata da un test

chi quadrato.

L'algoritmo Monte Carlo è un metodo numerico che viene utilizzato per trovare le soluzioni

di problemi matematici, che possono avere molte variabili e che non possono essere risolti

facilmente, per esempio il calcolo integr

Dettagli
Publisher
A.A. 2015-2016
88 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Totpic di informazioni apprese con la frequenza delle lezioni di Laboratorio di calcolo numerico e informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma Tor Vergata o del prof Berrilli Francesco.