CALCOLO SCIENTIFICO

Obiettivi formativi

Obiettivi generali: acquisire le competenze di base per il trattamento numerico delle equazioni differenziali ordinarie ed alle derivate parziali legate allo studio di modelli matematici per alcune applicazioni quali traffico, trattamento delle immagini e visione. Obiettivi specifici Conoscenza e comprensione: Gli studenti che abbiano superato l'esame avranno una buona conoscenza di base dei metodi numerici trattati sia dal punto di vista teorico che della loro implementazione e saranno capaci di capire come strutturare gli algoritmi di base per la simulazione dei modelli matematici differenziali. Applicare conoscenza e comprensione: al temine del corso lo studente sarà in grado di fare delle simulazioni su problemi differenziali stazionari ed evolutivi ottenendo risultati quantitativi per i problemi trattati. Sarà anche capace di progettare e implementare codici che interagiscano in modo appropriato con un potenziale utente attraverso la grafica. Capacità critiche e di giudizio: lo studente avrà le basi teoriche per analizzare gli algoritmi matematici trattati dal punto di vista della efficienza computazionale, la stabilità e la accuratezza. Da una parte, sarà in grado di applicare le competenze acquisite nei corsi di Algebra lineare, Analisi Matematca per analizzare metodi numerici elementari e da l’altra potrà risolvere numericamente problemi proposti in vari ambiti applicativi. Capacità comunicative: capacità di esporre e motivare la risoluzione proposta per alcuni problemi scelti in classe, in sessioni di esercitazioni in aula/laboratorio ed nella prova orale prevista alla fine del corso. Capacità di apprendimento: le conoscenze acquisite permetteranno uno studio, individuale o guidato, in un corso avanzato di analisi numerica per problemi differenziali, relativo ad aspetti più specialistici che richiedono ulteriori conoscenze matematiche. Inoltre lo studente avrà familiarità con diversi elementi informatici come il linguaggio di programmazione, le librerie, i compilatori, i diversi software disponibili in rete che offrono un ambiente di sviluppo integrato sotto diversi sistemi operativi. Queste abilità gli permetteranno sicuramente di imparare con più facilità l’utilizzo di altri software di interesse per il calcolo scientifico e il mondo del lavoro.

Canale 1
DAVIDE TORLO Scheda docente

Programmi - Frequenza - Esami

Programma
Il corso introduce le equazioni alle derivate parziali (PDE) e ad alcuni metodi numerici per approssimare le loro soluzioni. Il corso è suddiviso in: - ripasso di ODE [2h]; - introduzione alle PDE [6h]; - metodi alle differenze finite [8h = 4h class + 4h lab]; - metodi agli elementi finiti [22h = 14h classes + 8h lab]; - metodi ai volumi finiti [10h = 8h classes + 2h lab]. In dettaglio, introdurremo le PDE con alcuni esempi da vari problemi fisici, il concetto di derivata debole e gli spazi di Sobolev. Per alcune classi di PDE verificheremo l'esistenza, l'unicità e/o la regolarità delle PDE (equazione del trasporto, equazione di Poisson, equazione del calore, problema di Stokes per fluidi incomprimibili, leggi di conservazione, equazioni di Burgers, equazioni di Eulero per la fluidodinamica). Vedremo diversi tipi di discretizzazione delle PDE a partire dalle differenze finite (FD). Definiremo la discretizzazione a differenze finite, la consistenza della discretizzazione, l'accuratezza e l'applicheremo a problemi 1D, 2D, tempo indipendenti e tempo dipendenti. Vedremo come implementare e risolvere in Python questi problemi definendo delle strutture matriciali sparse. Studieremo la stabilità di questi metodi e deriveremo le condizioni di CFL. In seguito studieremo i metodi agli elementi finiti (FEM) partendo dalla definizione degli spazi di approssimazione e le loro proprietà, le quadrature ed alcune stime a priori per alcuni problemi. Studieremo la convergenza dei metodi per problemi lineari coercivi e per problemi lineare in formulazioni di punti di sella. Inoltre, vedremo l'insorgenza di instabilità per problemi dominati dall'avvezione e alcune tecniche di stabilizzazione. Implementeremo gli elementi finiti per dei problemi 1D e 2D. Useremo anche la libreria FEniCS per problemi con geometrie più complicate. Per ultimo studieremo il metodo dei volumi finiti per leggi di conservazione, introducendo la discretizzazione del metodo, il concetto di consistenza per i flussi numerici. Studieremo la stabilità del metodo e vedremo diversi tipi di ricostruzioni e flussi numerici. Infine implementeremo il metodo su problemi nonlineari.
Prerequisiti
* Concetti basilari di analisi 2 (derivate e integrali in due dimensioni) e algebra lineare * Teorie delle equazioni alle derivate ordinarie (ODEs) e alcuni metodi numerici per le ODE * Conoscenza basilare di python
Testi di riferimento
Le note del corso saranno pubblicate durante lo stesso alla pagina https://github.com/accdavlo/calcolo-scientifico . I principali testi adottati sono i seguenti. * Evans, Lawrence C. Partial differential equations. Vol. 19. American Mathematical Society, 2010. [Introduzione alle PDE] * LeVeque, Randall J. Finite difference methods for ordinary and partial differential equations: steady-state and time-dependent problems. Society for Industrial and Applied Mathematics, 2007. [Metodi alle differenze finite] * Quarteroni, Alfio, and Alberto Valli. Numerical approximation of partial differential equations. Vol. 23. Springer Science & Business Media, 2008. [Metodi agli elementi finiti] * LeVeque, Randall J. Finite volume methods for hyperbolic problems. Vol. 31. Cambridge university press, 2002. [Metodi ai volumi finiti] * Langtangen, Hans Petter, and Anders Logg. Solving PDEs in python: the FEniCS tutorial I. Springer Nature, 2017. [Manuale per usare FEniCS]
Frequenza
Non c'è obbligo di frequenza, ma la frequenza è caldamente suggerita per favorire il dialogo con il docente e la partecipazione durante le lezioni teoriche e con gli altri studenti durante le sessioni pratiche.
Modalità di esame
L'esame consiste in un progetto e un esame orale. Il voto è pesato al 50% sul progetto e al 50% sull'esame orale. I progetti possono essere sviluppati in gruppi di al massimo 3 persone e devono essere presentati da tutti i partecipanti nella stessa data. Nei progetti bisognerà sviluppare ed analizzare un metodo numerico per un problema differenziale. Il progetto si concluderà con un documento di al massimo 5 pagine e una presentazione in cui tutti i partecipanti illustreranno lo sviluppo del progetto. Il progetto vuole valutare la capacità dello studente nello sviluppare codice per la soluzione numerica di PDE, usando le conoscenze apprese in classe ed applicandole a nuovi problemi. L'esame orale può essere fatto dopo la presentazione del progetto e valuterà la conoscenza dello studente degli argomenti teorici presentati in classe e nella sua capacità critica di scegliere il miglior abbinamento tra problema e metodo numerico.
Modalità di erogazione
Il corso prevede due tipologie di lezioni: lezioni teoriche frontali e lezioni di laboratorio. * Nelle lezioni frontali verranno verranno introdotti alcuni problemi alle derivate parziali (PDE), spiegata la teoria dei metodi per PDE, la loro discretizzazione e analisi. * Nelle lezioni di laboratorio gli studenti implementeranno sul proprio laptop i metodi visti a lezione e li testeranno su alcuni problemi. I codici saranno sviluppati in python.
  • Codice insegnamento10603357
  • Anno accademico2025/2026
  • CorsoScienze matematiche per l’intelligenza artificiale
  • CurriculumCurriculum unico
  • Anno3º anno
  • Semestre2º semestre
  • SSDMAT/08
  • CFU6