Gli studenti impareranno gli aspetti formali e pratici di vari algoritmi comunemente usati per la ricerca di soluzioni numeriche a svariati problemi fisici realistici. Verranno analizzate le proprietà formali degli algoritmi e, tipicamente verranno illustrati almeno due algoritmi risolventi lo stesso problema, permettendo un confronto critico dei loro punti di forza e debolezza. Nel corso, gli algoritmi verranno testati con problemi per cui esiste ed è nota una soluzione analitica esatta, permettendo agli studenti una analisi critica delle qualità e affidabilità dell'algoritmo utilizzato. A conclusione del corso, gli algoritmi verranno applicati ad una selezione di problemi per cui una soluzione esatta non è nota.
Prerequisiti
Conoscenza di base di matematica e fisica, come ottenuta da un tipico corso triennale in entrambe le discipline. Conoscenza di base di almeno un linguaggio di programmazione, con preferenza per C/C++ o Fortran.
Metodi didattici
Il corso viene insegnato in parte alla lavagna e in parte come sessioni di laboratorio. L'obiettivo della parte alla lavagna è di fornire un fondamento di comprensione solido delle proprietà formali degli algoritmi, insieme all'illustrazione degli stessi tramite pseudo-codice. Le lezioni di laboratorio costituiscono parte integrante del corso, poichè forniranno agli studenti ampio spazio per sperimentare e praticare i vari algoritmi. Per questa ragione, verranno messi a disposizione computer utilizzabili dagli studenti, che rimangono comunque di utilizzare i propri computer personali, se così scelgono.
Verifica Apprendimento
A scelta dello studente: - Sottomissione di un progetto che utilizzi gli algoritmi visti durante il corso per la risoluzione di un problema fisico - Esame di conoscenza del programma svolto a lezione
Testi
Note del corso. Kahaner, Moler, Nash, Numerical methods and software, 0-13-627258-4 Karniadakis, Sherwin, Spectral/hp Element methods for CFD, 0-19-510226-6 Corless, Fillion, A graduate Introduction to Numerical Methods, 978-1-4614-8452-3 Trefethen, Approximation theory and approximation practice, 9781611975932 Piessens, de Doncker-Kapenga, Überhuber, Kahaner, QUADPACK, 978-3-540-12553-2 Butcher, Numerical methods for Ordinary differential equations, 9781119121503 Nocedal, Wright, Numerical Optimization, 0-387-98793-2 Gathen, Jürgen, Modern Computer Algebra, 9781139856065 FORM Manual https://github.com/form-dev/form
Contenuti
Il corso studia cinque principali classi di algoritmi: - Interpolazione di una funzione - Differenziazione: numerica e automatica - Integrazione: Gauss-Kronrod e Clenshaw–Curtis - Equazioni differenziali: Runge-Kutta - Metodo Monte-Carlo - Decomposizioni di matrici
Lingua Insegnamento
INGLESE
Altre informazioni
La frequenza non è obbligatoria, ancorché caldamente consigliata.