Laboratorio di Analisi Numerica (C.d.S. Triennale in Ingegneria Informatica e Telecomunicazioni)
(1^ ciclo, 3^ anno)
Esame: orale
Crediti:3
Docente: Prof. Giulio Casciola
Scopo
Dare i fondamenti del calcolo numerico.
Contenuto
Numeri finiti e aritmetica floating point;
funzioni polinomiali; interpolazione e approssimazione di dati; equazioni
non lineari; integrazione numerica; sistemi lineari: metodi diretti.
Il corso prevede un'attività di laboratorio integrativa
in cui si utilizza il sitema MATLAB.
Testi Consigliati
- J.Stoer, R.Bulirisch, Introduction to Numerical Analisysy,
(second edition) Springer Verlag (1997).
- R.Bevilacqua, D.Bini, M.Capovani, O.Menchi, Metodi numerici,
Zanichelli (1992);
Appelli d'esame
- Mercoledi` 11/12/02 ore 12.00, Lab I piano CIRAM, Via Saragozza, 8.
- Lunedi` 16/12/02 ore 09.00, Lab I piano CIRAM, Via Saragozza, 8.
- Mercoledi` 15/01/03 ore 09.15, Lab I piano CIRAM, Via Saragozza, 8
- Giovedi` 27/03/03 ore 15.00, Lab I piano CIRAM, Via Saragozza, 8
- Lunedi` 21/07/03 ore 16.00, Lab I piano CIRAM, Via Saragozza, 8
- Giovedi` 16/10/03 ore 9.30, Lab I piano CIRAM, Via Saragozza, 8
Prossimi Appelli
- Chi ha seguito il corso e lo ha nel proprio
piano di studi per l'A.A.2002/03 puo` sostenere
l'esame secondo le modalita' fissate e cioe' consegnando le esercitazioni
previste e discutendole in una prova orale. A tal fine si contatti direttamente
il docente per e-mail.
Argomenti trattati a Lezione
- Lun.23/09/02, ore 11-13, aula 01: rappresentazione numeri reali in
forma scientifica; numeri finiti: approssimazione della mantissa
per troncamento e arrotondamento, range degli esponenti, insieme F dei numeri
finiti, esercizio sulla distribuzione dei numeri finiti sull'asse
reale prendendo come esempio F(2,3,-1,2), standard ANSI-IEEE 754-1985 di
rappresentazione, definizione di errore assoluto e relativo, definizione di
Unità di arrotondamento.
- Gio.03/10/02, ore 9.00-11.00: soluzione dell'esercizio assegnato,
definizione di Unita' di arrotondamento, teorema su maggiorazione dell'
errore relativo (caso troncamento e arrotondamento), corollario
sulla rappresentazione di fl(a), caratterizzazione di U, U nei casi Basic
Single e Basic Double, precisione e cifre significative, aritmetica
floating point, precisione di calcolo, analisi degli errori, esempio
sulla moltiplicazione e addizione di numeri reali, cancellazione numerica,
esempi numerici.
- Gio.10/10/02, ore 9.00-11.00: Errore INerente, ALGoritmico e TOTale e
loro connessione; problema delle radici di un'equazione di secondo grado:
lasciato come esercizio di formulare un algoritmo stabile; introduzione
alla geometria 2D da un punto di vista numerico/computazionale: punto e
vettore, linea: rappresentazione mediante eq. parametrica, implica ed
esplicita, vantaggi e svantaggi delle rappresentazioni, lasciato come
esercizio di formulare la conversione da una forma all'altra; distanza di
un punto da una linea data in forma implicita e parametrica; introdotto
il problema dell'intersezione di due linee.
- Gio.17/10/02, ore 9.00-11.00: caso di linee in forma parametrica, in
forma implicita, in forma parametrica/implicita; proposta di algoritmo
stabile per l'intersezione di linee basato sulla distanza punto/linea;
problema dell'intersezione di due segmenti definiti dai loro estremi;
esempio numerico sull'errore inerente per l'intersezione di due linee.
Proposto il I ESERCIZIO di laboratorio: realizzare un programma in linguaggio
MATLAB per calcolare l'intersezione fra due segmenti assegnati. Prevedere
come risultato la non intersezione, un punto di intersezione (fornire le
coordinate del punto di intersezione ed eventualmente visualizzarlo);
un segmneto di intersezione (fornirne gli estremi ed eventualmente visualizzarlo). L'esercizio mira ad una programmazione con una particolare attenzione
alle problematiche numeriche e a sperimentare i risultati del programma
realizzato in situazioni critiche di intersezione per i due segmenti.
Funzioni polinomiali e loro interesse numerico; esempio sulla valutazione
di un polinomio: errore inerente; condizionamento della base di
rappresentazione; introduzione alla base dei polinomi di Bernstein;
esempio numerico per la valutazione con stima dell'errore inerente.
- Gio.24/10/02, ore 9.00-11.00: cenni all'ambiente MATLAB e al linguaggio
di programmazione relativo; invarianza per traslazione e scala dell'
intervallo di definizione per i polinomi di Bernstein; utilizzo dei polinomi
di Bernstein in [0,1]; proprieta' dei polinomi di Bernstein; formula
ricorrente per la loro definizione e calcolo; valutazione tramite formula
ricorrente (Alg.1); determinazione della formula ricorrente sui coefficienti;
valutazione tramite quest'ultima formula (Alg.2 o di de Casteljau); assegnato
come esercizio di realizzare delle function in linguaggio MATLAB per
la valutazione di un polinomio nella base di Bernstein seguendo i due
algoritmi visti.
- Gio.24/10/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza;
- Gio.31/10/02, ore 9.00-11.00: Intepolazione Polinomiale di Lagrange;
teorema di esistenza e unicita` del polinomio interpolante; determinazione
del polinomio interpolante nella base di Bernstein via soluzione di un
sistema lineare; funzione polinomiale vettoriale o curva nel piano; curva
di Bezier; punti di controllo e poligonale di controllo; proprieta` del
guscio convesso; definizione di una forma 2D mediante definizione della
poligonale di controllo; interpolazione di punti del piano mediante curva
di Bezier; invarianza delle curve di Bezier per trasformazioni geometriche
piane; proposto il II ESERCIZIO di laboratorio: a) realizzare una function
MATLAB per il calcolo dei polinomi di Bernstein in un punto o in un vettore
di punti (si utilizzi la formula ricorrente sui pol. di Bernstein);
b) realizzare una function MATLAB per il calcolo di un polinomio nella base
di Bernstein in un punto o in un vettore di punti (si utilizzi l'algoritmo
di de Casteljau); c) rappresentare graficamente i polinomi di Bernstein;
d) determinare il polinomio interpolante nella base di Bernstein di un set di
dati; e) rappresentare graficamente una curva di Bezier avendo assegnato i
Punti di Controllo interattivamente; e) calcolare la curva di Bezier di
interpolazione di un set di punti del piano assegnati interattivamente.
- Gio.31/10/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza;
- Gio.07/11/02, ore 9.00-11.00: Inflessibilita` dei polinomi con conseguente
oscillazione negli estremi dell'intervallo di interpolazione: funzione di
Runge; opportune distribuzione di punti (zeri polinomi di Chebyshev) per
garantire la convergenza del polinomio interpolante all'aumentare dei punti
di interpolazione; interpolazione di Hermite; derivata di un polinomio
nella base di Bernstein; polinomi a tratti e spline; polinomio cubico di
interpolazione di Hermite nella base di Bernstein; interpolazione polinomiale
a tratti cubica di Hermite; proposto il III ESERCIZIO di laboratorio:
a) sperimentare l'interpolazione polinomiale di Lagrange ed Hermite sulla
funzione di Runge per punti equidistanti e zeri del polinomio di Chebyshev;
b) implementare l'interpolazione polinomiale cubica a tratti di Hermite;
c) sperimentarla nella definizione di una forma o ricostruzione di contorni;
- Gio.07/11/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza;
- Gio.14/11/02, ore 9.00-11.00: Stima automatica delle derivate da usare
nell'interpolazione polinomiale cubica a tratti di Hermite; interpolazione
polinomiale cubica a tratti con "massima regolarita'" (spline) (caso di
partzione uniforme e assegnazione delle derivate nei punti estremi);
controllo di un robot: definito un robot 2D composto da due bracci di
assegnate lunghezze ed una mano controllato da due motori (alla base e
al gomito); date le formule che permettono data una posizione nel piano di
determinare gli angoli dei bracci per portare la mano del robot nella
posizione asegnata. Introdotto il problema di utilizzare tale robot
per spostare la mano da una posizione iniziale ad una finale in un
intervallo di tempo ben definito secondo una traiettoria che garantisca
che il movimento dei motori sia il piu` regolare possibile (funzione di
rotazione dei motori continua fino alla derivata seconda). Introdotto
il problema che cosi` facendo il percorso potrebbe essere incontrollato.
Allora si introducono una sequenza di posizioni del piano che la mano
del robot deve raggiungere in ben precisi istanti e si propone
un'interpolazione spline con derivate agli estremi nulle per garantire
la regolarita` dei movimenti dei motori. Proposto il IV ESERCIZIO di
laboratorio: a) implementare l'interpolazione polinomiale cubica a tratti
di Hermite con stima delle derivate prime; b) implementare l'interpolazione
cubica a tratti spline con derivate agli estremi nulle e partizione
uniforme; c) sperimentare tale interpolazione nel controllo di un robot
come descritto a lezione (ci si aspetta una animazione schematica dei
bracci del robot che eseguono il comando di spostarsi nel tempo definito
nelle posizioni definite).
- Gio.14/11/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza.
- Gio.21/11/02, ore 9.00-11.00: Integrazione numerica: formule interpolatorie
di Newton-Cotes, formula tei trapezi e di Simpson, errore di integrazione,
formule composte, formule adattive con stima dell'errore di integrazione
mediante estrapolazione di Richardson, function quad di Matlab.
Calcolo della lunghezza e dell'area di una curva piana.
Proposto il V ESERCIZIO di laboratorio: a) implementare una function in
linguaggio Matlab per calcolare l'integrale di una funzione polinomiale di
quinto grado; b) usare la function realizzata al punto a) per calcolare
l'area di una curva piana cubica a tratti di Hermite o spline di interpolazione.
c) usare la function Matlab quad per calcolare un'approssimazione della
lunghezza di una curva piana cubica a tratti di Hermite o spline di
interpolazione. d) modificare i due programmi precedenti per avere una
curva piana cubica a tratti di Hermite o spline di forma assegnata e
lunghezza od area assegnata.
- Gio.21/11/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza.
- Gio.28/11/02, ore 9.00-11.00: Problema delle determinazione delle
radici di una equazione non lineare; caso polnomiale; interesse per
certe applicazioni della ricerca delle radici reali in un intervallo;
problemi applicativi: contenimento di un punto in una regione piana
definita da una curva chiusa, punti estremi di una curva, punto di una
curva piu` vicino ad un assegnato punto, intersezione fra curve piane.
Soluzione di un sistema lineare quadrato; fattorizzazione LU di una
matrice mediante matrici elemnatri di Gauss; soluzione di una sistema
lineare via fattorizzazione LU; calcolo del determinante di una matrice
via fattorizzazione LU; calcolo della matrice inversa via fattorizzazione
LU.
- Gio.28/11/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza.
- Gio.05/12/02, ore 9.00-11.00: ipotesi di applicazione della fattorizzazione
LU di una matrice; fattorizzazione LU della matrice PA (previa opportuna
permutazione delle righe); metodo di Gauss con scambio delle righe;
esempio; stabilita' della fattorizzazione; metodo di Gauss con scambio
delle righe e perno massimo.
- Gio.05/12/02, ore 16.00-18.30: Attivita` di laboratorio con assistenza.
Torna alla
home page di Giulio Casciola