PROGRAMMA DEL CORSO DI ANALISI NUMERICA Classe 3 Laurea in Informatica Proff. D.Conte – A. Cardone, a.a.2009-2010 1. Aritmetica, errori. Introduzione, modelli matematici, sorgenti di errore. Rappresentazione dei numeri in un calcolatore. Errori di arrotondamento e loro propagazione, operazioni di macchina. Precisione di macchina e minimo numero rappresentabile. Cancellazione numerica. Problemi numerici ed algoritmi. Condizionamento di un problema, stabilità numerica di un algoritmo. 2. Richiami sulle matrici. Operazioni tra matrici. Matrici con proprietà particolari. Matrici non singolari. Matrici definite positive: criterio di Sylvester. Autovalori di una matrice. Norme di vettore e di matrice. 3. Richiami sulla complessità di calcolo di algoritmi. Valutazione di polinomi: l’algoritmo di Horner. Complessità di calcolo del metodo di Cramer. 4. Sistemi lineari. Esistenza della soluzione di un sistema lineare. Malcondizionamento di sistemi lineari. Metodi diretti: Risoluzione di sistemi triangolari, metodi di sostituzione in avanti e all’indietro, complessità computazionale. Metodo di eliminazione di Gauss e calcolo della sua complessità computazionale. Pivoting parziale, totale, scaling. Decomposizione di Gauss e fattorizzazione LU di matrice. Fattorizzazione di matrici tridiagonali: metodo di Thomas. Fattorizzazione di matrici simmetriche definite positive: teorema di Cholesky. Metodi iterativi: Metodo di Jacobi. Metodo di Gauss-Seidel. Metodo di sovrarilassamento. Metodi iterativi in forma matriciale, matrice di iterazione. Teoremi di convergenza, costo computazionale. Algoritmi basati su metodi iterativi: stima dell’errore e criteri d’arresto. Cenni sulla memorizzazione di matrici sparse. 5. Approssimazione di dati e di funzioni. Scelta della classe delle funzioni approssimanti. Teorema di Weierstrass. Interpolazione polinomiale: formula di interpolazione di Lagrange, rappresentazione dell’errore. Convergenza: fenomeno di Runge, teoremi di Faber e Bernstein, nodi di Chebychev. Interpolazione con funzioni polinomiali a tratti. Definizione di funzioni splines. Approssimazione nel senso dei minimi quadrati. Caso discreto: retta di regressione, polinomio dei minimi quadrati. Problema dei minimi quadrati nella formulazione generale. Problema del malcondizionamento del sistema delle equazioni normali. Approssimazione di dati e funzioni in ambiente Matlab. 6. Autovalori di matrici. Definizione di autovalori e autovettori di una matrice, polinomio caratteristico. Localizzazione degli autovalori: teorema di Gerschgorin. Metodi iterativi: metodo delle potenze e applicazioni, metodo delle potenze inverse. Similitudine tra matrici, idea dei metodi basati su trasformazioni di similitudine. Fattorizzazione QR di matrice e metodo QR per il calcolo degli autovalori. 7. Calcolo di integrali. Formule di quadratura interpolatorie. Formule di Newton-Cotes: formula dei trapezi e di Cavalieri Simpson, determinazione dei pesi, espressione dell’errore. Formule composite ed espressione dell’errore. Convergenza (dimostrazione per la formula trapezoidale composta). Grado di precisione. Algoritmi iterativi per la quadratura: schemi fissi ed adattivi. 8. Equazioni non lineari, cenni. Cenni sui metodi iterativi: metodo di bisezione, metodo delle secanti, metodo delle tangenti (o Newton-Raphson). 9. Programmazione di algoritmi numerici. Attributi del software matematico: affidabilità, efficienza, robustezza. Documentazione interna ed esterna dei programmi. Sviluppo di elementi di software matematico relativo ai principali argomenti trattati in ambiente MATLAB. Libri di testo consigliati: G.Monegato, Fondamenti di Calcolo Numerico, CLUT A. Quarteroni, F.Saleri, Introduzione al Calcolo Scientifico: esercizi e problemi risolti con Matlab, Springer. Matlab User’s Guide. Copia delle diapositive proiettate durante le lezioni. Modalità d’esame L’esame consiste in: Una prova scritta in Laboratorio, consistente nella risoluzione di problemi numerici in ambiente MATLAB o Octave e domande relative alla descrizione dei metodi numerici utilizzati. Lo studente dovrà portare con sè, su pendrive o CDROM, i codici sviluppati durante le Esercitazioni in Laboratorio e durante lo studio individuale. Si consiglia di leggere gli esempi di domande per la Prova di Laboratorio. 1) 2) Prova orale (entro 4-5 giorni dalla prova scritta) consistente nella discussione dell'elaborato scritto durante la Prova di Laboratorio, con test e correzione dei codici in Laboratorio, ed eventuali domande di teoria. Algoritmi da codificare in linguaggio MAtlab o Octave: Determinazione della precisione di macchina e del minimo numero rappresentabile. Risoluzione di sistemi lineari: Algoritmo di back-substitution, Metodo di eliminazione di Gauss senza pivoting e con pivoting parziale, metodo di Jacobi, metodo di Gauss-Seidel, metodo di sovrarilassamento (SOR). Approssimazione di dati e funzioni: Costruzione di polinomi di interpolazione e di minimi quadrati con i comandi in linea di Matlab. Calcolo di integrali definiti: Algoritmo di quadratura adattivo con controllo globale dell’errore basato sulla formula trapezi composita. Calcolo di autovalori: Metodo delle potenze per l’autovalore di minimo e di massimo modulo. Metodo delle potenze inverse. Metodo QR. Codici da utilizzare (disponibili sulla piattaforma): Risoluzione di sistemi lineari: jacobi.m Algoritmi FACOLTATIVI da codificare in linguaggio MAtlab o Octave: Risoluzione di sistemi lineari: Metodo di sostituzione in avanti, metodo di eliminazione di Gauss con pivoting totale, fattorizzazione LU di matrice, fattorizzazione di Cholesky di una matrice simmetrica definita positiva, fattorizzazione di Thomas di matrice tridiagonale. Metodi iterativi con memorizzazione CRS della matrice sparsa dei coefficienti del sistema lineare. Calcolo di integrali definiti: Algoritmo di quadratura adattivo con controllo locale dell’errore basato sulla formula trapezi composita oppure di Cavalieri-Simpson composita; Algoritmo di quadratura adattivo con controllo globale dell’errore basato sulla formula di Cavalieri-Simpson composita.