LABORATORIO DI FISICA COMPUTAZIONALE
cod. 1005897

Anno accademico 2018/19
1° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Fisica sperimentale (FIS/01)
Field
Sperimentale applicativo
Tipologia attività formativa
Caratterizzante
62 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi


Al termine del corso lo studente dovrà aver acquisito conoscenze e capacità di comprendere nel senso di: conoscere le basi operative del calcolo numerico di integrali definiti e della integrazione di equazioni differenziali ordinarie; conoscere le basi delle tecniche alle differenze finite, cogliendone il legame con la soluzione iterativa di sistemi lineari; conoscere il meccanismo di base nella valutazione di espressioni simboliche in Mathematica; conoscere le tecniche basilari del metodo Monte Carlo dinamico.
Dovrà altresì aver acquisito capacità di applicare conoscenza e comprensione nel senso di: saper utilizzare gli strumenti disponibili nell'ambiente di Matlab per il calcolo di integrali definiti e per la integrazioni di equazioni differenziali ordinarie; saper impostare la soluzione alle differenze finite di equazioni differenziali alle derivate parziali di tipo ellittico; sapere impostare un calcolo simbolico nell'ambiente di Mathematica; saper impostare la soluzione di problemi di meccanica statistica per mezzo di simulazioni Monte Carlo, padroneggiando in particolare il calcolo delle autocorrelazioni per una stima corretta degli errori.
Dovrà anche aver acquisito autonomia di giudizio nel senso di: saper comprendere in quali casi il calcolo numerico fornisce gli strumenti a cui appellarsi, non essendo possibile una soluzione analitica di un problema; saper riconoscere in quali casi la soluzione di un problema può essere implementata mediante il calcolo simbolico; saper riconoscere quale algoritmo Monte Carlo sia più adatto alla soluzione di un dato problema.
Lo studente dovrà poi aver acquisito capacità comunicative nel senso di: saper presentare dei risultati ottenuti in modo chiaro, preciso e conciso; nella presentazione di un risultato o di un progetto, saper sia fornire sinteticamente un quadro di insieme sia argomentare analiticamente i passaggi tecnici più delicati; saper argomentare in pubblico, in particolare nel contesto di lavoro di gruppo.
Dovrà infine aver acquisito capacità di apprendimento nel senso di: sapere comprendere le argomentazioni e le procedure di soluzioni numeriche che troverà applicate nel contesto degli studi futuri, ed in particolare saper procedere in modo autonomo nello studio di tecniche di soluzione di problemi alle derivate parziali diversi da quelli affrontati nel corso; essere in grado di riconoscere se tecniche di simulazione Monte Carlo siano necessarie ad affrontare problemi nel contesto dello studio di capitoli più avanzati della Fisica e sapere procedere in modo autonomo nello studio di soluzioni algoritmiche diverse da quelle apprese nel corso.

Prerequisiti


Metodi Matematici della Fisica. Elementi di base di programmazione.

Contenuti dell'insegnamento


Il corso mira ad introdurre nozioni di base per affrontare numericamente problemi di Fisica (ogni argomento sarà presentato nel contesto della soluzione di un problema fisico). Si partirà da una rapida introduzione ai concetti legati alla implementazione di algoritmi e al controllo dell'errore numerico.
Si forniranno le basi sul calcolo di integrali definiti e integrazione di equazioni differenziali ordinarie, con accento sull'utilizzo di strumenti disponibili in Matlab.
Si studieranno gli operatori alle differenze finite, anche nella prospettiva della loro applicazione ad equazioni differenziali alle derivate parziali. Saranno presentate le basi dei metodi di soluzioni iterativi di sistemi lineari.
Si forniranno nozioni di base di calcolo simbolico (nell'ambiente di Mathematica).
Una parte consistente del corso verterà sul metodo Monte Carlo dinamico, presentato nella soluzioni di problemi di meccanica statistica e di meccanica quantistica.

Programma esteso


Ambiente Linux. Linguaggi interpretati e compilati. Rudimenti di programmazione in C/C++.
Algoritmi e loro implementazione in programmi. Un esempio (il calcolo della funzione esponenziale) condurrà a discutere i concetti di precisione numerica e controllo degli errori derivanti.
Nozioni di base su integrazione numerica: le soluzioni disponibili in Matlab.
Nozioni di base su integrazione di equazioni differenziali ordinarie (metodi di Eulero e Runge-Kutta; cenni a formulazioni esplicite vs implicite, equazioni stiff, analisi di stabilità): le soluzioni disponibili in Matlab.
Operatori alle differenze finite. Un problema di elettrostatica fornirà il pretesto peer parlare di PDE ed inversione del Laplaciano via soluzione iterativa di sistemi lineari (Jacobi, Gauss-Seidel, SOR, gradiente coniugato).
Introduzione al calcolo simbolico. La teoria delle perturbazioni della Meccanica quantistica nell'ambiente di Mathematica.
Metodo Monte Carlo dinamico. Processi di Markov e distribuzioni stazionarie, bilancio dettagliato, autocorrelazione e stima dell'errore.
Qualche algoritmo Monte Carlo (Metropolis, Heat bath, Swendsen-Wang, Hybrid Monte Carlo). Applicazioni alla meccanica statistica (sistemi di spin).
Cenni all'integrale funzionale e applicazioni alla Meccanica quantistica (in formulazione euclidea a tempi immaginari).

Bibliografia


Appunti a cura del docente, che saranno resi disponibili su ELLY.
Potrà essere utile un testo di analisi numerica: una scelta naturale (per la sua semplicità e per l'ampio spettro di contenuti) è
- Numerical Recipes, the Art of Scientific Computing
Per i contenuti di metodi Monte Carlo sono consigliate le lezioni
- A. Sokal "Monte Carlo Method in Statiscal Mechanics: Foundations and New Algorithms"
- A. Pellissetto - Lezioni alla scuola di Fisica Teorica di Parma

Metodi didattici


Lezioni frontali ed esercitazioni in aula, con il coinvolgimento degli studenti, che sono invitati ad avere sempre con sè il laptop (se lo hanno). Il lavoro numerico sarà principalmente sviluppato in Matlab, ma verranno introdotte nozioni di base sul linguaggio C/C++, che gli studenti interessati saranno incoraggiati ad usare.
Saranno con regolarità assegnati problemi da svolgere a casa: provare un risultato, portare a compimento un calcolo o scrivere un programma (di dimensioni contenute). Tutto il materiale presentato a lezione sarà reso disponibile sulla piattaforma ELLY (codici, sessioni di lavoro Matlab, note del docente).
Lo stile sarà per lo più informale, sempre centrato sulla soluzione di problemi fisici.

Modalità verifica apprendimento

Esame orale cui si accede dopo aver consegnato una relazione su un progetto. Con ragionevole anticipo sulla sessione di esame verrà assegnato agli studenti un progetto da svolgere. Esso sarà una naturale prosecuzione di lavoro fatto insieme a lezione, con chiare consegne di ciò che lo studente è supposto dover fare: simulazioni numeriche, derivazione di risultati analitici a completamento di calcoli effettuati a lezione, raffronto di risultati attesi e risultati delle simulazioni, calcolo di errori. Lo studente presenterà (con circa 24 ore di anticipo sulla data di esame) una relazione scritta, la cui discussione costituirà la base per l'esame orale.
L'esame orale partirà dalla discussione della relazione presentato dal candidato; oltre ad una chiara esposizione delle tecniche di soluzione utilizzate e delle motivazioni che hanno portato ad esse, potrà essere richiesto che in sede di esame venga riprodotta parte del lavoro che ha generato i dati numerici presentati (ad esempio: mostrare un codice al lavoro, mostrarne la correttezza). Sia la relazione sul progetto (ed i risultati ottenuti) sia la discussione di esame concorreranno al punteggio finale.

Altre informazioni

- - -