lezioni unimi a. a. 2008/2009: metodi monte carlo in c++
venerdì
05/12/08
[16 - 19]
argomenti:
  • presentazione del corso;
  • algoritmi di integrazione in una dimensione:
    • formule di newton-cotes (trapezioidale e di simpson);
    • integrazione gaussiana;
    • la routine DGAUSS;
    • utilizzo delle librerie iostream, iomanip, cmath;

riferimenti:

  • slide della lezione (pdf);
  • numerical recipes (sec. 4.1-4.5);
  • wikipedia (html);
  • cernlib (html);
  • dgauss (cpp);

sottofondo:

  • mouse on mars - rost pocks (2003) (html);
martedì
09/12/08
[16 - 19]
argomenti:
  • generatori di numeri casuali;
  • generatori di numeri pseudocasuali;
  • propagazione dell'errore sulla somma di due misure: confronto tra tecniche monte carlo e somma in quadratura;

riferimenti:

  • slide della lezione (pdf);
  • a million random digits (html);
  • numerical recipes (sec. 7.1);
  • wikipedia: random generator (html);
  • wikipedia: LCG (html);
  • cppreference (html);

sottofondo:

  • air - moon safari (1998) (html);
mercoledì
10/12/08
[16 - 19]
argomenti:
  • tecniche monte carlo per l'integrazione in più dimensioni;
  • calcolo del centro di massa di un solido non regolare e con densità non uniforme;
  • l'agoritmo vegas;

riferimenti:

  • slide della lezione (pdf);
  • numerical recipes (sec. 7.6-7.9)(html) (pdf);
  • wikipedia: VEGAS algorithm (html);

sottofondo:

  • autechre - incunabula (1997) (html);
giovedì
11/12/08
[17 - 19]
argomenti:
  • esempio 1: generazione di dati artificiali e propagazione degli errori su una funzione dei dati;

riferimenti:

  • slide della lezione (pdf);

sottofondo:

  • daft punk - homework (1993) (html);
lunedì
15/12/08
[16 - 19]
argomenti:
  • esempio 2: integrazione dello spazio delle fasi a n-particelle;

riferimenti:

  • slide della lezione (pdf);

sottofondo:

  • aphex twin - melodies from mars (1995) (html);
giovedì
18/12/08
[16 - 19]
argomenti:
  • esempio 3: energia interna di un gas di boltzmann;

riferimenti:

  • slide della lezione (pdf);
  • java simulations for statistical and thermal physics (html);

sottofondo:

  • cut copy - in ghost colours (2008) (html);
lunedì
12/01/09
[16 - 19]
argomenti:
  • introduzione a ROOT;
  • introduzione a MINUIT;
  • definizione dei progetti personali.

riferimenti:

sottofondo:

  • chemical brothers - push the button (2005) (html);
martedì
13/01/09
[16 - 19]
argomenti:
  • esempio di GUI con ROOT;
  • esempio di GUI con wxWidgets in c++;
  • esempio di GUI con wxWidgets in python;

riferimenti:

  • codice della lezione (pdf);
  • wxWidgets (html);
  • Julian Smart and Kevin Hock - Cross-Platform GUI Programming with wxWidgets(pdf);

strumenti:

  • ROOT GUI Builder (pdf);
  • wxFormBuilder (pdf);
  • wxGlade (pdf);
  • Boa Contructor (pdf);

sottofondo:

  • justice - cross (2008) (html);
mercoledì
15/01/09
[15 - 19]
attività:
  • sviluppo progetto personale.
lunedì
19/01/09
[16 - 19]
attività:
  • sviluppo progetto personale.
martedì
27/01/09
[18]
attività:
  • consegna relazione (via mail con in cc vicini).
mercoledì
28/01/09
[10 - 13]
attività:
  • esame.

criteri di valutazione:

  • relazione [2 punti];
  • chiarezza del codice [2 punti];
  • presentazione e discussione del progetto [2 punti];
  • stabilità ed efficienza del codice [2 punti];
  • completezza strumenti utilizzati [2 punti];
  • difficoltà di progettazione [2 punti].
riferimenti generali
 
  • Bruce Eckel, Thinking in c++ (html);
  • cppreference (html);
  • errori di compilazione (html);
  • Stefan Weinzierl, Introduction to Monte Carlo methods (pdf);
  • Particle Data Group, Monte Carlo techniques (pdf);
  • Kurt Binder, Dieter W. Heermann, Monte Carlo Simulation in Statistical Physics (html);
  • Wikipedia, Monte Carlo method (html).
proposte per il progetto personale
 
integrazione uni-dimensionale:
realizzare un codice che calcoli l'integrale di una funzione di una variabile confrontando algoritmi di integrazione di tipo Newton-Cotes con algoritmi di quadratura gaussiana e che calcoli in modo automatico i pesi e i supporti della quadratura gaussiana data la scelta di una famiglia di polinomi ortogonali.
integrazione multi-dimensionale:
realizzare un codice che calcoli l'integrale di una funzione di più variabili confrontando almeno due diversi algoritmi di integrazione attraverso qualcuno dei test di Genz - si veda come esempio la libreria Cuba (pdf).
RAMBO vs VEGAS:
calcolare il total rate del decadimento del muone confrontando l'integrazione sullo spazio delle fasi fatta con VEGAS e quella di un generatore di eventi tipo RAMBO.