Master in Calcolo Scientifico - Programmi dei corsi

Programmi dei corsi


Corso: Analisi Numerica + Laboratorio

Programma:
Approssimazione di funzioni
Strategie generali di approssimazione. Il polinomio interpolatore nella forma di Lagrange: esistenza ed unicità. Rappresentazione dell'errore di interpolazione. Convergenza del polinomio interpolatore per funzioni analitiche. Strategie di infittimento dei nodi nell'interpolazione: nodi di Chebyshev e approssimazioni composite. Stima dell'errore.

Integrazione numerica
Principi generali delle quadrature numeriche. Le formule di Newton-Cotes chiuse ed aperte. Costruzione delle formule del punto medio, dei trapezi e di Simpson. Risultati di stabilità e stima dell'errore. Formule di Newton-Cotes generalizzate e loro convergenza per funzioni Riemann-integrabili. Quadrature gaussiane: costruzione e proprietà generali.

Schemi alle differenze per Equazioni Differenziali Ordinarie
La filosofia generale dei metodi alle differenze per EDO. Il metodo di Eulero: stabilità, consistenza, convergenza, stabilità assoluta. Metodi espliciti del secondo ordine di tipo Runge-Kutta e loro stabilità. Metodi ad un passo impliciti: Eulero all'indietro e trapezi, studio della consistenza e della stabilità assoluta.

Soluzione numerica delle equazioni e dei sistemi di equazioni non lineari
Condizionamento del problema. Il metodo di bisezione. Il metodo delle secanti. Il metodo di Newton. Il metodo del punto unito. Stabilità degli algoritmi indotti. Convergenza lineare, superlineare, quadratica. Criteri d’arresto. Esempi ed esercizi. Codici in MATLAB.
Soluzione numerica dei sistemi lineari Condizionamento del problema. Metodi algebrici o diretti. Metodo delle riduzioni successive di Gauss. Pivoting. Fattorizzazione A=LU. Fattorizzazione di Cholesky. Metodi iterativi. Metodi di Jacobi e di Gauss-Seidel. Stabilità degli algoritmi. Loro complessità computazionale. Esempi ed esercizi. Codici in MATLAB.

Calcolo degli autovalori e degli autovettori di una matrice
Definizioni di base e nozioni generali. Localizzazione degli autovalori. Condizionamento degli autovalori. Fattorizzazione QR. Cenni sui metodi. Le funzioni del MATLAB. Esempi ed esercizi. Codici in MATLAB.

Bibliografia:
A. Quarteroni, R. Sacco, F. Saleri, "Matematica Numerica", Springer-Verlag, 2000
Bini, Capovani, Menchi, "Metodi Numerici per L'Algebra Lineare", Zanichelli, Bologna



Corso: Calcolo Parallelo

Programma:

  • Introduzione al calcolo parallelo (algoritmi e paradigmi)
  • Il paradigma message passing con MPI: comunicazioni point-to-point, pattern di comunicazione, comunicazioni collettive, modalità di completamento (cenni a: comunicazioni asincrone, I/O parallelo, MPI 3.0)
  • Il paradigma shared memory con OpenMP: direttive multi-threaded, modello di memoria OpenMP, variabili shared e private, decomposizioni di carico (cenni a: tasks e OpenMP 4.0)
  • Misure di performance e load-balancing: definizione di speedup, legge di Amdhal, decomposizione spaziale e funzionale, load-balance, scalabilità di un codice.
  • Programmazione mista OpenMP/MPI.
  • Esercitazioni sulle macchine del CINECA (ambiente parallelo al CINECA, compilazione ed esecuzione di codici paralleli sulle macchine, test di scalabilità).

Prerequisiti: programmazione in Fortran o C



Corso: Equazioni Differenziali

Programma:
Generalità sulle equazioni a derivate parziali. Buona positura e regolarità delle soluzioni. Equazioni del trasporto lineare. Equazione di Laplace, soluzioni fondamentali, funzioni armoniche, funzioni di Green. Equazione del calore, soluzioni fondamentali, principi di massimo parabolici classici. Equazione delle onde, soluzioni di D'Alembert, armoniche sferiche, metodo dell'energia. Introduzione alle soluzioni classiche delle equazioni di Hamilton-Jacobi. Introduzione alle soluzioni discontinue di leggi di conservazioni. Metodi per rappresentare le soluzioni: separazioni di variabili, soluzioni autosimilari, trasformate di Fourier e Laplace, metodi asintotici.

Bibliografia:
Evans, Lawrence C. Partial differential equations. Graduate Studies in Mathematics, 19. American Mathematical Society, Providence, RI, 1998. xviii+662 pp.
Di Benedetto, Emmanuele Partial differential equations. Birkhuser Boston, Inc., Boston, MA, 1995. xiv+416 pp



Corso: Fisica della Combustione Turbolenta

Programma:

  • Importanza della combustione turbolenta nelle applicazioni.
  • Richiami sulle equazioni di trasporto dei fluidi reagenti: equazioni di trasporto; definizione di alcune grandezze chimiche e termodinamiche; legami costitutivi; proprietà molecolari; adimensionalizzazione e numeri caratteristici; comuni semplificazioni.
  • Concetti fondamentali della turbolenza: caratteristiche di un flusso turbolento; concetti di scale, eddies e vortici; macroscala integrale, scale inerziali, scala dissipativa.
  • Termochimica della combustione: calore di reazione; temperatura adiabatica; velocità di reazione; equilibrio chimico; meccanismi di reazione (dettagliati, skeletal, ridotti, globali, infinitamente veloci).
  • Fiamme premiscelate e diffusive: struttura; interazioni turbolenza - combustione; regimi di combustione sul diagramma di Borghi e spettrale.
  • Instabilità di combustione: instabilità intrinseche; instabilità operative (termo-acustiche); scenario attuale sull'importanza del problema, sui metodi di indagine, i sistemi di monitoraggio e di controllo.
  • Esempi pratici sulla fisica delle fiamme turbolente (da simulazioni).


Corso: Fluidodinamica Computazionale

Programma:

Teoria

  1. Introduzione alla fluidodinamica numerica
  2. Leggi di bilancio: forma integrale, divergenza e quasi-lineare; legame costitutivo; equazioni di stato; gruppi adimensionali; dinamica della vorticità e generazione di onde acustiche; turbolenza; soluzione di onde semplici generalizzate; flussi a bassa comprimibilità e limite incomprimibile; equazioni delle acque basse; formulazione problema alle condizioni iniziali e al contorno.
  3. Metodi numerici per l'equazione del trasporto: schemi con viscosità artificiale esplicita ed implicita; schemi a controllo delle oscillazioni; schemi a controllo della dispersione e/o dissipazione.
  4. Metodi numerici per sistemi iperbolici: schemi alle differenze finite; problema di Riemann e schemi ai volumi finiti; schema FCT; schemi TVD; schemi ENO e WENO.
  5. Metodi numerici per flussi incomprimibili: tecniche di proiezione e fractional-step.
  6. Condizioni al contorno non-riflessive: flussi uni-dimensionali, equazione delle acque basse.
  7. Metodi numerici per flussi a bassa comprimibilità: schemi pressure-based e schemi density-based.

Applicazioni

  1. Lid driven cavity
  2. Strato di scorrimento
  3. Strato limite
  4. Propagazione di onde in condotti
  5. Diffrazione di un urto Galleria supersonica
  6. Detonazioni Interazione gas-particelle


Corso: Laboratorio di Visualizzazione

Programma:
Visualizzazione e gestione di dati con i software GNUplot e MATLAB.

GNUplot
- Grafici di curve in R2 e superfici in R3 in forma esplicita e parametrica.
- Grafici di piu` funzioni in simultanea.
- Curve di livello.
- Importazione ed esportazione di dati numerici.

MATLAB
- Creazione, gestione e controllo della finestra grafica.
- Grafici 2D e 3D di funzioni in forma esplicita e parametrica.
- Grafici di piu` funzioni in simultanea.
- Curve di livello.
- Importazione ed esportazione di dati numerici.
- Importazione, visualizzazione ed esportazione di immagini.
- Creazione di filmati in formato AVI.

Bibliografia:
T. William, C. Kelley, gnuplot, An interactive plotting program, 1998.
ftp://ftp.irisa.fr/pub/gnuplot
ftp://ftp.ucc.ie/pub/gnuplot
D. Hanselman B. Littlefield, The student edition of MATLAB version 5, The MathWorks, Inc. Prentice Hall, 1997



Corso: Metodi numerici per il Trattamento delle Immagini

Programma:
Esempi di problemi di analisi di immagini: segmentazione, ricostruzione geometrica di superfici da dati di profondita'. Metodi variazionali ed elementi di Calcolo delle Variazioni. Modelli variazionali di Mumford e Shah, di Blake e Zisserman e loro applicazioni. Funzioni SBV. Metodi di approssimazione numerica: Gamma-convergenza, metodi alle differenze finite. Condizioni per la convergenza degli schemi numerici. Esempi di costruzione di algoritmi in MATLAB e simulazioni al calcolatore.

Bibliografia:
G. Aubert e P. Kornprobst, Mathematical Problems in Image Processing, Applied Mathematical Sciences, Vol. 147, Springer, 2002.
J.M. Morel e S. Solimini, Variational Methods in Image Segmentation (prima parte), Progress in Nonlinear Differential Equations and Their Applications, Vol. 14, Birkhauser, 1995.



Corso: Metodi Numerici per le Equazioni alle Derivate Parziali

Programma:
Scopo del corso è quello di fornire gli strumenti teorici e pratici essenziali per lo studio numerico di problemi alle derivate parziali con particolare riferimento ai metodi alle differenze finite e agli elementi finiti. Gli studenti interessati sono invitati a seguire parallelamente il corso "Equazioni Differenziali".

1. Equazioni iperboliche lineari
Metodo delle caratteristiche e studio del problema di Cauchy per l'equazione del trasporto. Schemi numerici alle differenze finite per l'equazione del trasporto. Correzione up-wind. Condizione CFL di stabilità numerica. Convergenza e ordine di convergenza degli schemi. Metodi numerici per i sistemi lineari iperbolici. Trattamento delle condizioni al bordo.

2. Equazioni ellittiche e paraboliche lineari
Equazione di Laplace. Alcuni richiami della teoria: problema di Dirichlet, problema di Neumann e loro formulazione variazionale. Esistenza e unicità delle soluzioni. Principio di massimo. Schemi di discretizzazione alle differenze finite e agli elementi finiti. Discretizzazione delle condizioni al bordo. Principio di massimo discreto. Metodi efficienti per la risoluzione del sistema lineare corrispondente alla discretizzazione. Equazione del calore. Alcuni richiami della teoria: problema di Cauchy, condizioni al bordo, esistenza e unicità delle soluzioni. Principio di massimo. Schemi di discretizzazione alle differenze finite in tempo e agli elementi finiti in spazio (teta-metodi). Discretizzazione delle condizioni al bordo. Studio della stabilità e della consistenza degli schemi numerici.

3. Cenni ad alcuni modelli nonlineari (secondo il tempo e l'interesse degli studenti).

Bibliografia:
A. Quarteroni - A. Valli, Numerical Approximation of Partial Differential Equations, Springer, 1994.
J.C. Strikwerda, Finite Difference Schemes and Partial Differential Equations, Wadsworth & Brooks/Cole, Pacific Grove, 1989.
A. Quarteroni, Modellistica numerica per problemi differenziali, Springer, 2000.



Corso: Metodi Numerici Probabilistici + Laboratorio

Programma:

  1. Basi probabilistiche e statistiche
  2. Metodi generali per simulazione da distribuzioni univariate o multivariate con piccolo numero di variabili
  3. Metodi di simulazione Monte Carlo (integrazione, riduzione della varianza, importance sampling, MCMC, Bootstrap)
  4. Algoritmi stocastici per l'ottimizzazione (Simulated Annealing)

Nella parte di laboratorio gli studenti apprenderanno come implementare in linguaggio Matlab i principali metodi introdotti.

Bibliografia:
Neal Noah Madras, "Lectures on Monte Carlo Methods", American Mathematical Society, 2002.



Corso: Modellistica Fisica e Numerica della Combustione Turbolenta

Programma:

  • Perchè modellare e introduzione alla LES: definizione delle tecniche DNS, LES, RANS; filtraggio delle equazioni di trasporto nell'approccio LES.
  • Chiusure per la turbolenza: modello di Smagorinsky; modello con equazione dell'energia cinetica di sottogriglia; modello dinamico di Germano.
  • Chiusure per la combustione: Eddy Dissipation Concept; metodi a variabile di progresso, pdf, flamelet.
  • Modellistica numerica: cenni sui metodi numerici per le equazioni di Navier-Stokes; metodi alle differenze finite compatti; trattamenti di contorno.
  • Trattamento di geometrie complesse in metodi alle differenze finite.
  • Esempi di simulazioni di flussi reagenti subsonici e supersonici


Corso: Modelli Matematici per le Serie Temporali

Programma:

  • Sequenze di variabili aleatorie, processi stocastici.
  • Processi stazionari e modelli lineari: modelli auroregresivi e a media mobile.
  • Esempi di calcolo dell'autocorrelazione.
  • La passeggiata casuale. Modelli non stazionari  ARIMA.
  • Analisi spettrale, periodogramma.
  • Processi non stazionari; modelli state-space e filtro di Kalman.
  • Stima del trend e smoothing; medodi parametrici e non parametrici di regressione.
  • Basi ortonormali e trasformata discreta wavelet, analisi multirisoluzione, thresholding.
  • Analisi dei residui; autocorrelazione e test di indipendenza seriale; run test.
  • Applicazioni all'analisi di serie tempoali  con il software R.

Bibliografia:
Ruppert, Wand, Carrol, Semiparametric Regression, Cambridge 2009
Cryer, Chan, Time series analysis with applications in R, Springer 2008
R: A Language and Environment for Statistical Computing, http://www.R-project.org



Corso: Modelli Numerici per il Clima

Programma:

  1. Concetti di geofluidodinamica: adimensionalizzazione delle equazioni, flussi stratificati geostrofici e quasi-geostrofici; instabilità barotropiche e barocline.
  2. Prospettiva storica e sviluppi della geofluidodinamica numerica per il clima. I core dinamici nei modelli atmosferici e oceanografici.
  3. Discretizzazione verticale per flussi stratificati e classificazione degli schemi numerici: coordinate-Z, coordinate-sigma e coordinate isopicne.
  4. Discretizzazione 2D su geometria sferica e classificazione degli schemi numerici: differenze finite, volumi finiti, metodi spettrali. Esempi di implementazione in modelli di cirolazione generale.
  5. Applicazioni alla modellistica del clima. Modello regionale per l'area Euro-Mediterranea (PROTHEUS); modelle di circolazione generale semplificato (Portable University Model of the Atmosphere, PUMA); il controllo idraulico negli stretti e l'esempio di Gibilterra (POM, MITgcm).

Bibliografia:
McWilliams J.C., Fundamentals of Geophysical Fluid Dynamics
Randall D. A., General Circulation Model Development.



Corso: Programmazione Avanzata

Programma:

  • Cos'e' il calcolo ad alte prestazione.
  • Modello di un computer: il sistema di memoria, le pipeline di calcolo e memoria virtuale.
  • Misura delle prestazioni: profiling ed hardware counter.
  • Algoritmi e implementazione.
  • Uso efficente del compilatore.
  • Librerie matematiche: pregi e difetti.
  • Calcolo floating point.
  • Input/Output.
  • Visione generale del problema dell'ottimizzazione.

Dispense del corso

Bibliografia: K. Dowd; High performaces computing. O'Reilly, 2nd edition (1998).



Corso: Programmazione a oggetti in C++

Programma:
Elementi di base del linguaggio c++

Che cosa è la programmazione ad oggetti
- l'incapsulamento
- il polimorfismo
- l'ereditarieta'

Le classi e gli oggetti in c++
- I costruttori e i distruttori
- overloading di operatori
- i template

Analisi di alcuni algoritmi e loro implementazione in c++

Bibliografia: Walter Savitch, Absolute C++, Pearson Addison Wesley



Corso: Sistemi Operativi

Programma:
Il programma di base riguarda l'utilizzo del s.o. linux ed in particolare:

  • Kernel e shell; l'interprete dei comandi: interfaccia CLI e GUI; il sistema X-window;
  • primi comandi (pwd, id, group, who, w); il file /etc/passwd; utilizzo del manuale in linea;
  • la struttura del file system; directory e files; struttura gerarchica delle directory; percorsi assoluti e percorsi relativi; la "home directory"; i permessi di accesso; comandi per esplorare e per muoversi sul file system (ls, file, find, cd, mkdir, rmdir, cp, mv, rm, cat, tail, head, diff, grep, sort, wc, ln, chmod); definizione di alias (comandi alias e unalias);
  • reindirizzamento dell'output; concatenazione di comandi;
  • come localizzare un comando (comandi which e whereis); la variabile d'ambiente PATH; definizione e modifica di variabili d'ambiente; script di login (cenni);
  • alcuni editor di testo (vi, pico, emacs); utilizzo dei servizi di stampa (comandi a2ps, lpr, lpq, lprm);
  • controllo dello spazio disco (comandi du, quota, df); archiviazione e compressione di file e directory (utility zip e tar);
  • programmazione in ambiente linux: editare, compilare, eseguire in modalità interattiva e batch (comandi at, atq, atrm); controllo dei processi e dell'uso delle risorse del sistema (comandi ps, top, kill);
  • gestione di un progetto: l'utility make, un semplice esempio di Makefile;
  • esempi di shell script (cenni).

Saranno messe a disposizione Note delle Lezioni.

Bibliografia:
W. Stallings, Operating Systems, Prentice-Hall. Brian
W. Kernighan & Rob Pike, UNIX , Zanichelli.
Peter P. Silvester, The UNIX System guidebook, Springer.
Daniel A. Tauber, Guida a Linux, McGraw-Hill.
Jack Dent & Tony Gaddis, Guida a Unix con Linux, APOGEO.

Link utili:
KNOPPIX, distribuzione live che si avvia e funziona da CD o DVD
GNU Make Manual