Sei sulla pagina 1di 51

Politecnico di Torino

Appunti di
Calcolo Numerico
Niero Luca
Corso di Laurea in Ing. Aerospaziale

A.A. 2020/2021

1
1

Note d’uso
Gli appunti sono stati prodotti sulla base delle fonti citate in ultima pagina
(testi o docenti), selezionate con cura in modo da evitare erroneità.
Tali appunti NON devono essere sostitutivi di libri e professori, poiché si
prefiggono solamente di fare un recap della materia, possibilmente in modo
chiaro e corretto, per uno studio di revisione a fine corso.
L’invito è sempre quello di acquistare i testi citati per avere una visione
completa e corretta della materia.
Nel caso ci siano errori, sviste e mancanze, tali possono essere segnalate
all’indirizzo mail ”poliaerospace@gmail.com”.
Gli appunti sono distribuiti sul sito web www.poliaerospace.it, pagina di
appunti gratuiti per Ingegneria Aerospaziale.
CONTENTS 2

Contents
1 Aritmetica di macchina 4
1.1 Rappresentazione dei numeri . . . . . . . . . . . . . . . . . . . 4
1.1.1 Floating-point . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Normalizzazione . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Numeri di macchina . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Insieme numeri macchina . . . . . . . . . . . . . . . . . 6
1.2.2 Regioni . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Rounding to even . . . . . . . . . . . . . . . . . . . . . 7
1.3 Errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Tipologie . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2 Valori di macchina . . . . . . . . . . . . . . . . . . . . 9
1.4 Operazioni di macchina . . . . . . . . . . . . . . . . . . . . . . 10
1.4.1 Definizione . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4.2 Equivalenza aritmetica . . . . . . . . . . . . . . . . . . 10
1.5 Cancellazione numerica . . . . . . . . . . . . . . . . . . . . . . 11
1.6 Condizionamento di un problema numerico . . . . . . . . . . . 12
1.6.1 Problema numerico . . . . . . . . . . . . . . . . . . . . 12
1.6.2 Condizionamento . . . . . . . . . . . . . . . . . . . . . 12
1.7 Stabilità di un algoritmo . . . . . . . . . . . . . . . . . . . . . 13
1.7.1 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7.2 Stabilità . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Approssimazione di funzioni e dati 14


2.1 Interpolazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.1 Interpolazione polinomiale . . . . . . . . . . . . . . . . 14
2.2 Rappresentazione monomiale del polinomio di interpolazione . 15
2.3 Rappresentazione di Lagrange del polinomio di interpolazione 16
2.4 Convergenza del polinomio di interpolazione . . . . . . . . . . 17
2.4.1 Funzione errore, norma infinito, convergenza uniforme . 17
2.4.2 Funzione di Runge . . . . . . . . . . . . . . . . . . . . 17
2.5 Nodi di Chebyshev-Lobatto . . . . . . . . . . . . . . . . . . . 19
2.6 Funzioni polinomiali a tratti: spline . . . . . . . . . . . . . . . 21
2.6.1 Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.2 Spline di ordine unitario . . . . . . . . . . . . . . . . . 22
2.6.3 Spline cubiche . . . . . . . . . . . . . . . . . . . . . . . 22
2.6.4 Funzione degli errori . . . . . . . . . . . . . . . . . . . 24
CONTENTS 3

3 Sistemi lineari 25
3.1 Richiami di Algebra Lineare . . . . . . . . . . . . . . . . . . . 25
3.1.1 Norme di vettore . . . . . . . . . . . . . . . . . . . . . 25
3.1.2 Norme di matrice . . . . . . . . . . . . . . . . . . . . . 25
3.1.3 Matrici particolari . . . . . . . . . . . . . . . . . . . . 26
3.1.4 Matrici a blocchi . . . . . . . . . . . . . . . . . . . . . 27
3.1.5 Matrici di permutazione . . . . . . . . . . . . . . . . . 27
3.1.6 Matrici a diagonali dominanti . . . . . . . . . . . . . . 28
3.1.7 Matrici definite . . . . . . . . . . . . . . . . . . . . . . 28
3.2 Condizionamento di un sistema lineare . . . . . . . . . . . . . 29
3.2.1 Matrici mal condizionate . . . . . . . . . . . . . . . . . 30
3.3 Metodi numerici . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.1 Metodi numerici per sistemi diagonali . . . . . . . . . . 31
3.3.2 Metodi numerici per sistemi triangolari superiori . . . . 31
3.3.3 Metodi numerici per sistemi triangolari inferiori . . . . 32
3.3.4 Metodo delle eliminazioni di Gauss e fattorizzazione
A = LU . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Fattorizzazione P A = LU e applicazioni . . . . . . . . . . . . 35
3.4.1 Fattorizzazione P A = LU . . . . . . . . . . . . . . . . 35
3.4.2 Risoluzioni di un sistema lineare AX = B . . . . . . . 35
3.4.3 Calcolo del determinante di una matrice . . . . . . . . 36
3.4.4 Calcolo dell’inversa di una matrice . . . . . . . . . . . 36
3.4.5 Risoluzione di più sistemi lineari AXi = Bi . . . . . . . 36
3.5 Fattorizzazione di Choleski e applicazioni . . . . . . . . . . . . 37
3.5.1 Fattorizzazione di Choleski . . . . . . . . . . . . . . . . 37
3.5.2 Risoluzione di un sistema lineare AX = B . . . . . . . 37
3.5.3 Calcolo dell’inversa di una matrice . . . . . . . . . . . 37
3.6 Fattorizzazione QR e applicazioni . . . . . . . . . . . . . . . . 38
3.6.1 Risoluzione di un sistema lineare determinato . . . . . 38
3.6.2 Risoluzione di un sistema lineare sovradeterminato . . 38

4 Autovalori e valori singolari di matrici 40


4.1 Richiami di Algebra Lineare . . . . . . . . . . . . . . . . . . . 40
4.2 Definizioni e metodi . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.1 Quoziente di Rayleigh . . . . . . . . . . . . . . . . . . 42
4.2.2 Raggio e norma spettrale . . . . . . . . . . . . . . . . . 42
4.2.3 Cerchio di Gershgorin . . . . . . . . . . . . . . . . . . 42
4.2.4 Diagonalizzazione . . . . . . . . . . . . . . . . . . . . . 43
CONTENTS 4

4.3 Condizionamento del calcolo degli autovalori . . . . . . . . . . 44


4.4 Metodi numerici . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4.1 Metodo delle potenze . . . . . . . . . . . . . . . . . . . 45
4.4.2 Metodo delle potenze inverse . . . . . . . . . . . . . . . 45
4.4.3 Metodo QR . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5 Valori singolari e decomposizione SV D . . . . . . . . . . . . . 47
CONTENTS 5

blank
1 ARITMETICA DI MACCHINA 6

1 Aritmetica di macchina
Il calcolo numerico è una disciplina della matematica che propone e anal-
izza metodi che consentono di ottenere una soluzione numerica di prob-
lemi matematici onerosi.
Per ottenere la soluzione numerica si utilizzano algoritmi eseguibili da un
calcolatore.
In seguito si analizzeranno metodi di risoluzione di Algebra Lineare, in par-
ticolare gli algoritmi saranno basati sul linguaggio Matlab.

1.1 Rappresentazione dei numeri


1.1.1 Floating-point
Si definisce rappresentazione floating-point di un numero reale a la
seguente espressione

a = (−1)s pN q , s ∈ {0, 1}, p ≥ 0 ∈ R, q ∈ Z

con N detta base del sistema di numerazione e s segno.


Se N = 10 il sistema si dice decimale, se N = 2 si dice binario.
Ogni numero reale non nullo non ammette un’unica rappresentazione floating
point. Tale è univocamente determinata se si impone la seguente condizione

N −1 ≤ p < 1

cioè se si impone che la prima cifra decimale di p sia diversa da zero. Ad


esempio, per il sistema decimale si ha 0.1 ≤ p < 1.

1.1.2 Normalizzazione
La rappresentazione floating point a = (−1)s pN q del numero reale a si dice
normalizzata se p soddisfa la condizione

N −1 ≤ p < 1

In tal caso p e q sono univocamente determinati e si definiscono rispettiva-


mente mantissa di a ed esponente di a.
Fissata la base N del sistema, i valori s, p, q individuano univocamente il nu-
mero a. Pertanto per memorizzare a è sufficiente memorizzare i tre numeri.
1 ARITMETICA DI MACCHINA 7

Poiché un calcolatore riserva uno spazio finito di memoria, esso può memo-
rizzare solo mantisse con un numero finito di cifre ed esponenti appartenenti
ad un certo intervallo. Si suppone quindi che le mantisse p rappresentabili
possano avere al massimo t cifre nel sistema scelto e che l’esponente q debba
soddisfare L ≤ q ≤ U , dove L < 0 e U > 0 sono interi definiti per ogni
calcolatore.
1 ARITMETICA DI MACCHINA 8

1.2 Numeri di macchina


1.2.1 Insieme numeri macchina
É evidente che non tutti i numeri reali soddisfino le suddette condizioni.
Pertanto, non tutti i numeri reali sono esattamente rappresentabili su di un
calcolatore.
Si definiscono numeri di macchina i numeri con mantissa ed esponente
esattamente rappresentabili negli spazi a loro riservati del calcolatore.
L’insieme dei numeri macchina è costituito da un numero finito di elementi
cosı̀ definito
F = {0} ∪ {(−1)s 0.a1 a2 . . . at · N q }
con
0 ≤ ai < N, a1 6= 0, L ≤ q ≤ U
ove N è la base del sistema di numerazione, s è il segno (0 positivo, 1 nega-
tivo), a1 a2 . . . at sono interi minori o uguali a N − 1 e rappresentano le cifre
della mantissa, t è il massimo numero di cifre della mantissa rappresentabili
e q è l’esponente.

1.2.2 Regioni
La limitazione inferiore L ≤ q sull’esponente q comporta che il più piccolo
numero positivo rappresentabile in macchina sia
L
| {z } ·N
m = 0. 10000000
t cifre

Si definisce regione di underflow l’insieme dei numeri reali diversi da zero


appartenenti a (−m, m).
La limitazione superiore q ≤ U sull’esponente q comporta che il più grande
numero positivo, rappresentabile in macchina, sia

− 1N − 1} ·N U
M = 0. |N − 1N {z
t cifre

Si definisce regione di overflow l’insieme dei numeri appartenenti a


(−∞, −M ) ∪ (M, +∞).
Anche se i dati iniziali e il risultato finale di un calcolo sono numeri macchina,
o arrotondabili ad essi, le operazioni intermedie possono generare numeri
appartenenti a queste regioni. Quando succede ciò il calcolatore invia una
1 ARITMETICA DI MACCHINA 9

segnalazione: nel primo caso il parziale viene approssimato a zero mentre nel
secondo a Inf .

1.2.3 Rounding to even


Si esamina ora come vengono rappresentati i reali la cui mantissa ha più di
t cifre.
Sia a normalizzato e sia q limitato ma sia anche p con più di t cifre (im-
pedendo di fatto la memorizzazione macchina). Per rappresentare a in un
sistema floating point con t cifre occorre arrotondare p.
Generalmente si ricorre alla tecnica di arrotondamento rounding to even:
la mantissa p viene approssimata con la mantissa p̄ più vicina e se p è equidis-
tante da due mantisse macchina consecutive allora p viene approssimata con
quella che ha l’ultima cifra pari.
Si definisce dunque il numero di macchina arrotondato come ā = (−1)s p̄N q .
Operativamente per calcolare p̄ si aggiunge 1/2 · N −t a p e poi si tronca il
risultato alla t-esima cifra, con un eccezione nel caso in cui p sia equidistante
da due mantisse macchina.
Pertanto se
p = 0.a1 a2 . . . at at+1 . . . an
e
p ∈ (p¯1 , p¯2 )
ove
p¯1 = 0.a1 a2 . . . at e p¯2 = p¯1 + N −t
denotano due mantisse macchina consecutive, allora la mantissa p̄ è data da
(
p¯1 , se p ∈ p¯1 , p¯1 +2 p¯2 oppure p = p¯1 +2 p¯2 e at è pari

p̄ =
p¯2 , se p ∈ p¯1 +2 p¯2 , p¯2 oppure p = p¯1 +2 p¯2 e at è dispari

1 ARITMETICA DI MACCHINA 10

1.3 Errori
1.3.1 Tipologie
In seguito con la notazione ā verrà indicato il numero di macchina corrispon-
dente ad a. Se a è un numero di macchina, allora a = ā; altrimenti a ≈ ā.
É evidente che quando a ≈ ā e si memorizza ā si introduce un errore. Per
quantificare tale errore è necessario introdurre una definizione di errore.
Sia x̄ un’approssimazione di x. Si definisce errore assoluto la quantità
ea = |x − x̄|
ed errore relativo la quantità
|x − x̄|
er = , x 6= 0
|x|
Se x rappresenta un’entità diversa da uno scalare, come un vettore o una
matrice, è necessario sostituire nella definizione il valore assoluto |.| con
un’opportuna norma ||.||.
Si definisce errore di arrotondamento l’errore che si commette quando si
sostituisce il numero reale a 6= 0 con il corrispondente numero macchina ā.
Sia a normalizzato e ā suo arrotondamento ottenuto applicando le tecniche
precedentemente descritte; dunque p̄ non ha più di t cifre. Tenendo conto
che la distanza tra p¯1 e p¯2 è esattamente N −t si ha

In qualunque caso di vicinanza alle mantisse macchina, si ha la relazione


1
|p − p̄| ≤ N −t
2
Pertanto per l’errore assoluto risulta
1
|a − ā| = |p − p̄|N q ≤ N q−t
2
e, tenendo conto che p ≥ N −1 , per l’errore relativo risulta
|a − ā| |p − p̄| 1
= ≤ N 1−t
|a| |p| 2
1 ARITMETICA DI MACCHINA 11

1.3.2 Valori di macchina


Si definisce epsilon di macchina la quantità

eps = N 1−t

mentre si definisce precisione di macchina la quantità


1
εm = N 1−t
2
La precisione di macchina è una costante caratteristica di ogni aritmetica
floating point; essa rappresenta il massimo errore relativo che si commette
quando si approssima il numero reale a con il corrispondente numero di
macchina ā.
Ponendo ε = (ā − a)/a, si deduce l’uguaglianza

ā = a(1 + ε), |ε| ≤ εm

M.1 Matlab - Valori di macchina


Matlab implementa le specifiche del sistema standard floating point IEEE-
754 del 1985 (standard internazionale IEC-559 dal 1989) che in doppia pre-
cisione prevede:

ˆ base N = 2;

ˆ 64 bit per la rappresentazione di cui 1 bit per il segno, 52 per le cifre


della mantissa e 11 per l’esponente.

In Matlab sono predefiniti i seguenti valori:

ˆ realmin fornisce il valore del più piccolo numero di macchina positivo


e non nullo, m ≈ 2.2 · 10−308 ;

ˆ realmax fornisce il valore del più grande numero di macchina M ≈


1.8 · 10308 ;

ˆ eps fornisce il valore dell’epsilon di macchina eps ≈ 2.2 · 10−16 (dunque


εm ≈ 1.1 · 10−16 ).
1 ARITMETICA DI MACCHINA 12

1.4 Operazioni di macchina


1.4.1 Definizione
Il risultato di un’operazione aritmetica tra due numeri di macchina general-
mente non è un numero di macchina.
In un calcolatore non è possibile eseguire le normali operazioni aritmetiche,
occorre sostituirle con le operazioni di macchina ⊕, , ⊗ e .
L’operazione di macchina associa a due numeri di macchina un terzo
numero di macchina ottenuto arrotondando l’esatto risultato dell’operazione
in questione.
Si può generalmente scrivere, dati due numeri di macchina:

a¯1 a¯2 = a¯1 · a¯2

e quindi
a¯1 a¯2 = (a¯1 · a¯2 )(1 + ε )
con |ε | ≤ εm .
Per le operazioni di macchina rimane valida la proprietà commutativa, ma
non valgono in generale le proprietà associativa e distributiva.
Un ulteriore relazione anomala è

a¯1 ⊕ a¯2 = a¯1

quando |a¯2 |  |a¯1 |.

1.4.2 Equivalenza aritmetica


In generale due espressioni e1 ed e2 equivalenti nell’aritmetica esatta, non lo
sono nell’aritmetica a precisione finita. Si può riformulare la definizione cosı̀.
Due espressioni si dicono equivalenti nell’aritmetica del calcolatore
quando forniscono risultati che differiscono per una tolleranza relativa dell’ordine
di εm o minore, cioè quando

|e¯1 − e¯2 | |e¯1 − e¯2 |


oppure
|e¯1 | |e¯2 |

è dell’ordine di εm o minore. Ne consegue che εm rappresenta la massima


precisione di calcolo raggiungibile.
1 ARITMETICA DI MACCHINA 13

1.5 Cancellazione numerica


La cancellazione numerica rappresenta una delle conseguenze più gravi della
rappresentazione con precisione finita dei numeri reali. Si può definire cosı̀.
Siano
a¯1 = (−1)s1 p¯1 N q1 , a¯2 = (−1)s2 p¯2 N q2
le rappresentazione dei rispettivi numeri reali a1 e a2 .
La cancellazione numerica consiste in una perdita di cifre della mantissa
e si verifica quando si esegue l’operazione di sottrazione fra due rappresen-
tazioni di macchina dello stesso segno, circa uguali e almeno una delle quali
sia affetta dall’errore di arrotondamento, ossia quando

ˆ s1 = s2 ;

ˆ q 1 = q2 ;

ˆ p¯1 ≈ p¯2 ;

ˆ p¯1 6= p1 e/o p¯2 6= p2 .

Talvolta, manipolando opportunamente le espressioni matematiche che definis-


cono un problema, è possibile evitare il fenomeno della cancellazione nu-
merica; quando ciò non è possibile si dice che la cancellazione è insita nel
problema
1 ARITMETICA DI MACCHINA 14

1.6 Condizionamento di un problema numerico


Gli esempi precedenti hanno messo in evidenza che gli errori presenti nei dati
possono essere trasmessi e amplificati nei risultati.
Si introducono quindi le definizioni di problema numerico e algoritmo al fine
di definire il loro condizionamento.

1.6.1 Problema numerico


Si definisce problema numerico una relazione funzionale f tra i dati x
(input) e i risultati y (output).

La connessione f tra x ed y può essere esplicita


y = f (x)
oppure implicita
f (x, y) = 0

1.6.2 Condizionamento
Sia y = f (x) o f (x, y) = 0 un generico problema numerico. Si denotano con
x̄ una perturbazione dei dati x di input e ȳ i risultati ottenuti a partire dai
dati x̄ in precisione infinita di calcolo. Un problema numerico si dice ben
condizionato se accade che l’errore relativo associato ad ȳ è dello stesso
ordine di grandezza dell’errore relativo associato a x̄ o minore; altrimenti si
dice mal condizionato.
Per studiare il condizionamento di un problema si possono determinare stime
del tipo
|y − ȳ| |x − x̄|
≤ K(f, x)
|y| |x|
Se i dati di input e/o i risultati sono rappresentati da una funzione, oppure
un vettore o una matrice, nella stima occorre sostituire il valore assoluto con
una norma opportuna.
Si definisce numero di condizionamento del problema il più piccolo valore
di K(f, x) per cui vale la disuguaglianza.
Se K non è eccessivamente grande, il problema è ben condizionato.
1 ARITMETICA DI MACCHINA 15

1.7 Stabilità di un algoritmo


1.7.1 Algoritmo
Per algoritmo si intende una sequenza finita di operazioni, aritmetiche e
non, che consente di ottenere l’output di un problema a partire dai dati di
input.

1.7.2 Stabilità
In precisione finita è possibile denotare con x̄ l’arrotondamento dei dati x di
input, ȳ i risultati dell’algoritmo ottenuti a partire dai dati x̄ in precisione
infinita di calcolo e ỹ i risultati dell’algoritmo ottenuti a partire dai dati x̄ in
precisione finita.
Per giudicare la bontà di un algoritmo per la risoluzione di un problema,
bisogna confrontare ỹ e ȳ.
Un algoritmo si dice numericamente stabile se accade che l’errore relativo
associato al risultato ỹ ha lo stesso ordine di grandezza della precisione di
macchina o minore; altrimenti si dice instabile.
2 APPROSSIMAZIONE DI FUNZIONI E DATI 16

2 Approssimazione di funzioni e dati


Approssimare un insieme di dati (xi , yi ) significa determinare una funzione
f˜ che abbia un andamento analogo a quello dei dati.

2.1 Interpolazione
Siano assegnati n + 1 dati (xi , yi ), ove yi è il valore assunto da una certa
funzione f (x) in xi .
Il criterio dell’interpolazione consiste nello scegliere come approssimante
dei dati una funzione f˜(x) soddisfacente le condizioni

f˜(xi ) = yi , i = 1, . . . , n + 1

che impongono il passaggio di essa per i dati.


Le suddette equazioni sono dette condizioni di interpolazione e i punti xi
sono detti nodi di interpolazione; inoltre si dice che f˜ interpola i dati o
la funzione.
In seguito verranno considerate funzioni interpolanti f˜(x) polinomiali o
polinomiali a tratti.

2.1.1 Interpolazione polinomiale


Si enuncia il seguente teorema. Assegnati n + 1 punti con ascisse distinte,
esiste uno e un solo polinomio pn (x) di grado minore o uguale a n interpolante
i dati assegnati, ovvero soddisfacente

pn (xi ) = yi
2 APPROSSIMAZIONE DI FUNZIONI E DATI 17

2.2 Rappresentazione monomiale del polinomio di in-


terpolazione
Si definisce rappresentazione monomiale del polinomio interpolante pn (x)
l’espressione
pn (x) = c1 xn + c2 xn−1 + · · · + cn x + cn+1
ove i coefficienti c1 sono determinati imponendo che il polinomio soddisfi le
condizioni di interpolazione.

M.2 Matlab - Rappresentazione monomiale


ˆ c = polyf it(x, y, n) calcola e memorizza in c i coefficienti della rappre-
sentazione monomiale del polinomio di grado n

pn (x) = c(1)xn + c(2)xn−1 + · · · + c(n)x + c(n + 1)

interpolante i dati le cui ascisse e ordinate sono memorizzate nei vettori


x e y;

ˆ p = polyval(c, z) calcola e memorizza nel vettore p i valore che un


qualsiasi polinomio

pn (x) = c(1)xn + c(2)xn−1 + · · · + c(n)x + c(n + 1)

i cui coefficienti sono memorizzati in c, assume nelle componenti del


vettore z.

La rappresentazione monomiale soffre di un problema che cresce al crescere


di n: il mal condizionamento. É dunque necessario calcolare il polinomio in
altro modo.
2 APPROSSIMAZIONE DI FUNZIONI E DATI 18

2.3 Rappresentazione di Lagrange del polinomio di in-


terpolazione
Siano xi , i = 1, . . . , n + 1, n + 1 nodi distinti e si considerino i seguenti
polinomi di grado n

(x − x1 ) · · · (x − xj−1 )(x − xj+1 ) · · · (x − xn+1 )


`j (x) =
(xj − x1 ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xn+1 )

per j = 1, . . . , n + 1.
Poiché (
1 se i = j
`j (xi ) =
0 se i 6= j
`j (x) interpola i dati:

(x1 , 0), . . . , (xj−1 , 0), (xj , 1), (xj+1 , 0), . . . , (xn+1 , 0)

Assegnati i dati (xi , yi ) è immediato verificare che il polinomio di grado n


cosı̀ definito
n+1
X
pn (x) = yj `j (x)
j=1

soddisfa le condizioni di interpolazione. Infatti


n+1
X
pn (xi ) = yj `j (xi ) = yi
j=1

Dall’unicità del polinomio di grado n interpolante n + 1 punti segue che


l’espressione del polinomio pn è dunque una seconda rappresentazione del
polinomio interpolante, prima definito in forma monomiale.
Si definisce quindi rappresentazione di Lagrange del polinomio pn inter-
polante i dati (xi , yi ) l’espressione
n+1
X
pn (x) = yj `j (x)
j=1

I polinomi `j (x) di grado n sono detti polinomi fondamentali di Lagrange


associati ai nodi xi .
2 APPROSSIMAZIONE DI FUNZIONI E DATI 19

2.4 Convergenza del polinomio di interpolazione


2.4.1 Funzione errore, norma infinito, convergenza uniforme
Denotato con pn (x) il polinomio interpolante la funzione f (x) nei punti
x1 , . . . , xn+1 , si definire errore di interpolazione la funzione
En (x) = f (x) − pn (x)
Data una funzione g(x) continua in [a, b], si definisce norma uniforme o
norma infinito della funzione g la quantità
||g||∞ = maxx∈[a,b] |g(x)|
Supponendo che f sia continua in [a, b] e che i punti xi siano tutti nel suddetto
intervallo, una misura naturale dell’errore è dunque ||En ||∞ .
Si dice che una successione di polinomi {pn }n∈N converge uniformemente
a f se e solo se
lim ||f − pn ||∞ = 0
n→∞
Non sempre un polinomio interpolante converge uniformemente. Si può di-
mostrare infatti il seguente teorema. Data una qualunque successione di nodi
distinti, tutti in [a, b], esiste sempre una funzione continua f (x) in tale in-
tervallo che, interpolata su quei nodi, genera una successione di polinomi di
interpolazione non uniformemente convergente a f (x).

2.4.2 Funzione di Runge


Si fornisce la seguente sottosezione al fine di dimostrare i problemi legati alla
convergenza uniforme scegliendo nodi distanti tra loro con distanza fissa.
Considerando dei nodi equispaziati in [a, b],
b−a
xi = a + (i − 1)h, i = 1, . . . , n + 1, h =
n
come nodi di interpolazione, l’esempio che segue mostra che la successione
dei polinomi interpolanti la funzione
1
f (x) =
1 + x2
infinitamente derivabile, detta funzione di Runge, non converge uniforme-
mente a f (x) in [a, b]. Infatti prendendo un intervallo del tipo [−5, 5], al ten-
dere del numero di nodi all’infinito, il limite della norma uniforme dell’errore
di interpolazione è addirittura infinito.
2 APPROSSIMAZIONE DI FUNZIONI E DATI 20

Considerando intervalli più ristretti e più vicini all’origine, l’errore converge


uniformemente a zero, al tendere del numero di nodi all’infinito.
2 APPROSSIMAZIONE DI FUNZIONI E DATI 21

2.5 Nodi di Chebyshev-Lobatto


Un’alternativa ai nodi equispaziati è rappresentata dalla seguente scelta.
Si definiscono nodi di Chebyshev-Lobatto i seguenti punti i
 
(i − 1)π
zi = − cos ∈ [−1, 1], i = 1, . . . , n + 1
n

Si definiscono nodi di Chebyshev i seguenti punti


 
(2i − 1)π
zi = − cos ∈ (−1, 1), i = 1, . . . , n + 1
2(n + 1)
Nel secondo caso non si considerano i punti estremi e si raddoppia la fre-
quenza di comparsa.

Scegliendo come nodi di interpolazione i punti


b−a b+a
xi = zi +
2 2
2 APPROSSIMAZIONE DI FUNZIONI E DATI 22

rappresentanti i nodi nell’intervallo [a, b], si può dimostrare che la successione


dei polinomi {pn (x)}, interpolanti una funzione f ∈ C 1 ([a, b]) in tali nodi,
converge uniformemente a f , al tendere del numero di essi all’infinito.
Più precisamente vale il seguente teorema. Sia {pn (x)} la successione dei
polinomi interpolanti f (x) nei nodi xi ∈ [a, b] di Chebyshev-Lobatto o di
Chebyshev. Se f ∈ C k ([a, b]), k ≥ 1, allora
 
log n
||f − pn ||∞ = O ,n → ∞
nk

Si deduce dal teorema che la convergenza è tanto più rapida quanto più è
regolare la funzione f . Se f è solo continua, la convergenza uniforme non è
garantita.
Ricapitolando, gli esempi precedenti mostrano dunque che:

ˆ a un aumento del grado n del polinomio interpolante, non corrisponde


necessariamente un miglioramento nell’approssimazione di una fun-
zione f ;

ˆ la convergenza uniforme del polinomio interpolante alla funzione inter-


polata dipende dalla scelta dei nodi e dalla regolarità di tale funzione;

ˆ la scelta dei nodi equispaziati non garantisce la convergenza uniforme,


neppure per funzioni dotate di derivata continua di qualunque ordine;

ˆ se f è continua con la sua derivata prima, la scelta dei nodi di Cheby-


shev o di Chebyshev-Lobatto invece garantisce la convergenza uni-
forme.
2 APPROSSIMAZIONE DI FUNZIONI E DATI 23

2.6 Funzioni polinomiali a tratti: spline


2.6.1 Spline
Si definisce funzione polinomiale a tratti di grado d associata a una
partizione dell’intervallo [a, b], una funzione continua in [a, b] e definita da
un’unione di tratti contigui di polinomi algebrici diversi, ciascuno di grado
d.
In generale il grado d viene scelto piccolo (d = 1, 2, 3).

Si osservi che le funzioni polinomiali a tratti sono continue ma, generalmente,


non sono derivabili nei punti di raccordo.
Le funzioni spline sono particolari funzioni polinomiali a tratti che soddis-
fano opportune proprietà di regolarità nei punti di raccordo.
Sia a ≡ x1 < x2 < . . . < xn+1 ≡ b una partizione dell’intervallo [a, b] e
yi = f (xi ). Si definisce spline di ordine d interpolante f nei nodi asseg-
nati, una funzione Sd (x) soddisfacente le seguenti condizioni:

1) Sd (x) è un polinomio di grado (al più) d per x ∈ [xi , xi+1 ];

2) la derivata k-esima della spline è una funzione continua per k = 0, 1, . . . , d−


1;

3) Sd (xi ) = yi .
2 APPROSSIMAZIONE DI FUNZIONI E DATI 24

2.6.2 Spline di ordine unitario


La spline S1 (x) ha la seguente espressione

f (xi+1 ) − f (xi )
S1 (x) = f (xi ) + (x − xi ), x ∈ [xi , xi+1 ]
xi+1 − xi
Ci si chiede ora se, aumentando il numero dei nodi di interpolazione in
un intervallo, la successione delle spline di ordine 1 converga ad f . A
tal proposito si può dimostrare il seguente teorema. Data una partizione
a ≡ x1 < x2 < . . . < xn+1 ≡ b, sia S1 la spline interpolante una funzione f
di classe 2 nei nodi dati. Denotato con h = max1≤i≤n (xi+1 − xi ), allora

||f − S1 ||∞ = O(h2 ), h → 0

La convergenza uniforme è comunque garantita qualunque sia la funzione


continua f e qualunque sia la scelta dei nodi xi per h → 0.

M.3 Matlab - Spline di ordine 1


ˆ s = interp1(x, y, z) calcola e memorizza in s i valori che la spline lineare
interpolante i dati xi , yi assume in z; i valori di ascisse e ordinate sono
memorizzati rispettivamente in x e y.

2.6.3 Spline cubiche


Le spline cubiche S3 (x) sono funzioni polinomiali a tratti di grado locale 3
molto utilizzate. Per determinarle occorrono 4 condizioni per ciascun sot-
tointervallo, tante quanti sono i coefficienti che definiscono la spline in ogni
sottointervallo
S3 (x) = ai x3 + bi x2 + ci x + di
e conseguentemente 4n condizioni in tutto. Imponendo le condizioni si hanno
quindi

ˆ n − 1 condizioni di continuità per la derivata k-esima, per k = 0, 1, 2


nei nodi interni x2 , . . . , xn ;

ˆ n + 1 condizioni di interpolazione nei nodi.


2 APPROSSIMAZIONE DI FUNZIONI E DATI 25

Si hanno perciò 4n − 2 condizioni imposte. Ne occorrono quindi altre due.


Si definiscono perciò le seguenti spline, catalogate in base alla scelta delle
condizioni mancanti.
Si dicono naturali le spline cubiche soddisfacenti le condizioni aggiuntive
(2) (2)
S3 (x1 ) = 0, S3 (xn+1 ) = 0

Si dicono invece not-a-knot le spline cubiche tali che


(3)
S3 è continua in x2 e in xn

Infine sono vincolate le spline tali che


(1) (1)
S3 (x1 ) = f 0 (x1 ), S3 (xn+1 ) = f 0 (xn+1 )

Per quanto riguarda la convergenza uniforme delle spline cubiche interpolanti


alla funzione interpolata, si può dimostrare il seguente teorema. Sia S3 (x)
la spline cubica interpolante (xi , f (xi )) con a ≤ xi ≤ b e soddisfacente una
delle tre condizioni aggiuntive. Denotato hi = xi+1 − xi e h = max1≤i≤n hi ,
se f ∈ C 2 ([a, b]) allora

||f − S3 ||∞ = O(h2 ), h → 0

Inoltre, nel caso delle condizioni not-a-knot o vincolata, se f ∈ C 4 ([a, b]) e se


h/hi ≤ γ < ∞ per h → 0 si ha
(p)
||f (p) − S3 ||∞ = O(h4−p ), h → 0, p = 0, 1, 2, 3

M.4 Matlab - Spline cubiche


ˆ s = spline(x, y, z) calcola e memorizza in s i valori che la spline cubica
interpolante (xi , yi ) e soddisfacente la condizione not-a-knot assume in
z;

ˆ s = spline(x, [yd1, y, ydn], z) calcola e memorizza in s i valori che la


spline cubica interpolante i dati e soddisfacente la condizione vincolata
assume in z.
2 APPROSSIMAZIONE DI FUNZIONI E DATI 26

2.6.4 Funzione degli errori


Un’importante applicazione dell’approssimazione di funzione è il calcolo degli
integrali. É noto che non sempre si riesce a calcolare analiticamente un
integrale. É questo il caso dell’integrale che definisce la funzione degli
errori Z x
2 2
erf (x) = √ e−t dt
π 0
In questi casi si può procedere approssimando l’integrale di f (x) mediante
l’integrale della spline S1 (x) lineare e interpolante f in nodi equispaziati
dell’intervallo di integrazione.

L’espressione che definisce il suddetto valore approssimato è detta formula


dei trapezi ed è implementata in Matlab.

M.5 Matlab - Formula dei trapezi


ˆ t = trapz(x, y) memorizza in t il valore approssimato dell’integrale
mediante la formula dei trapezi, ovvero l’integrale calcolato della spline
lineare interpolante i dati memorizzati in x e y.
3 SISTEMI LINEARI 27

3 Sistemi lineari
La risoluzione di un sistema lineare è un problema che si presenta in moltissime
applicazioni, sia come modello di un fenomeno fisico che come passo inter-
medio nella risoluzione numerica di tale modello. L’applicazione di metodi
numerici per l’approssimazione di dati e funzioni può richiedere la risoluzione
di sistemi lineari. Prima di analizzare i metodi, si richiamano alcune nozioni
sulle matrici e sui vettori.

3.1 Richiami di Algebra Lineare


3.1.1 Norme di vettore
Sia x =t (x1 , . . . , xn ) ∈ Rn un vettore colonna.
Si definiscono le seguenti norme:

ˆ ||x||1 = ni=1 |xi | norma 1;


P
pPn √
ˆ ||x||2 = 2
i=1 xi =
t xx norma euclidea;

ˆ ||x||∞ = max1≤i≤n |xi | norma infinito.

M.6 Matlab - Norme di vettori


ˆ norm(x, 1) fornisce la norma 1 del vettore x;

ˆ norm(x, 2) oppure norm(x) fornisce la norma 2 del vettore x;

ˆ norm(x, inf )) fornisce la norma infinito del vettore x.

3.1.2 Norme di matrice


Sia A = (aij ) ∈ Rm,n una matrice. Si definiscono le seguenti norme:

ˆ ||A||1 = max1≤j≤n m
P
i=1 |aij | norma 1;
Pn
ˆ ||A||∞ = max1≤i≤m j=1 |aij | = ||t A||1 norma infinito.

La norma 2 di matrice, detta norma spettrale, verrà definita in seguito.


Data una norma di matrice e una di vettore, si dice che le due norme sono
compatibili se
||Ax|| ≤ ||A||||x||
3 SISTEMI LINEARI 28

per ogni matrice e per ogni vettore nel relativo spazio. Le norme 1, 2 e
infinito precedentemente definite per vettori e matrici sono compatibili.

M.7 Matlab - Norme di matrice


ˆ norm(A, 1) fornisce la norma 1 della matrice;

ˆ norm(A, inf ) fornisce la norma infinito della matrice.

3.1.3 Matrici particolari


Una matrice A ∈ Rn,n si dice

ˆ triangolare superiore se
 
∗ ∗ ∗
A = 0 ∗ ∗ ossia se aij = 0, i > j
0 0 ∗

ˆ triangolare inferiore se
 
∗ 0 0
A = ∗ ∗ 0 ossia se aij = 0, i < j
∗ ∗ ∗

ˆ diagonale se
 
∗ 0 0
A = 0 ∗ 0 ossia se aij = 0, i 6= j
0 0 ∗

ˆ tridiagonale se
 
∗ ∗ 0
A = ∗ ∗ ∗ ossia se aij = 0, |i − j| > 1
0 ∗ ∗

ˆ Hessenberg superiore se
 
∗ ∗ ∗
A = ∗ ∗ ∗ ossia se aij = 0, i > j + 1
0 ∗ ∗
3 SISTEMI LINEARI 29

Altri definizioni di matrici utili allo studio sono le seguenti.


Si definisce traposta di A, denotata t A, la matrice le cui righe sono le colonne
di A.
Si definisce simmetrica una matrice quadrata tale che t A = A.
Si definisce inversa di A quadrata, denotata A−1 , la matrice tale che A−1 A =
AA−1 = I.
Si dice ortogonale la matrice quadrata tale che t AA = At A = I. Pertanto
l’inversa di una ortogonale coincide con la trasposta.

3.1.4 Matrici a blocchi


Una matrice a blocchi o partizionata a blocchi è una matrice descritta
in sottomatrici anziché in elementi. Per esempio, denotando con aj il j-esimo
vettore colonna, ogni matrice A con n colonne può essere scritta come

A = a1 a2 . . . an

E analogamente nel caso delle righe.


La matrice trasposta di una matrice partizionata a blocchi si ottiene traspo-
nendo ogni sua sottomatrice. Quando il numero dei blocchi e le loro dimen-
sioni sono compatibili, si può procedere con le classiche operazioni di somma
e prodotto.
Quest’ultima proprietà è alla base degli algoritmi utilizzati dai calcolatori,
poiché permette di ricondurre il calcolo di un prodotto tra matrici a somme
di prodotti tra matrici di ordine minore.
Una matrice triangolare a blocchi (superiore o inferiore) è una matrice
quadrata che ha blocchi quadrati sulla diagonale e i cui blocchi (sopra o sotto
ad essa) sono nulli. Per questa tipologia di matrici vale la relazione
n
Y
det(A) = det(Aii )
i=1

Rimuovendo i blocchi al di fuori della diagonale si ottiene una matrice di-


agonale a blocchi.

3.1.5 Matrici di permutazione


Si definisce matrice di permutazione una matrice ottenuta permutando
le righe della matrice identità.
3 SISTEMI LINEARI 30

Le matrici di permutazione in ogni riga e in ogni colonna hanno un solo


elemento diverso da zero e uguale a uno. Sono inoltre matrici ortogonali.
Sono utilizzate nella moltiplicazione per matrici o vettori al fine di realizzare
scambi rispettivamente di righe o componenti.

3.1.6 Matrici a diagonali dominanti


Una matrice A ∈ Rm,n si dice diagonale dominante per righe se il val-
ore assoluto dell’elemento sulla diagonale è maggiore della somma dei valori
assoluti degli altri n − 1 elementi presenti sulla riga. Ovvero
n
X
|aii | > |aij |
j=1,j6=i

Analogo risultato si ottiene per una matrice a diagonale dominante per


colonne.

3.1.7 Matrici definite


Una matrice simmetrica A si dice definita (semidefinita) positiva [negativa]
se
t
xAx > (≥)[<][(≤)]0
per ogni vettore non nullo.
3 SISTEMI LINEARI 31

3.2 Condizionamento di un sistema lineare


Si consideri un sistema lineare di n equazioni in n incognite.


 a11 x1 + a12 x2 + · · · + a1n xn = b1

a x + a x + · · · + a x = b
21 1 22 2 2n n 2


 ···
an1 x1 + an2 x2 + · · · + ann xn = bn

Esso può essere scritto, come noto dall’Algebra, in forma matriciale

AX = B

. Si assuma che il sistema assegnato abbia una e una sola soluzione; in tal
caso la matrice A è detta non singolare.
Prima di discutere i metodi numerici di base, è opportuno esaminare il con-
dizionamento del problema. Si denotino Ā e B̄ i dati perturbati e con x̄ la
soluzione in aritmetica esatta del sistema perturbato.

ĀX̄ = B̄

Nello studio del condizionamento bisogna confrontare l’errore relativo associ-


ato alla soluzione perturbata con gli errori relativi associati ai dati perturbati,
al fine di verificare che questi ultimi non influenzino troppo il risultato.
Si può dimostrare il seguente teorema. Se ||A − Ā|| < 1/(2||A−1 ||), il sistema
perturbato ammette una e una sola soluzione e
 
||X − X̄|| ||A − Ā|| ||B − B̄||
≤ 2K(A) +
||X|| ||A|| ||B||
ove
K(A) = ||A||||A−1 ||
viene definito numero di condizionamento del sistema lineare AX = B.
Si osservi che

K(A) = ||A||||A−1 || ≥ ||AA−1 || = ||I|| = 1

Pertanto, se K(A) ≈ 1 allora la matrice A è detta ben condizionata; se


K(A) >> 1 la matrice è detta mal condizionata.
3 SISTEMI LINEARI 32

3.2.1 Matrici mal condizionate


Esempi classici di mal condizionamento sono due matrici: la matrice di
Hilbert  
1 1/2 ··· 1/n
 1/2 1/3 · · · 1/(n + 1) 
Hn =  ..
 
.. ... .. 
 . . . 
1/n 1/(n + 1) · · · 1/(2n − 1)
e la matrice di Vandermonde
 
xn1 · · · x1 1
 xn · · · x2 1
 2
Vn =  ..

.. .. .. 
 . . . .
xnn+1 · · · xn+1 1

M.8 Matlab - Condizionamento


ˆ cond(A, 1) fornisce il numero di condizionamento in norma 1 del sistema
AX = B;

ˆ cond(A, inf ) fornisce il numero di condizionamento in norma infinito


del sistema AX = B;

ˆ hilb(n) genera la matrice di Hilbert di ordine n;

ˆ vander(x) genera la matrice di Vandermonde associata al vettore x con


tutte le sue componenti.
3 SISTEMI LINEARI 33

3.3 Metodi numerici


Si descrivono ora alcuni metodi numerici e gli algoritmi che li implementano
per la risoluzione di sistemi lineari di ordine n.
Per ciascun algoritmo verrà fornito il costo computazionale, ovvero il nu-
mero di operazione che esso necessita per la sua esecuzione. Il costo è gen-
eralmente legato alla dimensione n del sistema.

3.3.1 Metodi numerici per sistemi diagonali


Vengono dapprima esaminati i metodi per la risoluzione di sistemi lineari, la
cui matrice dei coefficienti ha una struttura particolare come quella triango-
lare.
Se la matrice dei coefficienti A è diagonale, la soluzione del sistema si ricava
immediatamente mediante le n divisioni
bi
xi =
aii

3.3.2 Metodi numerici per sistemi triangolari superiori


Se la matrice A è triangolare superiore, la soluzione si ottiene ricavando
l’incognita xn dall’ultima equazione, xn−1 dalla penultima e cosı̀ via per ogni
incognita.
bn
xn =
ann
bn−1 − an−1,n xn
xn−1 =
an−1,n−1
..
.
b1 − nj=2 a1j xj
P
x1 =
a11
Tale procedura è nota come metodo di sostituzione all’indietro. L’algoritmo
che implementa il suddetto metodo è dunque
bn
xn =
ann
Pn
bi − j=i+1 aij xj
xi =
aii
2
Il costo computazionale è di n /2 per n grande.
3 SISTEMI LINEARI 34

M.9 Matlab - Metodo di sostituzione all’indietro


Di seguito, l’algoritmo in Matlab del metodo di sostituzione all’indietro.
f unction x = indietro(A, b)
n = length(b);
x = zeros(n, 1);
x(n) = b(n)/A(n, n);
f or i = n − 1 : −1 : 1
→ s = 0;
→ f or j = 1 + 1 : n
→→ s = s + A(i, j) ∗ x(j);
→ end
→ x(i) = (b(i) − s)/A(i, i);
end

3.3.3 Metodi numerici per sistemi triangolari inferiori


Se la matrice A è triangolare inferiore, la soluzione si ottiene ricavando
l’incognita x1 dalla prima equazione, x2 dalla seconda e cosı̀ via analoga-
mente ai sistemi superiori. Il metodo utilizzato prende il nome di metodo
di sostituzione in avanti e l’algoritmo che lo implementa è dunque
b1
x1 =
a11
Pi−1
bi − j=1 aij xj
xi =
aii
Il costo computazionale è di n2 /2 per n grande.

M.10 Matlab - Metodo di sostituzione in avanti


f unction x = indietro(A, b)
n = length(b);
x = zeros(n, 1);
x(1) = b(1)/A(1, 1);
f or i = 2 : n
→ s = A(i, 1; i − 1) ∗ x(1 : i − 1);
→ x(i) = (b(i) − s)/A(i, i);
end
3 SISTEMI LINEARI 35

3.3.4 Metodo delle eliminazioni di Gauss e fattorizzazione A = LU


Il metodo delle eliminazioni di Gauss, insieme alla regola di Cramer, rapp-
resenta un metodo classico dell’algebra lineare per la risoluzione di sistemi
AX = B. Il costo computazionale del metodo è di n3 /3; quello della regola
di Cramer è di ordine (n + 1)!. Un costo del genere è fin troppo elevato an-
che per calcolatori di altissima fascia, basti dire che per risolvere un sistema
di n = 24 equazioni un calcolatore in grado di eseguire 1015 operazioni al
secondo impiega 4.6 · 10−12 secondi con il primo metodo e 492 anni con il
secondo.
Se la matrice A non ha una struttura particolare, per risolvere il sistema
lineare di ordine n si può utilizzare il metodo di Gauss. Esso consta di due
fasi: trasformazione, in n − 1 passi, dal sistema AX = B a quello U X = B̄
equivalente con U matrice triangolare superiore e risoluzione mediante sos-
tituzione all’indietro. Non si riportano qui tutti i passi ma solo l’algoritmo
finale implementato Matlab.
Per il corretto funzionamento del metodo è necessario che al passo k risulti
(k)
akk 6= 0. Tale condizione è soddisfatta se la matrice A è a diagonale dom-
inante per righe e per colonne e se risulta simmetrica e definita positiva.
Considerando le matrici L ed U definite rispettivamente matrice triangolare
inferiore tale che
`ii = 1, `ij = aij per i > j
e matrice triangolare superiore tale che

uij = aij per j ≥ i

Si osserva che il prodotto LU forma la matrice A e si ha

A = LU

M.11 Matlab - Metodo di Gauss


f unction x = gauss noscambi(A, b)
n = length(b);
f or k = 1 : n − 1
→ f or i = k + 1 : n
→→ A(i, k) = a(i, k)/A(k, k);
→→ f or j = k + 1 : n
→→→ A(i, j) = A(i, j) − A(i, k) ∗ A(k, j);
3 SISTEMI LINEARI 36

→→ end
→→ b(i) = b(i) − A(i, k) ∗ b(k);
→ end
end
x = zeros(n, 1);
x(n) = b(n)/A(n, n);
f or i = n − 1 : −1 : 1
→ x(i) = (b(i) − A(i, i + 1 : n) ∗ x(i + 1 : n))/A(i, i);
end

M.12 Matlab - A = LU
L’esempio precedente mostra che il metodo di Gauss non richiede scambi e
realizza la fattorizzazione
A = LU
ove U è la matrice triangolare superiore del sistema equivalente a quello di
partenza e L quella inferiore dei moltiplicatori con diagonale unitaria.
Per determinare le due matrici occorre aggiungere nell’algoritmo di Gauss le
due istruzioni che le generano.
f unction[L, U ] = elleu(A)
n = size(A, 1);
f or k = 1 : n − 1
→ f or i = k + 1 : n
→→ A(i, k) = A(i, k)/A(k, k);
→→ f or j = k + 1 : n
→→→ A(i, j) = A(i, j) − A(i, k) ∗ A(k, j);
→→ end
→ end
end
L = tril(A, −1) + eye(n);
U = triu(A);
3 SISTEMI LINEARI 37

3.4 Fattorizzazione P A = LU e applicazioni


3.4.1 Fattorizzazione P A = LU
Nel caso al passo k-esimo non fossero rispettate le condizioni, è necessario
eseguire degli scambi. Il metodo realizza un’altra fattorizzazione
P A = LU
con le medesime caratteristiche ma con P matrice di permutazione, definita
dagli scambi richiesti dal metodo. Il costo computazionale rimane di n3 /3
per n grande.
Per garantire una migliore stabilità numerica dell’algoritmo conviene operare
uno scambio anche quando il valore è diverso da zero, poiché il moltiplica-
tore risulterebbe grande e potrebbe amplificare gli errori di arrotondamento.
Pertanto conviene utilizzare moltiplicatori piccoli ottenuti da un’opportuna
(k)
scelta degli elementi pivot akk . Questa strategia è detta pivoting parziale.

M.13 Matlab - P A = LU
ˆ X = A/B calcola la soluzione x del sistema mediante le eliminazioni
di Gauss con pivoting parziale. É importante sapere che il comando
richiama un algoritmo diverso a seconda delle caratteristiche di A; se
la matrice non soddisfa le condizioni previste allora viene calcolata una
generica fattorizzazione P A = LU ;
ˆ [L, U, P ] = lu(A) calcola i fattori L, U, P della fattorizzazione P A = LU
di A.

3.4.2 Risoluzioni di un sistema lineare AX = B


Per la risoluzione di un sistema lineare AX = B si può procedere con
AX = B ⇒ P AX = P B ⇒ L |{z}
UX = PB
Y

da cui segue la risoluzione di due sistemi triangolari


(
LY = P B ⇒ Y
UX = Y ⇒ X
Se i fattori L, U, P della fattorizzazione sono noti, il costo della risoluzione è
soltanto n2 ; altrimenti il costo sale a n3 /3 come già precedentemente definito.
3 SISTEMI LINEARI 38

3.4.3 Calcolo del determinante di una matrice


Per il calcolo del determinante di A si può cosı̀ procedere

det(P A) = det(LU ) ⇒ det(P )det(A) = det(L)det(U )

Poiché det(L) = 1, det(U ) = ni=1 uii e si dimostra che det(P ) = (−1)s ove
Q
s è il numero totale degli scambi di equazioni richiesti dal metodo. Si ha
n
Y
s
det(A) = (−1) uii
i=1

Questa procedura è alla base del comando Matlab det(A).

3.4.4 Calcolo dell’inversa di una matrice


Un metodo efficiente e ottimale per il costo computazionale per il calcolo
dell’inversa di una matrice è il seguente

P A = LU ⇒ (P A)−1 = (LU )−1 ⇒ A−1 P −1 = U −1 L−1

da cui si ricava l’inversa. Il costo è di circa n3 .

3.4.5 Risoluzione di più sistemi lineari AXi = Bi


Per la risoluzione di p sistemi lineari aventi tutti la stessa matrice A è utile
usare la fattorizzazione P A = LU e risolvere due sistemi triangolari per
ciascun sistema. Il costo è di circa n3 /3 + pn2 . Se p è molto più piccolo di n
il secondo termine è trascurabile.
3 SISTEMI LINEARI 39

3.5 Fattorizzazione di Choleski e applicazioni


3.5.1 Fattorizzazione di Choleski
Per le matrici simmetriche e definite positive si può dimostrare il seguente
teorema. Sia A una matrice simmetrica e definita positiva, si dimostra che
per essa esiste ed è unica la fattorizzazione

A =t RR

ove R è una matrice triangolare superiore con elementi positivi sulla diagonale
principale. Tale è la fattorizzazione di Choleski.
Il calcolo del fattore R si ottiene mediante algoritmo il quale costo è n3 /6.

M.14 Matlab - Choleski


ˆ R = chol(A) calcola il fattore R triangolare superiore della fattoriz-
zazione di Choleski per la matrice simmetrica e definita positiva A.

3.5.2 Risoluzione di un sistema lineare AX = B


Per la risoluzione di un sistema lineare AX = B, con A fattorizzabile, un
algoritmo efficiente è il seguente
(
t
t RY = B ⇒ Y
AX = B ⇒ R |{z} RX = B ⇒
Y
RX = Y ⇒ X

3.5.3 Calcolo dell’inversa di una matrice


Per il calcolo dell’inversa di una matrice A adatta, si può procedere con

A =t RR ⇒ A−1 = (t RR)−1 = R−1 (t R)−1

Per ridurne il costo computazionale conviene scrivere

A−1 = R−1 (t R−1 )

Il costo risulta 2n3 /3.


3 SISTEMI LINEARI 40

3.6 Fattorizzazione QR e applicazioni


Ogni matrice A ∈ Rm,n è fattorizzabile nella forma

A = QR

con Q ∈ Rm,m ortogonale ed R ∈ Rm,n con elementi rij = 0 per i > j.


I vettori colonna della matrice Q sono a due a due ortogonali. La fattoriz-
zazione QR non è unica.
Sia A ∈ Rm,n , m ≤ n di rango massimo n. Allora il fattore R della fattoriz-
zazione si riscrive come  

R=
0
con 0 matrice nulla e R̃ triangolare superiore non singolare. Inoltre A può
essere scritta in modo unico nella forma

A = Q̃R̃

con Q̃ ∈ Rm,n avente vettori colonna ortonormali ed R̃ ∈ Rn,n triangolare


superiore non singolare con elementi diagonali positivi.

M.15 Matlab - QR
ˆ [Q, R] = qr(A) data la matrice A di dimensioni m×n, calcola un fattore
ortogonale Q di dimensioni m × m e uno R di dimensioni m × n tali
che A = QR.

3.6.1 Risoluzione di un sistema lineare determinato


Per la risoluzione di un sistema AX = B con A ∈ Rn,n non singolare, noti
i fattori Q, R della fattorizzazione A = QR, con Q ∈ Rn,n ortogonale e
R ∈ Rn,n triangolare superiore e non singolare, si procede con

AX = B ⇒ QRX = B ⇒ RX =t QB

3.6.2 Risoluzione di un sistema lineare sovradeterminato


La fattorizzazione A = QR si utilizza anche per la risoluzione di un sistema
lineare
AX = B, A ∈ Rm,n , X ∈ Rn , B ∈ Rm , m > n
3 SISTEMI LINEARI 41

ovvero di un sistema sovradeterminato, in cui le equazioni sono maggiori


delle incognite (vincoli > gradi di libertà).
Un sistema sovradeterminato può non ammettere soluzione in senso classico.
In altre parole, indipendentemente dal rango, massimo o non, della matrice
A, può non esistere un vettore X che soddisfi contemporaneamente tutte le
equazioni del sistema e per il quale AX − B è il vettore nullo.
Se il sistema non ammette soluzione in senso classico, allora si cercano i
vettori X per i quali il vettore residuo AX − B è piccolo.
Pertanto si fissa una norma vettoriale ||.|| e si ricercano i vettori X che
minimizzano ||AY − B|| con Y ∈ Rn .
Si dice allora che il vettore X è soluzione del sistema sovradeterminato AX =
B rispetto alla norma se
min ||AY − B|| = ||AX − B||
Y ∈Rn

Scegliendo la norma euclidea si definisce il problema


min ||AY − B||2
Y ∈Rn

anche detto problema dei minimi quadrati. La sua soluzione X è un


vettore tale che
minn ||AY − B||2 = ||AX − B||2
Y ∈R
ed è detto soluzione nel senso dei minimi quadrati.
Il teorema che segue caratterizza l’insieme dei vettori soluzione del prob-
lema dei minimi quadrati. Il problema dei minimi quadrati ammette sempre
soluzione, ossia l’insieme dei vettori soluzioni non è vuoto. Inoltre
ˆ X ∈ X se e solo se
t
AAX =t AB
Tale sistema viene detto sistema delle equazioni normali o sistema
normale;
ˆ L’insieme X si riduce ad un solo elemento se e solo se la matrice A ha
rango massimo;
ˆ Esiste uno e un solo vettore tale che
||X||2 = min ||X||2
X∈X

Tale vettore è detto soluzione di minima norma.


4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 42

4 Autovalori e valori singolari di matrici


4.1 Richiami di Algebra Lineare
Data una matrice A ∈ Rn,n , un numero λ (reale o complesso) si dice auto-
valore di A se esiste un vettore non nullo x soluzione del sistema omogeneo:

Ax = λx o in alternativa [A − λI]x = 0

Il vettore x è detto autovettore di A corrispondente all’autovalore λ.


É facile verificare che ogni autovettore è definito a meno di una costante
moltiplicativa. Dalla definizione si ha che λ è autovalore di A se e solo se la
matrice A − λI è singolare.
Pertanto gli autovalori di A coincidono con le n radici dell’equazione carat-
teristica (algebrica di grado n)

det(A − λI) = 0

Ne consegue che una matrice quadrata di dimensione n ha esattamente n


autovalori non necessariamente diversi. Si osservi che, poiché gli elementi di
A sono numeri reali, allora l’equazione caratteristica ha coefficienti reali e, di
conseguenza, se A ammette autovalore un complesso λ allora anche λ̄ sarà
autovalore.
La definizione di autovalore-autovettore

Axi = λi xi

consente di scrivere

(Ax1 , Ax2 , . . . , Axn ) = (λ1 x1 , λ2 x2 , . . . , λn xn )

ovvero
AX = XD
ove  
λ1 0
 λ2 
X = (x1 , x2 , . . . , xn ), D = 
 
.. 
 . 
0 λn
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 43

M.16 Matlab - Autovalori


ˆ d = eig(A) restituisce il vettore d contenente tutti gli autovalori di A;

ˆ [X, D] = eig(A) restituisce la matrice diagonale D i cui elementi sono


gli autovalori di A e la matrice X i cui vettori colonna sono i corrispon-
denti autovettori.
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 44

4.2 Definizioni e metodi


4.2.1 Quoziente di Rayleigh
Data una matrice A di ordine n e un vettore non nullo x di dimensione n si
definisce quoziente di Rayleigh il numero

xH Ax
rA (x) =
xH x
ove xH denota il vettore trasposto coniugato di x, ovvero il vettori i cui el-
ementi sono i coniugati x̄j degli elementi xj . Se gli elementi di x sono tutti
reali, allora xH =t x.
Si osservi che se x è un autovettore con autovalore λ si ha rA (x) = λ. Per-
tanto noto l’autovalore di A, un corrispondente autovettore può essere calco-
lato risolvendo il sistema omogeneo Ax = λx; viceversa noto l’autovettore,
l’autovalore si può calcolare mediante il quoziente di Rayleigh. Si enuncia
infine la seguente proprietà. Una matrice simmetrica A di ordine n è definita
positiva se e solo se i suoi autovalori sono tutti positivi.

4.2.2 Raggio e norma spettrale


Si definisce raggio spettrale della matrice A di ordine n il modulo dell’autovalore
di massimo modulo, cioè

ρ(A) = max {|λi | : λi è autovalore di A}


i=1,...,n

Il raggio spettrale di una matrice si può calcolare in Matlab mediante il


comando max(abs(eig(A))).
Si definisce norma 2 o norma spettrale di A ∈ Rm,n il numero reale
positivo p
||A||2 = ρ(t AA)
Se la matrice è simmetrica quadrata, allora il raggio e la norma coincidono.

4.2.3 Cerchio di Gershgorin


Nell’applicazione di alcuni metodi numerici è necessario localizzare gli auto-
valori complessi. A tal scopo seguono le definizioni di cerchio riga e colonna.
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 45

Si definisce cerchio riga di Gershgorin associato alla i-esima riga di A


l’insieme ( )
n
X
(r)
Ci = z ∈ C : |z − aii | ≤ |aij |
j=1,j6=i

e analogamente il cerchio colonna di Gershgorin


( n
)
(c)
X
Cj = z ∈ C : |z − ajj | ≤ |aij |
i=1,i6=j

Vale il seguente teorema.


(r) (c)
Tutti gli autovalori di A appartengono a R = ni=1 Ci e a C = nj=1 Cj ,
S S
ovvero appartengono alla loro intersezione.

4.2.4 Diagonalizzazione
Due matrici A e B di ordine n si dicono simili se esiste una matrice S di
ordine n e non singolare tale che

S −1 AS = B

Due matrici simili A e B hanno gli stessi autovalori.


Una matrice A con autovalori λi si dice diagonalizzabile se è simile alla
matrice diagonale D = diag(λ1 , . . . , λn ), ovvero se esiste una matrice di
ordine n e non singolare S tale che

S −1 AS = D = diag(λ1 , . . . , λn )

Si può dimostrare che le colonne della matrice S sono gli autovettori di A.


Una matrice A di ordine n è infatti diagonalizzabile se e solo se A possiede n
autovettori linearmente indipendenti. Inoltre lo è anche se i suoi autovalori
sono tutti distinti.
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 46

4.3 Condizionamento del calcolo degli autovalori


Si studia ora il condizionamento del problema del calcolo degli autovalori di
una matrice A ovvero si analizza come eventuali perturbazioni si propaghino
sugli autovalori. Una misura del condizionamento è fornita dal teorema di
Bauer-Fike: date una matrice A diagonalizzabile e una S invertibile tale
che S −1 AS = D con D = diag(λ1 , . . . , λn ), sia Ā una perturbazione della
matrice A e sia λ̄ un autovalore di tale perturbazione. Allora

min |λ̄ − λi | ≤ K(S)||A − Ā||


1≤i≤n

dove K(S) = ||S||||S −1 || in norma infinito, 1 o spettrale.


In Matlab si usa il comando c = condeig(A) per avere il vettore c contenente
i numeri di condizionamento di ciascun autovalore di A.
Se il numero di condizionamento si avvicina a 1, allora il problema è ben
condizionato.
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 47

4.4 Metodi numerici


Per il calcolo degli autovalori e autovettori di una matrice A, la procedura
matematica utilizzata a mano (calcolo radici λ dell’equazione caratteristica
e risoluzione AX = λx) non è in generale conveniente a calcolatore. Es-
istono metodi alternativi, i principali si suddividono in due gruppi: metodi
per l’approssimazione di un solo autovalore e metodi per l’approssimazione
simultanea di tutti gli autovalori.

4.4.1 Metodo delle potenze


Il primo metodo, per un solo autovalore, consente di calcolare quello di mod-
ulo massimo e conseguentemente il raggio spettrale ρ(A). L’idea del metodo
si basa su una matrice A diagonalizzabile con un unico autovalore di modulo
massimo λ1 . Detti xi gli autovettori degli autovalori di A, essi sono linear-
mente indipendenti e pertanto ogni vettore z ∈ Rn si rappresenta come

z = α 1 x1 + · · · + α n xn

Moltiplicando per la matrice si ottiene

Az = α1 Ax1 + · · · + αn Axn = α1 λ1 x1 + · · · + αn λn xn

Continuando a moltiplicare per A e iterando la procedura, dopo m moltipli-


cazioni si ha
Am z = α1 λm m
1 x1 + · · · + αn λn xn

Tale vettore si può riscrivere raccogliendo l’autovalore massimo λm


1 e, per
m → ∞, ciò comporta che tutto ciò che moltiplica, definito come y m , tende
ad allinearsi con l’autovettore corrispondente.

4.4.2 Metodo delle potenze inverse


Una variante del metodo sopra citato consente di approssimare un qualunque
autovalore λ di A purché se ne conosca un’approssimazione p.
Osservando che Ax = λx, segue

(A − pI)x = AX − px = (λ − p)x

Conseguentemente,
1
(A − pI)−1 x = x
λ−p
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 48

e dunque il termine (λ − p)−1 è autovalore della matrice (A − pI)−1 . Se allora


1
p è vicino all’autovalore λ di A, il numero µ = λ−p è l’autovalore di modulo
−1
massimo di (A − pI) . Applicando il metodo delle potenze alla sua matrice,
si determina µ e quindi
1
λ=p+
µ

4.4.3 Metodo QR
Il metodo più efficiente utilizzato per il calcolo di tutti gli autovalori è il
metodo QR, basato sulla fattorizzazione A = QR.
Viene generata una successione di matrici nel modo seguente

A1 = A

Si calcola una fattorizzazione QR della matrice Ak

Ak = Qk Rk

ove Qk è ortogonale e Rk è triangolare superiore, e si definisce la matrice

Ak+1 = Rk Qk

Dalle relazioni precedenti risulta che A2 è simile ad A1 ,

A2 = R1 Q1 =t Q1 Q1 R1 Q1 =t Q1 A1 Q1

quindi A2 ha gli stessi autovalori di A. Si itera cosı̀ per ogni Ak successivo.


4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 49

4.5 Valori singolari e decomposizione SV D


Le nozioni di autovalore, determinante e inversa perdono di significato per
una matrice rettangolare; esse vengono sostituite con le nozioni generalizzate
di valore singolare, rango e pseudo-inversa di una matrice. Il termine valore
singolare è collegato al fatto che mediante tale quantità è possibile deter-
minare la distanza di una matrice dall’insieme della matrici singolari.
Ogni matrice A ∈ Rm,n è fattorizzabile nella forma
t
U AV = S = diag(s1 , . . . , sp ) ∈ Rm,n , p = min{m, n}

con U ∈ Rm,m e V ∈ Rm,n matrici ortogonali e

s1 ≥ s2 ≥ . . . ≥ sp ≥ 0

Questa fattorizzazione è detta decomposizione ai valori singolari di A


(SV D). I valori si sono detti valori singolari di A e i vettori colonna
vi di V e i ui di U sono definiti vettori singolari destri o sinistri di A
rispettivamente.
Essendo U e V ortogonali, la decomposizione si può scrivere

A = U S tV

In Matlab la funzione è implementata come d = svd(A) o [U, S, V ] = svd(A).


Le proprietà della decomposizione sono

1. rg(A) = r;

2. A = Ur Sr t Vr ;

3. le colonne ui di U formano una base ortonormale dello spazio vettoriale


immagine di A, cioè Im(A) = {Ax : x ∈ Rn };

4. le colonne vi di V formano una base ortonormale dello spazio vettoriale


nucleo di A, cioè Ker(A) = {x ∈ Rn : Ax = 0}.

Il metodo SVD è utilizzato in Matlab per calcolare il rango di una matrice,


il condizionamento di una matrice, risolvere un sistema lineare determinato
o sovradeterminato.
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 50

Corso
Corso: Algebra Lineare e Geometria (e fondamenti di Calcolo Numerico)
Carico: 10 CFU
Docenti: Pintore M.

Bibliografia
ˆ Materiale didattico fornito dal Politecnico di Torino.

ˆ TeX Maker per l’editor LATEX

Potrebbero piacerti anche