Insegnamento METODI COMPUTAZIONALI PER LA FISICA

Corso
Fisica
Codice insegnamento
55A00001
Curriculum
Comune a tutti i curricula
Docente
Matteo Duranti
Docenti
  • Matteo Duranti
Ore
  • 42 ore - Matteo Duranti
CFU
6
Regolamento
Coorte 2019
Erogato
2021/22
Attività
Affine/integrativa
Ambito
Attività formative affini o integrative
Settore
FIS/03
Tipo insegnamento
Opzionale (Optional)
Tipo attività
Attività formativa monodisciplinare
Lingua insegnamento
Italiano
Contenuti
Il corso è incentrato su
• Il sistema Linux, principali comandi e ambiente shell;
• Il linguaggio di programmazione C/C++ e l’utilizzo dei Makefile;
• Tecniche e algoritmi di simulazione di problemi di fisica (generatori di numeri random, MonteCarlo);
• Tecniche e algoritmi di risoluzione di problemi comuni in fisica (integrazione numerica, risoluzione di sistemi di equazioni differenziali);
Testi di riferimento
• W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes: The Art of Scientific Computing, Third Edition (Cambridge University Press, 2007, ISBN-10: 0521880688).
• E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, (Pearson Education, 1994, ISBN: 0201633612, ISBN-13: 9780201633610)
Obiettivi formativi
Obiettivo del corso è l’apprendimento e l’utilizzo delle tecniche e degli algoritmi più comuni della programmazione informatica applicata alla soluzione di problemi tipici della ricerca in fisica. Siccome la conoscenza e la padronanza della programmazione e dell’ambiente informatico è prerequisito fondamentale per tale obiettivo, il corso ha come obiettivo secondario, ma propedeutico a quello principale, l’approfondimento delle competenze informatiche dello studente.

Quindi le conoscenze acquisite saranno:
• ruolo e significato dei vari passaggi della compilazione di un programma C/C++;
• la funzione, la scrittura e l’utilizzo dei Makefile;
• i principali generatori di numeri random;
• la tecnica MonteCarlo e la sua applicazione;
• i principali metodi di integrazione numerica (rettangolo, trapezio, Simpson, Gauss, .);
• i principali metodi di risoluzione di equazioni differenziali (Eulero, punto medio, Runge-Kutta, .);

Le principali abilità saranno:
• compilazione di un programma in C/C++;
• scrittura di un Makefile;
• scrittura di un generatore di numeri random di tipo LCG e utilizzo dei generatori di numeri random;
• scrittura di semplici programmi MonteCarlo;
• scrittura di semplici programmi per l’integrazione di funzioni in maniera numerica;
• scrittura di semplici programmi per la risoluzione di sistemi di equazioni differenziali;
Prerequisiti
Per comprendere e saper applicare le tecniche descritte nell’insegnamento, è necessario aver sostenuto l’esame di Laboratorio di Informatica. Gli esempi affrontati durante il corso e nell’esercitazione finale, inoltre, richiedono la capacità di risolvere semplici problemi di Meccanica e/o Elettromagnetismo e/o Statistica.
Metodi didattici
• Lezioni frontali (teoria): 10 lezioni da 1 ora ciascuna in cui verranno presentati gli argomenti dal punto di vista teorico;
• Prove pratiche al calcolatore: 10 esercitazioni da 3 ore ciascuna in cui risolti esercizi la cui soluzione prevede l’implementazione delle tecniche descritte dal punto di vista teorico, all’interno di semplici programmi;
Altre informazioni
La frequenza è fortemente consigliata
Modalità di verifica dell'apprendimento
L’esame finale si basa su una prova pratica al calcolatore e su una prova orale.

La prova pratica prevede la soluzione, tramite realizzazione di semplici programmi al calcolatore di, massimo 2, esercizi. Gli esercizi sono dei semplici esercizi di Meccanica o Elettromagnetismo o Statistica, la cui risoluzione può essere svolta con una delle tecniche numeri discusse durante il corso.

La prova orale, con durata di, al massimo, 60 minuti, si basa sulla discussione di una relazione scritta su un progetto assegnato alla fine del corso (i.e. scrittura di un software per la risoluzione di diverse problematiche). La discussione del progetto è solo il punto di partenza per la verifica delle conoscenze da acquisire previste per il corso
Programma esteso
Il corso vuole fornire una solida preparazione di base all’utilizzo dell’informatica nell’ambito della ricerca in fisica e scientifica in genere. La preparazione verrà fornita attraverso lo studio e l’implementazione pratica (al calcolatore) di alcuni esempi di algoritmi e soluzioni a problemi, comuni nello svolgimento dell’attività di ricerca in Fisica.
Il programma del corso prevede l’approfondimento di:
• Il sistema Linux, principali comandi e ambiente shell;
• Il linguaggio di programmazione C/C++ e l’utilizzo dei Makefile;
• Tecniche e algoritmi di simulazione di problemi di fisica (random number generators, MonteCarlo);
• Tecniche e algoritmi di risoluzione di problemi comuni in fisica (integrazione numerica, risoluzione di sistemi di equazioni differenziali);
Condividi su