Il primo esercizio propone di generare dei numeri pseudo-causuali distribuiti secondo una distribuzione di landau. Viene quindi chiesto di analizzare test di casualità per i numeri appena generati. Lo svolgimento parte dalla creazione dei generatori pseudo-casuali prng implementato:
- Linear congruent method -xorshiro plus 128
Vengono successivamenti testati i generatori grazie alla libreria dieharder che implementa un numero elevato di test di casualità. Il migliore algoritmo viene quindi utilizzato per generare la Landau attraverso metodo di accept reject.
L'esercizio 3 propone di generare 50000 eventi monte carlo secondo la distribuzione angolare dei bosoni vettori:
Horizontal Rule
Il seguente programma effettua l'integrazione della funzione esponenziale tra 0 e 1. Vengono implementati anche diversi metodi per la riduzione della varianza degli estimatori monte carlo:
- Stratified Sampling
- Important Sampling
- Antithetic variates method
Horizontal Rule
Il programma si avvale dell'uso di tre librerie:
-
Random, genera numeri casuali usando la classe TRandom3 di root che ha un periodo sufficientemente alto per essere considerato un buon generatore di numeri casuali. I metodi implementati permettono di generare numeri numeri casuali in [0,1], numeri stratificati in [0,1] secondo un intervallo oppure numeri numeri distribuiti secondo un esponenziale e 2.5*x^1.5 per l'important sampling.
-
Function, supporta la valutazione delle funzioni di interesse e computa l'integrale secondo monte carlo.
-
Monte_carlo, parla con le librerie Random e Function per avviare la simulazione. I metodi permettono di simulare vari monte carlo con tecniche di riduzione della varianza citati in precedenza.
Il Main è il programma principale per l'analisi che genera i plot di interesse per visualizzare i risultati della simulazione.
Per avviare il programma: './compile.sh' 'bash compile.sh'
L'executable sarà situato in ' ./Monte_Carlo/build/main' e sarà eseguito automaticamente dallo script bash.