DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di laurea in Informatica Anno accademico 2016/2017 - 3° anno - Curriculum B CALCOLO NUMERICO 6 CFU - 2° semestre Docente titolare dell'insegnamento GIOVANNI RUSSO Email: [email protected] Edificio / Indirizzo: Blocco I, stanza 307 Telefono: +39-095-738-3039 Orario ricevimento: I sem: su appuntamento, II sem: MA 12-13, GI 10-11 OBIETTIVI FORMATIVI Il corso rappresenta una breve introduzione ai metodi numerici per la risoluzione di problemi di base. Indirizzato a studenti del secondo anno di Matematica, ha l'obiettivo di presentare alcune idee fondamentali dell'arte dell'approssimazione numerica, quali accuratezza, robustezza ed efficienza dei metodi, e le tecniche fondamentali per la soluzione di sistemi lineari, interpolazione e approssimazione di funzioni, soluzione di equazioni non lineari e calcolo di integrali. Durante il corso viene fornita un'introduzione all'uso di Python (in particolare la versione Enthought Canopy) per il calcolo numerico. Gli aspetti implementativi dei metodi illustrati in parte durante il corso, ed in parte durante l'attività integrativa pomeridiana (tutorato) legata al corso. PREREQUISITI RICHIESTI Viene richiesra una conoscenza dei concetti elementari di analisi (numeri reali e complessi, limiti, derivate e integrali di funzioni di una variabile, funzioni di più variabili, serie) e di algebra lineare (spazi vettoriali, algebra delle matrici) FREQUENZA LEZIONI L'attività didattica consiste principalmente in lezioni frontali tenute dal docente, durante le quali vengono esposti gli argomenti del corso. Durante le ore di lezione il docente illustrerà implementazioni in Python di alcuni dei metodi esposti a lezione. Il corso è complementato da attività integrative di tutorato, svolte dal Dott. Sebastiano Boscarino La frequenza a lezione è di fondamentale importanza per la comprensione dei concetti di base del corso. Non c'è uno stretto obbligo di frequenza (non viene presa la presenza), ma la frequenza è fortemente consigliata. Si asuspica una attiva partecipazione attiva in classe: un maggiore coinvolgimento da parte degli studenti facilita l'assimilazione della materia. Collaborazioni fra studenti nello studio della materia sono consigliate. Si invitano gli studenti a chiarire eventuali dubbi durante la lezione o durante l'orario di ricevimento. Meglio chiarire i dubbi prima di sostenere l'esame che dopo. CONTENUTI DEL CORSO Introduzione all'uso del calcolatore. Introduzione all'uso del linguaggio Python. Enthought Canopy. Variabili ed istruzioni elementari. Cicli. Strutture dati. Moduli. Uso dei pacchetti matplotlib e numpy. Rappresentazione in virgola mobile. I numeri di macchina. Troncamento ed arrotondamento. Operazioni di macchina. Cancellazione numerica. Ordine di accuratezza. Algebra lineare numerica. Richiami di algebra lineare: vettori, matrici, determinanti, matrice inversa. Norme di vettore e norme di matrice. Norme naturali e loro rappresentazione. Autovalori. Raggio spettrale e sue proprietà. Alcune matrici particolari. Metodi diretti per la risoluzione dei sistemi lineari: sistemi triangolari, metodo di eliminazione di Gauss, pivoting. Fattorizzazioni A=LU e PA=LU. Metodi compatti, fattorizzazione di Choleski e loro implementazione in python. Condizionamento di un sistema lineare. Numeri di condizionamento. Matrici sparse e loro rappresentazione. Autovalori ed autovettori: richiami. Metodi iterativi per la soluzione di sistemi lineari: metodi di Jacobi, metodo di Gauss-Siedel e metodo SOR. Criteri d'arresto. Metodi per punti e per blocchi (cenni). Decomposizione in valori singolari (cenni). Localizzazione degli autovalori: i teoremi di Gershgorin-Hadamard. Calcolo degli autovalori: il metodo delle potenze, ed il metodo delle potenze inverse. Approssimazione di funzioni e dati. Interpolazione polinomiale. Forma di Lagrange. Operatore lineare di interpolazione. Calcolo del polinomi di interpolazione. Formula di Newton delle differenze divise. Il resto dell'interpolazione. Polinomi di Chebyshev: formula ricorsiva, zeri, proprietà di minima norma. Teorema di Weierstrass sulla approssimazione di una funzione continua mediante polinomi (enunciato). Polinomi di Bernstein. Problema della convergenza di una successione di schemi interpolatori. Interpolazione mediante polinomi a tratti. Funzioni spline. Calcolo delle spline cubiche. Metodo dei minimi quadrati e applicazioni. Equazioni normali e loro interpretazione geometrica. Soluzione di equazioni non lineari. Concetti generali. Metodi di bisezione, delle secanti e di Newton. Teoria generale dei metodi iterativi per equazioni non lineari e problemi di punto fisso. Ordine di convergenza. Criteri d'arresto. Metodo di Aitken per metodi di ordine di convergenza uno e due. Formule di quadratura. Integrali pesati. Forma generale di una formula di quadratura. Ordine polinomiale. Formule interpolatorie. Teorema di convergenza. Formule di Newton-Cotes. Formule Gaussiane. Formule composite: trapezi e Simpson. Metodo di Romberg. Quadratura adattiva (cenni). TESTI DI RIFERIMENTO Libri consigliati: Il libro di testo consigliato per il corso di Calcolo Numerico è il seguente: G.Naldi, L.Pareschi, G.Russo, Introduzione al calcolo scientifico, McGraw-Hill, 2001. Ulteriori approfondimenti si trovano sui testi: V.Comincioli, Analisi Numerica: metodi, modelli, applicazioni, McGraw-Hill, Milano, 1990. G. Monegato, Calcolo Numerico, Levrotto e Bella, Torino, 1985. A. Quarteroni, R. Sacco, F. Saleri, Matematica Numerica, Springer Italia, Milano, 1998. PROGRAMMAZIONE DEL CORSO * Argomenti Riferimenti testi 1 * Introduzione all'uso del calcolatore. Introduzione all'uso del linguaggio Python. Enthought Canopy. Variabili ed istruzioni elementari. Cicli. Strutture dati. Moduli. Uso dei pacchetti matplotlib e numpy. Un'ampia documentazione su Python si trova sia on line che su carta. Si consulti il sito: http://www.python.it/doc/libri/ 2 * Rappresentazione in virgola mobile. I numeri di macchina. Troncamento ed arrotondamento. Operazioni di macchina. Cancellazione numerica. Ordine di accuratezza. G.Naldi, L.Pareschi, G.Russo, Introduzione al calcolo scientifico, McGraw-Hill, 2001. 3 * Algebra lineare numerica. Richiami di algebra lineare: vettori, matrici, determinanti, matrice inversa. Norme di vettore e norme di matrice. Norme naturali e loro rappresentazione. Autovalori. Raggio spettrale e sue proprietà. Alcune matrici particolari. 4 * Metodi diretti per la risoluzione dei sistemi lineari: sistemi triangolari, metodo di eliminazione di Gauss, pivoting. Fattorizzazioni A=LU e PA=LU. 5 Metodi compatti, fattorizzazione di Choleski e loro implementazione in python. Condizionamento di un sistema lineare. Numeri di condizionamento. Matrici sparse e loro rappresentazione. 6 * Metodi iterativi per la soluzione di sistemi lineari: metodi di Jacobi, metodo di Gauss-Siedel e metodo SOR. Criteri d'arresto. 7 Metodi iterativi per punti e per blocchi (cenni). Decomposizione in valori singolari (cenni). 8 * Autovalori ed autovettori: richiami. Localizzazione degli autovalori: i teoremi di Gershgorin-Hadamard. Calcolo degli autovalori: il metodo delle potenze, ed il metodo delle potenze inverse. 9 * Approssimazione di funzioni e dati. Interpolazione polinomiale. Forma di Lagrange. Operatore lineare di interpolazione. Calcolo del polinomi di interpolazione. Formula di Newton delle differenze divise. 10 * Il resto dell'interpolazione nelle forme di Lagrange e di Newton. 11 Polinomi di Chebyshev: formula ricorsiva, zeri, proprietà di minima norma. 12 * Teorema di Weierstrass sulla approssimazione di una funzione continua mediante polinomi (enunciato). 13 Polinomi di Bernstein. Problema della convergenza di una successione di schemi interpolatori. 14 * Interpolazione mediante polinomi a tratti. Funzioni spline. 15 Calcolo delle spline cubiche. 16 * Metodo dei minimi quadrati e applicazioni. Equazioni normali e loro interpretazione geometrica. 17 * Soluzione di equazioni non lineari. Concetti generali. Metodi di bisezione, delle secanti e di Newton. Teoria generale dei metodi iterativi per equazioni non lineari e problemi di punto fisso. Ordine di convergenza. Criteri d'arresto. 18 Metodo di Aitken per metodi di ordine di convergenza uno e due. 19 * Formule di quadratura. Integrali pesati. Forma generale di una formula di quadratura. Ordine polinomiale. Formule interpolatorie. 20 Teorema di convergenza. Formule di Newton-Cotes. Formule Gaussiane. 21 * Formule composite: trapezi e Simpson. 22 Metodo di Romberg. Quadratura adattiva (cenni). * Conoscenze minime irrinunciabili per il superamento dell'esame. N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame. MATERIALE DIDATTICO La maggior parte degli algoritmi illustrati durante il corso si trova in rete, nella cartella disponibile al seguente link: Esempi di codici Python Esempi di domande o di esercizi Esempi di temi d'esame utilizzati negli anni precedenti si trovano in rete ai seguenti link: Scritti Calcolo Numerico A.A. 2012-14 Scritti Calcolo Numerico A.A. 2014-15 PROVA D'ESAME MODALITÀ D'ESAME L'esame consiste in una prova pratica ed una prova orale. Si può accedere all'esame orale solo dopo il superalmento della prova pratica. La prova pratica consiste nella risoluzione al calcolarore di alcuni esercizi proposti entro un tempo stabilito dal docente e comunque non superiore alle tre ore. Il superamento della prova pratica permette di accedere alla prova orale nella stessa sessione o anche in una sessione successiva, nell'arco di un anno. DATE D'ESAME Le prossime prove d'esame avverranno nelle seguenti date (salvo avviso contrario, la data si riferisce alla prova scritta; le prove orali iniziano di norma il giorno dopo) 12 Settembre 2016: prova orale per chi ha superato la prova scritta/pratica nelle sessioni precedenti. 13 Settembre 2016 29 Settembre 2016 27 Ottobre 2016 (per i fuori corso) 31 Gennaio 2017 21 Febbraio 2017 4 Aprile 2017 (per i fuori corso) 13 Giugno 2017 11 Luglio 2017 12 Settembre 2017 3 Ottobre 2017 5 Dicembre 2017 (per i fuori corso) PROVE IN ITINERE Non sono previste prove in itinere. PROVE DI FINE CORSO Vedi: modalità d'esame ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI Le prove scritte assegnate negli ultimi appelli possono essere trovate ai seguenti indirizzi: https://www.dropbox.com/sh/h720qqrnmx62xu2/AAACD3ltNQDU4Q14grvfpVF5a?dl=0 https://www.dropbox.com/sh/gsjcncqfik0yjge/AABUa4NxEgnHT6gfzsb5Txena?dl=0