METODI NUMERICI PER EQUAZIONI DIFFERENZIALI ORDINARIE

Anno accademico 2020/2021 - 1° anno
Docente: Sebastiano BOSCARINO
Crediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 103 di studio individuale, 35 di lezione frontale, 12 di esercitazione
Semestre:

Obiettivi formativi

L'obiettivo del corso è quello di introdurre lo studente alle problematiche computazionali legate alla risoluzione di equazioni differenziali ordinarie e di fornirgli gli strumenti necessari per la
loro risoluzione numerica. In particolare gli studenti vengono esposti alle fondamentali nozioni di consistenza, stabilità e convergenza dei vari metodi numerici presentati durante il corso, nonché a questioni pratiche che riguardano la loro accuratezza ed efficienza. Particolare enfasi viene data allo sviluppo di codici di calcolo nell’utilizzo di software scientifici, con particolare riferimento al software Matlab, consentendo allo studente di avvicinarsi al mondo del Calcolo Scientifico ed alle simulazioni numeriche di modelli matematici.

INDICATORI DI DUBLINO.

1) Conoscenza e capacità di comprensione. Il corso costituisce un primo passo nello studio avanzato di metodi numerici per equzioni differnziali ordinaire e tratta argomenti di grande interesse per le applicazioni. Tale corso, partendo dalle conoscenze di base relative all' analisi matematica, di programmazione e di nozioni di calcolo numerico, completa la preparazione, rafforzando le conoscenze di base e avviando una introduzione alle strutture algoritmiche e alle procedure computazionali utilizzando il software numerico Matlab, come specifico linguaggio di programmazione. L'utilizzo di numerosi libri accanto ad alcune dispense sugli argomenti del corso scritti dal docente si propone di migliorare le capacità di lettura e comprensione dello studente. Verrano presentati alcuni risultati pratici attraverso il software Matlabi durante il corso, mirando a migliorare la capacità di risoluzione applicativa e numerica di problemi e a fornire avanzate competenze computazionali.

2) Capacità di applicare conoscenza e comprensione. L'utilizzo e la conoscenza del software Matlab durante il corso, mira a migliorare la capacità di soluzione di problemi anche applicativi, di migliorare la padronanza di concetti di programmazione e di nozioni di calcolo scientifco, e di favorire capacità di problem solving. Talvolta durante il corso verranno presentate alcune verifiche computazionali di risultati teorici (esempio: accuratezza e stabilità di un metodo numerico), anche al fine di illustrare alcuni teoremi. Inoltre tali risultati permettono allo studente di essere in grado di utilizzare competenze computazionali e informatiche per studiare problematiche matematiche.

3) Autonomia di giudizio: Essendo il corso di natura istituzionale, viene richiesto allo studente il miglioramento delle sue capacità di argomentazione logiche e nell’importanza di riconoscere le ipotesi per il raggiungimento delle tesi. Le varie verifche computazionali proposte e svolte in aula, riviste per conto proprio in seguito dallo studente o discusse con i compagni di corso, sono spesso affrontate utilizzando diversi schemi logici e favorendo così lo sviluppo di capacità critiche nello studente che si abitua a seguire necessariamente non la strada più immediata, e spesso meno efficiente, ma più appropiata dal punto di vista computazionale. Le esercitazioni in aula favoriscono l’abitudine al lavoro di gruppo da affiancare al lavoro individuale. L’ampia letteratura suggerita favorisce l’iniziativa individuale di approfondimenti, primo stadio per il raggiungimento di una autonomia per affrontare nuove problematiche nel campo della matematica applicata.

4) Abilità comunicative. In presenza di un problema reale di carattere industriale o finanziario, rappresentato da situazioni relativamente elementari di interesse applicativo, lo studente, attraverso la sua formazzione matematica e soprattutto la sua capacità di modellizzazione numerica, è portato dapprima a dare conto delle motivazioni del problema da risolvere descrivendolo, a seconda degli ambiti in cui tale problema è nato, e in seguito dare adeguata comunicazione a realizzare l’effettiva soluzione del problema. I vari testi suggeriti per il corso, alcuni in lingua Inglese, abituano lo studente alla conoscenza dei vari termini scientifico del calcolo numerico espressi in lingua inglese e all’uso dell’inglese per comunicazioni scientifiche. L’esame orale o la presntazione di una tesina costringe lo studente a esprimere in modo matematicamente rigoroso i vari argomenti del corso.

5) Capacità di apprendimento. L'apprendimento richiesto per questo corso è un primo passo utile per lo sviluppo di una mentalità flessibile, utile per altri studi nel corso di studi della laurea Magistrale o per inserirsi in diversi ambiti lavorativi. Inoltre la conoscenza del linguaggio Matlab fornisce uno strumento computazionale da poter autonomamente utilizzare come ausilio informatico nei corsi della laurea Magistrale nonché in ambito lavorativo. Inoltre l’estrema flessibilità del software scientifico Matlab porrà lo studente nella condizione di adattarsi rapidamente all’evoluzione degli strumenti informatici e di mantenere adeguate le proprie competenze scientifiche.


Modalità di svolgimento dell'insegnamento

Il corso di Analisi Numerica si svolgerà principalmente attraverso lezioni frontali. La trattazione teorica dei vari argomenti sarà accompagnata da esercitazioni con il calcolatore in cui verranno affrontati problemi di tipo applicativo in modo da consolidare l'apprendimento dei vari argomenti sviluppati in aula. L’implementazione dei vari metodi numerici presentati durante il corso avverrà attraverso l'uso del linguaggio Matlab.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza, potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare i contenuti del corso riportati sotto.


Prerequisiti richiesti

Si assume la conoscenza di nozioni di calcolo differenziale e integrale per funzioni di una o più variabili, numeri complessi, calcolo vettoriale e matriciale, nozioni di programmazione e conoscenza del linguaggio MATLAB, nozioni di calcolo numerico.


Frequenza lezioni

Modulo 1: CFU 6; Ore: 48 (didattica frontale ed esercitazioni);

La frequenza delle lezioni, per quanto non obbligatoria per il superamento dell'esame, è tuttavia fortemente consigliata.


Contenuti del corso


Problemi ai valori iniziali. Richiami di teoria sulle equazioni differenziali ordinarie, EDOs, (esistenza,unicità e dipendenza continua dai dati).


Metodi numerici per l'approssimazione di problemi ai valori iniziali per equazioni differenziali ordinarie. Metodo di Eulero (esplicito ed implicito), metodo di Eulero Modificato, metodo di Heun; metodi a un passo; esempi: metodi basati su sviluppo in serie di Taylor, metodi Runge-Kutta (RK). Convergenza e condizioni sull'ordine. Errore di discretizzazione; ordine di un metodo a un passo; convergenza; teorema di consistenza; metodi Runge-Kutta in generale; formalismo di Butcher; condizioni sull'ordine; metodi impliciti; esistenza della soluzione numerica per metodi Runge-Kutta impliciti. Metodi di collocazione, aspetti implementativi: controllo del passo.

Metodi Multistep, metodi di Adams e BDF, metodi LMM, metodi predictor-corrector, 0-stabilita' e convergenza dei metodi multistep. Stabilità. Problemi dissipativi e stabilità; problemi stiff; A- stabilità; definizioni più generali di stabilità.

Equazioni differenziali algebriche (EDAs). Forme speciali di EDAs. Metodi numerici per la risoluzione di EDAs. Metodi Runge Kutta partizionati ed addititivi, Metodi Runge Kutta espliciti-impliciti e problemi di singola perturbazione.

Problemi ai limiti. Problemi ai limiti teoria ed applicazioni, metodo shooting e multiplo, metodo alle differenze finite.

Durante il corso verranno presentati alcuni Toolbox presenti nel software Matlab per la risoluzione di EDOs.


Testi di riferimento

1) G. Naldi, L. Pareschi, G. Russo, Introduzione al calcolo scientifico, McGraw-Hill, 2001.
Testo semplice ed intuitivo. Capitolo 8 è dedicato ai metodi per la risoluzione di ODE.

2) A. Quarteroni, R. Sacco, F. Saleri: Matematica Numerica, Springer Italia, 3° Edizione.
Testo molto ampio e ricco di esempi. Contiene molto materiale e riporta esempi didattici implementati in matlab.

3)V. Comincioli, Analisi Numerica: metodi, modelli, applicazioni, McGraw-Hill, Milano, 1990.
Classico testo di Analilsi Numerica, molto vasto. Contiene molto materiale. Utile strumento di consultazione per alcuni argomenti (es. differenze finite o introduzione ai metodi variazioniali).

4) U. M. Asher e L. R. Petzol, Computer Methods for Ordinary Differential Equations and Differential_Algebraic Equations, Society for Industrial and Applied Mathematics Philadelphia, PA, USA, 1998. Testo utilizzato per la parte riguardante le equazioni differenziali-algebriche.

5) J. Stoer e R. Bulirsch, Introduction to numerical analysis. Ed. Springer Verlag.

6) Ernst Hairer, Gerhard Wanner, Syvert P. Nørsett, Solving ordinary differential equations. I. Nonstiff problems. Third edition, Springer, 2008.


7) Ernst Hairer, Gerhard Wanner, Solving ordinary differential equations. I. Stiff problems. Third edition, Springer, 2010.



Programmazione del corso

 ArgomentiRiferimenti testi
1Metodi Runge-Kutta per ODEsTesti di riferimento: 1) 2) 3) 4) 5) 6) 7) 
2Metodi di collocazione per ODEsTesti di riferimento: 4) 5) 6) 7) 
3Metodi Multistep per ODEsTesti di riferimento: 1) 2) 3) 4) 5) 6)  
4Equazioni differenziali algebriche (DAEs)Testi di riferimento: 4) 7) 
5Problemi ai limitiTesti di riferimento: 3) 4)  

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L’esame consiste in una prova orale oppure nella preserntazione di una tesina con codice Matlab allegarto su un argomento del corso a scelta dallo studente.

L'esame viene verbalizzato come un esame da 6 crediti.

La verifica dell'apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.


Esempi di domande e/o esercizi frequenti

Teorema di convergenza per il metodo di Eulero esplicito.

Discutere della stabilità dei metodi Runge-Kutta.