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 .
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 , 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 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 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 .
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