Argomenti trattati a lezione


07.10.10 (mattino)

Presentazione del corso (programma, modalità dell'esame, tutorato ecc.). Testi consigliati: A. Quarteroni,e F. Saleri, Calcolo scientifico - Esercizi e problemi risolti con MATLAB e Octave, Springer-Verlag Italia, Milano, 4a ed., 2008. Software consigliato: Octave - l'alternativa gratuita a MATLAB. Octave è un programma open source di calcolo numerico. (Ci sono anche programmi open source di calcolo simbolico, ad esempio REDUCE per tante piattaforme, in particolare il reduce-windows32-20101007 (9.2 MB).
Esperimento con il calcolatore: (a) moltiplicare 1/10 per 11, (b) togliere 1, (c) ripetere 20 volte i passi (a) e (b) e riflettere sui risultati ottenuti.
Numeri finiti, numeri floating-point: richiami sui numeri reali, rappresentazione decimale di numeri razionali e irrazionali, algoritmi per la conversione della parte intera e della parte frazionaria di un numero decimale in un numero binario, esempi, in particolare esempi di numeri decimali finiti che necessitano infinite cifre binarie.
Function decbin.m per convertire un numero decimale in un numero binario.

07.10.10 (pomeriggio)

Numeri finiti, approssimazione della mantissa per troncamento e arrotondamento, range degli esponenti, memorizzazione dei numeri finiti (segno, esponente e mantissa), IEEE-754 floating-point standard, cardinalità dell'insieme dei numeri finiti, numeri finiti di MATLAB/Octave, più piccolo e più grande numero finito positivo (realmax e realmin in MATLAB/Octave), overflow e underflow, errori di rappresentazione di un numero reale, teorema sulla maggiorazione dell'errore relativo, unità di arrtondamento. Aritmetica floating point: maggiorazione dell'errore relativo di un prodotto o di un quoziente e di una somma o di una differenza di numeri reali in aritmetica floating-point, effetto della cancellazione numerica, (si veda C. Guerrini, pagine 26-27).

08.10.10

Errore di rappresentazione di un numero reale, esempio di 1/10 in doppia precisione, precisione della macchina (eps in Octave), cenno ai vari tipi di errori nel processo computazionale (errori derivanti dalla rappresentazione della realtà fisica attraverso un modello matematico, dall'algoritmo usato, errori di troncamento).
Numeri complessi, piano dei numeri complessi, operazioni aritmetiche con i numeri complessi, vettori nel piano (cenno), complesso coniugato, valore assoluto o modulo di un numero complesso.
Introduzione ad Octave: installazione, personalizzazione dello startup-file octaverc e della finestra di Octave, comando diary per salvare una sessione Octave, alcuni comandi: operazioni aritmetiche, costruzione a : step : b, plot del grafico di una funzione e print per salvarlo in un file pdf, comando edit per aprire l'editor incorporato.
Esercizi consigliati: Quarteroni-Saleri, esercizi 1.1, 1.2; foglio del 14/10/2008, esercizi 1, 2, 4 ed esercitazioni al computer.

14.10.10

Coordinate polari, conversione da coordinate polari a coordinate cartesiane e viceversa, Numeri complessi in forma polare o trigonometrica, interpretazione geometrica della loro moltiplicazione (trasformazioni di similitudine del piano), formule di addizione del seno e del coseno, formula di De Moivre, radici ed esempi, Sviluppo in serie di Taylor della funzione esponenziale e delle funzioni seno e coseno, funzione esponenziale complessa, formula di Eulero. Esercitazione al computer: comandi pwd (print working directory), cd (change directory) e diary per salvare una sessione Octave, calcolo delle radici n-esime di un numero complesso con MATLAB/Octave, calcolo delle radici di un polinomio, comandi discussi in Aula 1 e in Aula 8.

15.10.10

Numeri complessi in Octave, comandi complex, real, imag, conj, abs, angle, arg, compass , funzione esponenziale (complessa) exp. Polinomi in Octave, comandi roots, conv, ciclo for. Definizione di matrice, matrici in MATLAB/Octave, uguaglianza, addizione e sottrazione di matrici, matrice nulla (comando zeros). Esercitazione al computer: salvare e utilizzare l'M-file della funzione vis_floating.m per visualizzare i numeri floating-point, precisione della macchina eps, ciclo while per calcolare eps/2, numero floating-point immediamente precedente a realmax e numero immediamente successivo a realmin. Metodi per definire una funzione (funzione inline, anonymous function con l'ausilio di function handle @, m-file di una funzione). Comandi discussi in Aula 1 e Aula 8.

21.10.10

Moltiplicazione di una matrice per uno scalare, prodotto di matrici, vettore riga o colonna, prodotto scalare di vettori, regole del calcolo con le matrici, esempi numerici, zero-divisori non nulli, cenno ai sistemi di equazioni lineari, sistemi mal condizionati, determinante di una matrice quadrata, sviluppo di Laplace, esempio, regola di Cramer ( Gabriel Cramer, 1704-1752) per risolvere un sistema di equazioni lineari, complessità computazionale dello sviluppo di Laplace, O-grande (simbolo di Landau). Esercitazione al computer: definizione di una funzione attraverso un M-function file, esempio di una funzione p2c.m per convertire coordinate polari in coordinate cartesiane, alcuni comandi Octave (ciclo for, image(0.1*a) di una matrice a caricata con il comando a = load('matrice'), size, setenv, det), si veda la storia dei comandi.

22.10.10

Trasposta e trasposta coniugata (o aggiunta) di una matrice e relativi comandi MATLAB/Octave. Richiami sul calcolo vettoriale: esempio introduttivo (lavoro meccanico in fisica), vettori numerici, norma, prodotto interno o prodotto scalare, proprietà del prodotto scalare, disuguaglianza di Cauchy- Buniakovskii- Schwarz, angolo tra vettori, comando dot per calcolare il prodotto scalare di vettori, comando cross per calcolare il prodotto vettoriale o prodotto esterno di vettori di R3, matrice identità, comando eye, matrice inversa, matrice non singolare, teorema di Binet sul determinante del prodotto di matrici. Esercizi consigliati: foglio del 22/10/2008.

28.10.10

Matrici e determinanti, definizione del determinante con la formula di Leibniz (Gottfried Wilhelm Leibniz), permutazioni, inversioni, segno di una permutazione, comando perms di MATLAB/Octave, costo computazionale dell'algoritmo (funzione leibniz.m) che calcola il determinante secondo la formula di Leibniz, floating point operations per second (flops), central processing unit (CPU), comando cputime di MATLAB/Octave. Proprietà del determinante, cenno alla definizione assiomatica del determinante secondo Weierstrass, determinante di matrice diagonali e di matrici triangolari, calcolo della matrice inversa di una matrice quadrata non singolare con il metodo della matrice dei cofattori (o dei complementi algebrici o aggiunti). Operazioni con le matrici e i vettori in MATLAB/Octave: comandi diag, tril, triu, rand, inv, / (divisione dalla destra), \ (divisione dalla sinistra), si veda anche la storia dei comandi. Esercitazione al computer: foglio del 28/10/2010 e le soluzioni.

29.10.10

Esempi per il calcolo del determinante con il metodo dello sviluppo di Laplace e il calcolo della matrice inversa di una matrice quadrata non singolare con il metodo della matrice dei cofattori. Proprietà delle matrici inverse e delle matrici trasposte, matrici particolari: matrice simmetrica, matrice hermitiana, matrice ortogonale, in particolare matrice di rotazione, matrice di riflessione. Equazioni non lineari, il metodo di bisezione, errore assoluto del metodo, criteri di arresto, implementazione del metodo di bisezione come function di Octave/MATLAB: bi.m (programma grezzo) oppure bisection.m (programma molto più raffinato, però contenente un errore, si veda il progetto 4).

04.11.10

Metodo di bisezione, codice ed esempio, velocità di convergenza, convergenza lineare, ordine di convergenza. Metodo di Newton(-Raphson) o metodo delle tangenti, richiamo sul teorema di Taylor, ordine di convergenza del metodo di Newton, criteri di arresto del metodo di Newton. Iterazioni di punto fisso, condizione sufficiente per l'esistenza e l'unicità del punto fisso e per la convergenza della successione generata dal metodo di iterazione funzionale. Esercitazione al computer: applicazione della funzione bisection.m al calcolo del tasso medio di rendita di un fondo di investimento su più anni (Quarteroni-Saleri, 2.1), si veda il foglio del 04/11/2010.

05.11.10

Algoritmo delle iterazioni di punto fisso, condizioni sufficienti per la convergenza locale (teorema di Ostrowski), critero di arresto, ordine di convergenza, convergenza locale del metodo di Newton, rappresentazione grafica delle iterazioni di punto fisso nei casi di convergenza e divergenza, cenno al metodo delle secanti, al metodo delle secanti o delle corde e al metodo delle corde.

11.11.10

Metodo di Horner (William George Horner, 1786 - 1837) per la valutazione efficiente di un polinomio e della sua derivata in un punto assegnato, algoritmo di divisione sintetica, (horner.m), metodo di Newton-Horner (newtonhorner.m) per il calcolo di tutte le radici di un polinomio, comandi Octave polyval e roots. Approssimazione di funzioni e dati: interpolazione polinomiale di Lagrange, esistenza e unicità del polinomio interpolatore. Esercitazione al computer: confronto del metodo di bisezione (bisection.m) col metodo di Newton ( newton.m), esercizi del foglio del 30/10/08.

12.11.10

Quantificazione dell'errore che si commette sostituendo una funzione con un suo polinomio interpolatore, in particolare nel caso di nodi equidistanti e nel caso dell'interpolazione lineare, fenomeno di Runge (Carl Runge, 1856-1927), interpolazione polinomiale della funzione di Runge usando un numero crescente di nodi equidistanti e rappresentazione grafica dei risultati ottenuti con Octave, comando polyfit, nodi di Chebyshev ( P. L. Cebyshev, 1821-1894) per evitare il fenomeno di Runge.

18.11.10

Stabilità dell'interpolazione polinomiale, costante di Lebesgue ( H. Lebesgue, 1875-1941) come numero di condizionamento del problema dell'interpolazione, crescita esponenziale della costante di Lebesgue nel caso dell'interpolazione di Lagrange su nodi equispaziati, esempio di un'interpolazione polinomiale usando i nodi di Chebyshev e il codice Octave relativo, interpolazione lineare composita e maggiorazione dell'errore, approssimazione con funzioni spline, in particolare la spline cubica interpolatoria naturale e la spline con not-a-knot end conditions, numeri casuali (con distribuzione uniforme o distribuzione di Gauss) per simulare una perturbazione ad un insieme di dati, comandi Octave relativi. Esercitazione al computer: esempio di un'interpolazione polinomiale instabile (Quarteroni-Saleri, Esempio 3.3, pag. 85), si veda il foglio del 18/11/2010.

19.11.10

Richiami sui numeri complessi, interpolazione trigonometrica, trasformata rapida di Fourier (FFT) e comandi Octave relativi. Applicazione: FT-NMR, si veda in particolare The Basics of NMR - Fourier transforms.

25.11.10

Retta dei minimi quadrati o retta di regressione e comandi Octave relativi. Differenziazione numerica: approssimazione delle derivate con differenze finite in avanti, differenze finite all'indietro e differenze finite centrate, discussione dell'ordine di accuratezza. Esercitazione al computer: Calcolo dell'interpolatore trigonometrico di un insieme di dati, rappresentazione dei grafici di funzioni e loro interpolatori trigonometrici, in particolare esemplificazione del fenomeno dell' aliasing e dell fenomeno di Gibbs (solo in Aula 1), si veda il foglio del 25/11/2010 e la storia dei comandi.

26.11.10

Integrazione numerica, introduzione e formule di quadratura semplici e composite (formula del punto medio, formula del trapezio, formula di Simpson), loro errori, gradi di esattezza e ordini di accuratezza delle formule composite, cenno alle formule di Newton-Cotes.

02.12.10 (mattino)

Formule di quadratura di Gauss-Legendre e di Gauss-Legendre-Lobatto, confronto dell'errore della formula di Gauss-Legendre con quello della formula di Simpson, comando Octave quadl. Sistemi di equazioni lineari: algoritmo di Gauss per trasformare un sistema di equazioni lineari in un sistema equivalente (cioè avente le stesse soluzioni), ma con matrice dei c oefficienti triangolare superiore e fattorizzazione LU senza scambio delle righe, soluzione di sistemi lineari mediante gli algoritmi delle sostituzioni in avanti e delle sostituzioni all'indietro, calcolo del determinante di una matrice quadrata utilizzando la sua fattorizzazione LU, cenno al costo computazionale.

02.12.10 (pomeriggio)

Calcolo della matrice inversa di una matrice quadrata non singolare utilizzando la fattorizzazione LU, esempio di una matrice che non ha una fattorizzazione LU, teorema sull'esistenza della fattorizzazione LU, matrici simmetriche e definite positive e matrici complesse hermitiane definite positive ammettono una fattorizzazione LU. Esercitazione al computer: confronto degli ordini di accuratezza delle formule di quadratura composite del punto medio (midpointc.m), del trapezio (comando trapz) e di Simpson (simpsonc.m), si veda anche http://www.dm.unibo.it/~incensi/download.htm.

03.12.10

Codice MATLAB/Octave dell'algoritmo di Gauss lugauss.m (fattorizzazione LU senza scambio di righe), esempio per l'uso del programma lugauss.m, esempi di matrici simmetriche definite positive (che ammettono una fattorizzazione LU senza scambio di righe). Richiami sul calcolo vettoriale: vettori geometrici, operazioni con i vettori geometrici, regole del calcolo, cenno alla definizione di spazio vettoriale, vettori numerici, operazioni con i vettori geometrici.

16.12.10

Errore algoritmico del metodo di Gauss, tecnica del pivoting ed esempio relativo (pivoting per righe), matrici di permutazione, comando Octave lu. Errore inerente del metodo di Gauss: esempio di un sistema lineare mal condizionato, norme vettoriali e norme matriciali indotte dalle norme vettoriali, norma di Frobenius (o di Schur). Esercitazione con Octave: soluzione di un sistema lineare Ax = b mal condizionato con la fattorizzazione LU e la sostituzione in avanti e all'indietro (script sol.m), con la divisione dalla sinistra di Octave A\b e con il metodo iterativo di Gauss-Seidel (script itermeth.m), si veda anche http://www.dm.unibo.it/~incensi/download.htm e l'esercizio 4 del foglio del 09/12/2008.

17.12.10

Esempio per comprendere il concetto della norma matriciale indotta dalla norma vettoriale euclidea (deformazione della circonferenza unitaria), stima dell'errore relativo della soluzione di un sistema lineare (teorema di Wilkinson), caso di una sola perturbazione dei termini noti, condizionamento di un sistema lineare, comando Octave cond. Presentazione dei progetti di calcolo numerico da preparare per l'esame orale, compilazione delle schede per la valutazione della didattica.

13.01.11

Autovalori e autovettori di un endomorfismo di uno spazio vettoriale (si veda anche la dispensa), matrice associata a un endomorfismo di uno spazio vettoriale di dimensione finita, esempi in R²: matrici, autovalori e autovettori di rotazioni e di riflessini, polinomio caratteristico di un endomorfismo e di una matrice quadrata, autospazio relativo a un autovalore, esempio per il calcolo degli autovalori e degli autospazi di una matrice quadrata.

14.01.11

Cambiamento di base e cambiamento delle coordinate mediante la matrice contragrediente della matrice di trasformazione dei vettori di base, la relazione di equivalenza di similitudine fra matrici e matrici diagonalizzabili, matrici rappresentano lo stesso endomorfismo di uno spazio vettoriale di dimensione finita rispetto a basi diverse dello spazio se e solo se sono simili, un endomorfismo è diagonalizzabile se e solo se esiste una base fatta di autovettori per l'endomorfismo, matrici simili hanno lo stesso polinomio caratteristico, gli autovalori di una matrice hermitiana sono reali (dimostrazione), autovettori associati ad autovalori distinti di una matrice hermitiana sono ortogonali (senza dimostrazione), autovalori delle potenze di una matrice quadrata e dell'inversa di una matrice invertibile, metodo delle potenze per calcolare l'autovalore di modulo massimo. Comando Octave eig.


last updated 15th January 2011 Rüdiger Achilles