REGISTRO DELLE LEZIONI DI
CALCOLO SCIENTIFICO E METODI NUMERICI

CORSI DI LAUREA IN INFORMATICA
6
CFU - A.A. 2016/2017
DOCENTE: PROF. GIUSEPPE RODRIGUEZ
ULTIMO AGGIORNAMENTO:
2. dicembre 2016

1.          Mercoledì 5/10/2016, 15-17.         ore: 2(2)

Introduzione al corso: problemi ben posti. Esempi di problemi mal posti. Numero di condizionamento. Algoritmi: stabilità, complessità computazionale, occupazione di memoria.

E1.          Giovedì 6/10/2016, 9-11.         ore: 2(2)

Laboratorio (G. Rodriguez) Introduzione a Matlab. Costanti e variabili. La funzione diary. Operatori aritmetici e funzioni trascendenti. Editing della linea di comando. Valutazione dei tempi di calcolo (tic e toc). Controllo del formato e dell'output dei calcoli. Variabili e controllo del workspace: whos, clear, save, load. Numeri complessi. Documentazione in linea. Esempi sui numeri di macchina.

E2.          Venerdì 7/10/2016, 9-11.         ore: 2(2)

Laboratorio (G. Rodriguez) Stessi argomenti del precedente.

2.          Venerdì 7/10/2016, 15-17.         ore: 2(4)

Sistemi di numerazione in base qualsiasi. Errori assoluti e relativi. Rappresentazione in virgola fissa e in virgola mobile. Segno, mantissa ed esponente di un numero. Insieme dei numeri di macchina. Condizione di normalizzazione. Funzione di memorizzazione. Underflow e overflow. Troncamento, arrotondamento e relativi errori. Arrotondamento unitario. Epsilon di macchina. Standard IEEE 754. Variabili in singola e doppia precisione. Operazioni di macchina e aritmetica non aberrante. Propagazione degli errori nel prodotto di numeri reali.

3.          Mercoledì 12/10/2016, 15-17.         ore: 2(6)

Propagazione degli errori nella somma di numeri reali. Cancellazione. Richiami di Algebra Lineare. Spazi vettoriali. Sottospazi. Combinazioni lineari e indipendenza lineare. Basi e dimensione. Esempi di spazi vettoriali. Spazi normati. Esempi di norme vettoriali. Norme vettoriali con indice 1, 2 e $ \infty$.

E3.          Giovedì 13/10/2016, 9-11.         ore: 2(4)

Laboratorio (G. Rodriguez) Esercizi sull'aritmetica di macchina. Scrittura di uno script. L'istruzione input. Allocazione di vettori con zeros. Cicli for. Output formattato con fprintf. Esempio sull'effetto della cancellazione. Creazione di vettori. Operazioni vettoriali che agiscono componente per componente. Creazione di una matrice mediante affiancamento di vettori colonna.

E4.          Venerdì 14/10/2016, 9-11.         ore: 2(4)

Laboratorio (G. Rodriguez) Stessi argomenti del precedente.

4.          Venerdì 14/10/2016, 15-17.         ore: 2(8)

Successioni convergenti e successioni di Cauchy. Spazi completi. Norme equivalenti. Matrici. Aggiunta e trasposta. Operazioni su matrici. Prodotto matriciale e potenza di una matrice. Matrice inversa. Determinante.

5.          Mercoledì 19/10/2016, 15-17.         ore: 2(10)

Rango di una matrice. Autovalori e autovettori. Polinomio caratteristico. Spettro e raggio spettrale di una matrice. Matrici difettive. Proprietà degli autovalori. Esercizi su determinanti, autovalori e autovettori. Matrici di forma particolare e loro proprietà: simmetriche e triangolari.

E5.          Giovedì 20/10/2016, 9-11.         ore: 2(6)

Laboratorio (G. Rodriguez) Calcolo dell'epsilon di macchina. Il ciclo while. Definizione estensiva e intensiva di matrici e vettori. L'operatore ``:''. Concatenazione di matrici. Operazioni matriciali. Operazioni componente per componente (dot-operators). Accesso a singoli elementi di un array. Funzioni che generano arrays: ones, zeros, rand, randn, eye, diag, magic. Funzioni statistiche: sum, prod, min, max, mean, std. Esempi: costruzione di una matrice di Vandermonde, verificare se un quadrato è magico.

E6.          Venerdì 21/10/2016, 9-11.         ore: 2(6)

Laboratorio (A. Concas) Stessi argomenti del precedente.

6.          Venerdì 21/10/2016, 15-17.         ore: 2(12)

Matrici di forma particolare e loro proprietà: simmetriche, ortogonali, triangolari, diagonali, a banda, sparse. Norme matriciali. Submoltiplicatività e consistenza. Norma di Frobenius. Norme naturali. Norme matriciali con indice $ \infty$, 1 e 2. Norma-2 per matrici simmetriche. Relazione tra raggio spettrale e norme matriciali. Generalità sui sistemi lineari.

7.          Mercoledì 26/10/2016, 15-17.         ore: 2(14)

Condizionamento di un sistema in presenza di perturbazioni sul termine noto. Numero di condizionamento. Proprietà del numero di condizionamento. Risoluzione di sistemi con struttura particolare. Sistemi diagonali, ortogonali e triangolari inferiori: proprietà, algoritmi e complessità.

E7.          Giovedì 27/10/2016, 9-11.         ore: 2(8)

Laboratorio (G. Rodriguez) Sistemi triangolari inferiori: algoritmo e calcolo della complessità. Implementazione dell'algoritmo in Matlab. Creazione di una function. Parametri di input e output. Il workspace. Le funzioni size, error e cond. Costruzione di un sistema lineare con soluzione assegnata. Controllo dell'errore e del condizionamento del sistema. Sperimentazione numerica al crescere della dimensione del sistema.

E8.          Venerdì 28/10/2016, 9-11.         ore: 2(8)

Laboratorio (G. Rodriguez) Stessi argomenti del precedente.

8.          Venerdì 28/10/2016, 15-17.         ore: 2(16)

Sistemi triangolari superiori: proprietà, algoritmo e complessità. Risoluzione di sistemi triangolari superiori. Il metodo di triangolarizzazione di Gauss. Analisi di un esempio numerico e studio dei primi due passi del metodo.

9.          Mercoledì 2/11/2016, 15-17.         ore: 2(18)

Analisi del passo $ k$ dell'algoritmo di Gauss. Descrizione della struttura dati utilizzata. Mappa strutturale dell'algoritmo di Gauss. Complessità ed ottimizzazione rispetto all'occupazione di memoria. Fattorizzazione LU e sua utilizzazione per la risoluzione di un sistema lineare. Calcolo del determinante e della matrice inversa.

E9.          Giovedì 3/11/2016, 9-11.         ore: 2(10)

Laboratorio (G. Rodriguez) Sistemi triangolari superiori: implementazione in Matlab attraverso una funzione e verifica dell'algoritmo. Metodo di triangolarizzazione di Gauss. Implementazione in Matlab. Verifica del funzionamento. Realizzazione di una function. Costruzione della fattorizzazione LU. Functions che restituiscono più di un parametro in output. Verifica della fattorizzazione ottenuta.

E10.          Venerdì 4/11/2016, 9-11.         ore: 2(10)

Laboratorio (M. Cabras) Stessi argomenti del precedente.

10.          Venerdì 4/11/2016, 15-17.         ore: 2(20)

Riepilogo fattorizzazione LU e calcolo dell'inversa. Breakdown dell'algoritmo in presenza di un pivot nullo. Pivoting parziale e totale. Giustificazione del pivoting sul piano della stabilità numerica. Implementazione del pivoting parziale. Rilevazione della singolarità della matrice. Matrici di scambio e di permutazione: definizione e proprietà. Fattorizzazione $ PA=LU$ e suo uso per risolvere sistemi lineari e calcolare inverse e determinanti. Esempi.

11.          Mercoledì 9/11/2016, 15-17.         ore: 2(22)

Riepilogo metodo di Gauss. Vantaggi del metodo con pivoting parziale. Cenni sul teorema di Wilkinson e la crescita del condizionamento. Matrici a predominanza diagonale stretta. Costruzione pratica della fattorizzazione $ PA=LU$. Introduzione ai metodi iterativi per sistemi lineari. Differenze e vantaggi rispetto ai metodi diretti.

E11.          Giovedì 10/11/2016, 9-11.         ore: 2(12)

Laboratorio (G. Rodriguez) Implementazione in Matlab del metodo di Gauss con pivoting parziale. Accesso e modifica di vettori estratti da una matrice. Creazione di una function e confronto col metodo senza pivoting. Realizzazione di una sperimentazione numerica che, al variare della dimensione, confronti i due metodi con l'algoritmo di Matlab, misurando errori e tempi di calcolo. Istruzioni grafiche di base: figure, plot, semilogy, title, xlabel, legend, grid.

E12.          Venerdì 11/11/2016, 9-11.         ore: 2(12)

Laboratorio (M. Cabras) Stessi argomenti del precedente.

12.          Venerdì 11/11/2016, 15-17.         ore: 2(24)

Metodi iterativi del prim'ordine. Convergenza e consistenza. Metodi iterativi lineari, stazionari, del prim'ordine. Condizione necessaria e sufficiente per la consistenza. Condizione sufficiente e condizione necessaria e sufficiente per la convergenza. Costruzione di metodi iterativi mediante splitting additivo. Il metodo di Jacobi. Formulazione matriciale e in componenti. Parallelizzabilità.

13.          Mercoledì 16/11/2016, 15-17.         ore: 2(26)

Il metodo di Gauss-Seidel. Formulazione matriciale e in componenti. Confronto col metodo di Jacobi. Classi di matrici per cui i metodi convergono. Criteri di arresto. Esempi. Introduzione alla soluzione numerica di equazioni non lineari. Formulazione del problema.

E13.          Giovedì 17/11/2016, 9-11.         ore: 2(14)

Laboratorio (M. Cabras) Sperimentazione numerica sul metodo di Gauss al variare della dimensione. Visualizzazione mediante grafici. Il caso di matrici malcondizionate. Panoramica sulle istruzioni grafiche di Matlab per la costruzione di grafici 2D, 3D e per la visualizzazione di immagini.

E14.          Venerdì 18/11/2016, 9-11.         ore: 2(14)

Laboratorio (G. Rodriguez) Stessi argomenti del precedente.

14.          Venerdì 18/11/2016, 15-17.         ore: 2(28)

Equazioni nonlineari. Convergenza e ordine di un metodo iterativo. Definizione e caratterizzazione di radici semplici e multiple. Richiami sulla serie di Taylor. Il metodo di bisezione: studio dell'algoritmo e della convergenza, implementazione. Il metodo di Newton: costruzione geometrica e analitica. Illustrazione di alcuni risultati numerici.

15.          Mercoledì 23/11/2016, 15-17.         ore: 2(30)

Metodo di Newton: costruzione, studio della convergenza e dell'ordine. Metodi quasi-Newton: corde e secanti. Risultati numerici e confronto tra i metodi. Interpolazione ed approssimazione. Costruzione di una funzione interpolante e condizione che ne assicura l'esistenza ed unicità.

E15.          Giovedì 24/11/2016, 9-11.         ore: 2(16)

Laboratorio (G. Rodriguez) Creazione di un sistema lineare con matrice diagonalmente dominante. Implementazione dei metodi di Jacobi e di Gauss-Seidel in forma matriciale. Test degli algoritmi al variare del fattore di dominanza diagonale. Funzioni che restituiscono più parametri. Controllo del numero dei parametri in input mediante nargin e assegnazione di valori di default.

E16.          Venerdì 25/11/2016, 9-11.         ore: 2(16)

Laboratorio (G. Rodriguez) Stessi argomenti del precedente.

16.          Venerdì 25/11/2016, 15-17.         ore: 2(32)

I teoremi di Taylor e di Weierstrass. Interpolazione polinomiale mediante la base canonica. Matrici di Vandermonde. Instabilità di una rappresentazione. Polinomi caratteristici di Lagrange. Forma di Lagrange per il polinomio interpolante. Esempi.

17.          Mercoledì 30/11/2016, 15-17.         ore: 2(34)

Errore di interpolazione. Influenza sull'errore della regolarità della funzione da interpolare e della distribuzione dei nodi. Errore di interpolazione e nodi di Chebychev. Alcuni risultati sulla convergenza. Seminario su alcune applicazioni dell'analisi numerica.

E17.          Giovedì 1/12/2016, 9-11.         ore: 2(18)

Laboratorio Il metodo di bisezione e di Newton per la soluzione di equazioni nonlineari. Sperimentazione numerica. Puntatori a funzione. Esempi sull'interpolazione.

E18.          Venerdì 2/12/2016, 9-11.         ore: 2(18)

Laboratorio (M. Cabras) Stessi argomenti del precedente.

Totale ore: 34 (lezione), 18 (laboratorio)



Giuseppe Rodriguez
rodriguez@unica.it