SIMULAZIONE NUMERICA
NUMERICAL SIMULATION
Introduzione alla simulazione numerica dei sistemi complessi
Introduction to the numerical simulation of complex systems
A.A. | CFU |
---|---|
2020/2021 | 6 |
Docente | Ricevimento studentesse e studenti | |
---|---|---|
Andrea Viceré | Da concordare con il docente su appuntamento |
Didattica in lingue straniere |
---|
Insegnamento con materiali opzionali in lingua straniera
Inglese
La didattica è svolta interamente in lingua italiana. I materiali di studio e l'esame possono essere in lingua straniera. |
Assegnato al Corso di Studio
Giorno | Orario | Aula |
---|
Giorno | Orario | Aula |
---|
Obiettivi Formativi
Il corso è finalizzato a introdurre l'uso del calcolo numerico per la simulazione di sistemi che si prestino a essere modellizzati mediante equazioni differenziali o a essere descritti mediante processi deterministici o stocastici.
Lo studente acquisirà la conoscenza dei principali metodi per simulare sistemi complessi, sia nel dominio del tempo che più in generale mediante campionamento nello spazio delle possibili configurazioni.
Più nello specifico, il corso mira a promuovere nello studente i seguenti obiettivi formativi specifici:
- conoscere e saper implementare in un programma alcune fra le tecniche di simulazione più classiche;
- saper valutare l'accuratezza e la precisione di una simulazione numerica;
- saper identificare le principali cause di instabilità numerica;
- saper stimare la dipendenza dell'errore dai parametri scelti;
- saper determinare l'ordine di convergenza di un modello;
- saper confrontare i risultati di simulazioni basate su metodi diversi;
- avere una conoscenza di base di alcuni fra i metodi di simulazione più moderni;
- saper scegliere la metodica di simulazione più adatta a un modello matematico;
- saper presentare un esperimento di simulazione organizzando formule, codice e risultati grafici in una presentazione coerente;
- saper programmare in Python utilizzando alcune fra le principali librerie per il calcolo numerico, simbolico e la presentazione grafica.
Programma
1. Introduzione al corso
1.1 Il linguaggio Python: un'introduzione rapida
2. Equazioni differenziali ordinarie
2.1 Un esempio: il moto "fugoide" degli aereomobili
2.2 Trattazione perturbativa, e metodo di Eulero
2.3 Modello completo e ordini di convergenza
2.4 Ordini superiori, metodi Runge-Kutta
3. Equazioni alle derivate parziali: problemi convettivi
3.1 Il moto convettivo in 1D
3.2 Stabilità numerica e condizione CFL
3.3 L'equazione di diffusione in 1D
3.4 Convezione e diffusione: l'equazione di Burgers
3.5 Convezione e leggi di conservazione
3.6 Onde d'urto, schemi d'integrazione, metodi predittore-correttore
4. Equazioni alle derivate parziali: problemi diffusivi
4.0 Passaggio di parametri in Python
4.1 Equazione del calore in 1D: metodi espliciti
4.2 Equazione del calore in 1D: metodi impliciti
4.3 Equazione del calore in 2D: metodi espliciti
4.4 Equazione del calore in 2D: metodi impliciti
4.5 Esercizio: equazione di reazione-diffusione
5. Metodi a elementi finiti
5.1 Volumi finiti
5.2 Elementi finiti (1): l'esempio della trave
5.3 Elementi finiti (2): il doppio pendolo
5.4 Spazio di stato e simulazione nel tempo
6 Sistemi stocastici
6.1 Simulazioni stocastiche, cammini casuali, modelli di Ornstein-Uhlenbeck
6.2 Distribuzioni, metodo Metropolis-Hastings e metodo Monte Carlo ibrido
6.3 Modello di Ising e metodo MH
7. Equazioni alle derivate parziali: problemi ellittici
7.1 Equazione di Laplace e metodo di Jacobi
7.2 Equazione di Poisson
7.3 Metodo di Gauss-Seidel, e metodo del sovrarilassamento
7.4 Metodo del gradiente coniugato
7.5 Metodi "Multigrid"
7.6 Esempio: una palla su un tamburo
8 Simulazioni da dinamiche emergenti
8.1 Automi cellulari
8.2 Gas reticolare di automi cellulari
8.3 Metodi di Boltzmann su reticolo
Eventuali Propedeuticità
Gli studenti debbono aver già acquisito le competenze di analisi matematica, di matematica discreta e di probabilità e statistica.
Debbono inoltre aver acquisito le competenze di base della programmazione, ed essere quindi in grado di scrivere pseudo-codice strutturato.
Risultati di Apprendimento (Descrittori di Dublino)
Conoscenza e capacità di comprensione: lo studente conoscerà i principali metodi di simulazione nel dominio del tempo, incluso il metodo di Eulero e le sue generalizzazioni di ordine superiore, come i metodi Leap-Frog e Runge-Kutta. Sarà in grado di formulare e risolvere numericamente equazioni alle derivate ordinarie e alcune equazioni alle derivate parziali. Sarà capace di simulare sistemi stocastici anche a molti gradi di libertà. Conoscerà le basi del metodo a elementi finiti, delle tecniche di simulazione basate su automi celllulari e dei metodi multiscala.
Conoscenza e capacità di comprensione applicate: lo studente sarà in grado di scegliere il metodo di simulazione adatto a uno specifico problema, formulato in termini matematici, e trasporlo in un algoritmo. Lo studente sarà capace di scrivere un codice di simulazione che partendo da dati assegnati sia in grado di generare e visualizzare dei risultati numerici.
Autonomia di giudizio: lo studente sarà in grado di valutare l'accuratezza dei risultati di una simulazione e sarà capace di stimare la dipendenza dell'errore dai parametri, ad esempio identificando l'ordine di convergenza di un algoritmo per l'integrazione numerica di un'equazione differenziale.
Abilità comunicative: lo studente sarà in grado di presentare i risultati del suo lavoro di simulazione. In particolare sarà capace di scrivere un codice strutturato e comprensibile, e di organizzare i risultati della simulazione in forma grafica in modo da comunicare correttamente e in modo efficace.
Capacità di apprendere: lo studente sarà in grado di approfondire concetti specifici relativi alla simulazione numerica, non presentati durante il corso, sia mediante testi scientifici di natura specialistica, sia mediante la consultazione della letteratura specializzata.
Materiale Didattico
Il materiale didattico predisposto dalla/dal docente in aggiunta ai testi consigliati (come ad esempio diapositive, dispense, esercizi, bibliografia) e le comunicazioni della/del docente specifiche per l'insegnamento sono reperibili all'interno della piattaforma Moodle › blended.uniurb.it
Attività di Supporto
Slides delle lezioni del corso, codice Python di esempio.
Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento
- Modalità didattiche
Lezioni frontali ed esercitazioni in laboratorio.
Realizzazione autonoma di progetti di simulazione, e valutazione su piattaforma Moodle.
- Obblighi
La frequenza del corso non è obbligatoria ma è fortemente raccomandata.
- Testi di studio
Il docente fornirà tramite la piattaforma Moodle il materiale di studio e la bibliografia necessaria.
- Modalità di
accertamento Realizzazione di un progetto di simulazione, concordato con il docente, e definito da una serie di requisiti.
Il progetto deve venire realizzato e consegnato tipicamente nell'arco di due settimane, ovvero dieci giorni lavorativi.
I criteri di valutazione sono il numero di requisiti effettivamente implementati; la qualità dell'implementazione, inclusa la documentazione; la correttezza dell'analisi di validità dei risultati.
Ciascun criterio è valutato secondo una scala che comprende i livelli insufficiente, sufficiente, buono, ottimo.
Successiva prova orale, che parte dalla discussione del progetto ma è volta all'accertamento della competenza sugli altri aspetti del programma, anch'essa valutata secondo gli stessi livelli.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
Informazioni aggiuntive per studentesse e studenti non Frequentanti
- Modalità didattiche
Le stesse degli studenti non frequentanti, grazie alla disponibilità delle lezioni e del software per le esercitazioni su piattaforma Moodle.
- Obblighi
Nessuno
- Testi di studio
Gli stessi degli studenti frequentanti
- Modalità di
accertamento La stessa degli studenti frequentanti
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.
« torna indietro | Ultimo aggiornamento: 07/07/2020 |