Università degli Studi di Cagliari
Dipartimento di Matematica
Dispense di Calcolo Numerico
Giuseppe Rodriguez
2
Capitolo 1
Introduzione
L’Analisi Numerica è lo studio degli algoritmi
per i problemi della matematica del continuo.
Questa definizione, data da L.N. Trefethen chiarisce quali sono gli obiettivi dell’Analisi Numerica, cioè sviluppare ed analizzare algoritmi (chiariremo in seguito
il significato esatto di questo ed altri termini) per risolvere una particolare classe
di problemi, e precisamente quelli che coinvolgono variabili reali o complesse.
La particolarità della risoluzione di questi problemi consiste nel fatto che,
nella generalità dei casi, è necessario operare su dati affetti da errori. Questi
possono essere dovuti alla misurazione dei dati (errori sperimentali) o semplicemente al fatto che essi devono essere memorizzati con un numero finito di cifre
(errori di arrotondamento).
Se un problema è risolubile con un algoritmo finito, l’analisi si limita allo studio
della propagazione degli errori. In molti casi, però, per necessità o convenienza
si ricorre ad un algoritmo infinito, in cui la soluzione è ricavata come limite di una
successione, o si discretizza un modello continuo, dando origine ad altri tipi di
errori sui risultati: gli errori di troncamento e di discretizzazione.
Cominciamo con l’introdurre alcuni concetti fondamentali.
1.1
Buona posizione e condizionamento
Sempre più spesso la Matematica viene utilizzata per risolvere problemi di interesse per le scienze applicate. Talvolta si ha la necessità di prevedere l’esito di
un fenomeno, in altri casi si vuole simulare l’andamento di un processo che, per
qualche motivo, non si può osservare sperimentalmente.
In ogni caso, il primo passo consiste nel costruire un modello matematico
del fenomeno sotto studio, vale a dire un complesso di formule che descrivano
1–1
1–2
CAPITOLO 1. INTRODUZIONE
il suo comportamento. Questo compito è tutt’altro che semplice e richiede una
conoscenza profonda della Fisica che governa il fenomeno.
Spesso le equazioni così ottenute sono troppo complicate per poter essere
risolte direttamente. In questi casi si associa al modello matematico un problema numerico in cui viene introdotta qualche semplificazione o approssimazione,
allo scopo di renderlo risolubile numericamente su un calcolatore.
Nel 1924 J. Hadamard diede la seguente definizione di problema ben posto
Definizione 1.1 Un problema è ben posto se esso possiede, in un prefissato
campo di definizione, una e una sola soluzione e questa dipende con continuità
dai dati. In caso contrario, viene detto mal posto.
Esempio 1.1 Esempi di problemi mal posti:
1. Trovare x ∈ R che soddisfa l’equazione x2 + 1 = 0 (la soluzione non esiste).
2. Trovare x, y ∈ R che soddisfano l’equazione x + y = 1 (manca l’unicità).
Quando il terzo requisito viene violato, quando cioè il problema è instabile, può
accadere che una piccolissima perturbazione sui dati possa portare ad una
soluzione molto differente da quella corrispondente ai dati esatti.
Quest’ultima proprietà è particolarmente importante nelle applicazioni reali,
in cui si ha che fare con dati misurati sperimentalmente e quindi affetti da errore.
Per questo motivo, anche quando il problema è stabile si cerca di dare una misura quantitativa di come la sua soluzione venga influenzata da una perturbazione
dei dati. Questa caratterizzazione viene detta condizionamento del problema.
Definizione 1.2 Sia δd una perturbazione dei dati d di un problema e sia δx la
corrispondente perturbazione sulla sua soluzione x. Sia inoltre k · k una qualsiasi norma vettoriale. Il numero di condizionamento assoluto K = K (d) è
definito dalla relazione
kδx k ≤ K kδdk,
mentre il numero di condizionamento relativo (o, semplicemente, numero di
condizionamento) κ = κ (d) verifica la diseguaglianza
kδdk
kδx k
≤κ
.
kxk
kdk
Il condizionamento misura, quindi, quanto un errore sui dati possa essere amplificato nei risultati. Osserviamo che la propagazione dell’errore dovuta ad un
elevato condizionamento non dipende dal metodo utilizzato per la risoluzione del
problema e quindi non è legata all’utilizzazione di un calcolatore elettronico, ma
si verificherebbe anche se i calcoli venissero effettuati a mano.
1.2. ALGORITMI
1–3
Esempio 1.2 Calcoliamo il numero di condizionamento del prodotto tra due numeri x e
y, introducendo una perturbazione su ciascuno di essi e studiandone la propagazione.
Siano ε x e ε y tali che |ε x |, |ε y | ≤ τ . Tralasciando gli infinitesimi di ordine superiore, si
ha
x (1 + ε x ) · y(1 + ε y ) ' xy(1 + ε x + ε y ).
La perturbazione relativa ε xy = ε x + ε y sul prodotto verifica la diseguaglianza ε xy ≤ 2τ ,
di conseguenza il numero di condizionamento è 2. Questo valore è decisamente soddisfacente perché indica che nel peggiore dei casi gli errori presenti sugli operandi si sommeranno tra loro. Potrebbe quindi verificarsi un accumulo eccessivo solo nel prodotto di
molti fattori.
1.2
Algoritmi
Definizione 1.3 Un algoritmo è una sequenza univoca di un numero finito di
operazioni elementari che stabilisce come calcolare la soluzione di un problema,
assegnati certi dati iniziali.
Sottolineiamo l’importanza di alcune parole presenti nella definizione:
sequenza univoca non è sufficiente dare una formula, deve essere chiaro anche in che ordine bisogna eseguire le operazioni;
operazioni elementari si tratta di una nozione relativa, devono essere elementari, cioè di semplice comprensione, per chi leggerà l’algoritmo;
numero finito se l’algoritmo è iterativo deve essere fornito un criterio di arresto;
input/output deve essere chiaro il numero ed il tipo dei dati richiesti dall’algoritmo e di quelli da esso generati.
Gli algoritmi vengono generalmente rappresentati mediante mappe strutturali, una sorta di programmi scritti utilizzando uno pseudo-codice molto simile al
linguaggio di programmazione Pascal. Non è necessario utilizzare regole sintattiche ferree per la loro stesura, è sufficiente essere chiari e precisi. È anche
consigliabile utilizzare solo le più comuni strutture di controllo del flusso (if , for ,
while e repeat) e non costrutti presenti solo in determinati linguaggi di programmazione, allo scopo di rendere possibile la comprensione dell’algoritmo anche a
chi non conosce quel particolare linguaggio. In fase di effettiva implementazione,
si potrà poi ottimizzare il codice per trarre vantaggio dalla sintassi del linguaggio
che si è deciso di usare. Gli esempi che seguono illustrano un possibile stile per
la descrizione degli algoritmi.
1–4
CAPITOLO 1. INTRODUZIONE
Esempio 1.3 Calcolo del prodotto matrice per vettore
y = Ax,
A ∈ Rm × n , x ∈ Rn , y ∈ Rm .
Segue la mappa strutturale dell’algoritmo:
1. input A, x, m, n
2. for i = 1, . . . , m
1. yi = 0
2. for j = 1, . . . , n
1. yi = yi + aij ∗ x j
3. output y
Esempio 1.4 Approssimare il valore del numero di Nepero mediante lo sviluppo
∞
e=
1
∑ k! ,
k =0
troncando la sommatoria quando il termine generico risulta essere minore di 10−8 . Uno
dei possibili algoritmi è il seguente:
1.
2.
3.
4.
k=0
a=1
e=a
while a ≥ 10−8
1. k = k + 1
2. a = a/k
3. e = e + a
5. output e, k
In uscita vengono forniti l’approssimazione di e, insieme al numero di iterazioni effettuate.
Sarebbe stato possibile conoscere in anticipo il numero delle iterazioni necessarie per
raggiungere la precisione richiesta?
Un algoritmo serve a risolvere problemi, ma non tutti i problemi matematici
sono effettivamente risolubili.
La Definizione 1.1 potrebbe indurci a pensare che un problema risolubile
coincida necessariamente con un problema ben posto e che questo sia l’unico
tipo di problemi di nostro interesse. La realtà è molto più articolata.
In primo luogo, esistono moltissimi problemi applicativi che vengono modellizzati mediante problemi mal posti e che esigono, comunque, un qualche tipo di
soluzione.
In secondo luogo, non è detto che un problema ben posto si possa risolvere in pratica, almeno quando assume determinate caratteristiche (dati imprecisi
o dimensioni elevate). Per illustrare questo punto è necessario introdurre tre
caratterizzazioni comunemente attribuite agli algoritmi numerici.
1.3. CARATTERIZZAZIONI DEGLI ALGORITMI
1.3
1–5
Caratterizzazioni degli algoritmi
Abbiamo già detto che gli errori da cui sono affetti i dati possono subire un’amplificazione a causa del cattivo condizionamento di un problema. Ebbene, gli
algoritmi hanno essi stessi la caratteristica di propagare in vario modo gli errori.
Definizione 1.4 Definiamo stabile (risp. instabile) un algoritmo nel quale la
successione delle operazioni non amplifica (risp. amplifica) eccessivamente gli
errori presenti sui dati.
Da questo punto di vista non avrebbe senso considerare risolubile un problema
al quale, a causa della propagazione degli errori, siamo in grado di dare solo una
soluzione inaccurata, o addirittura errata. Risulta cruciale, quindi, lo studio della
propagazione degli errori e la ricerca di algoritmi stabili.
Osserviamo che sviluppare un algoritmo stabile è possibile solo in presenza
di problemi ben condizionati. In caso contrario è necessario prima stabilire se
è possibile riformulare il problema in modo da ridurre il condizionamento e, di
conseguenza, la propagazione degli errori da esso causata.
Esempio 1.5 Spesso si verificano errori inaspettati anche in operazioni molto semplici.
Provate, con una qualsiasi calcolatrice tascabile, a calcolare la quantità 3( 34 − 1) − 1. Il
risultato dovrebbe essere 0, quello che troverete sarà un numero piccolo, ma non nullo
(a meno che la vostra calcolatrice non “bari”!). Riuscite ad immaginare perché?
Esercizio 1.1 Valutate su un computer il limite notevole
lim
x →0
1 − cos x
x2
calcolando la funzione per valori sempre più piccoli della variabile, ad es. x = 10−1 , 10−2 , . . .,
e dite se il risultato che otterrete è in accordo col valore del limite che avete studiato in
Analisi Matematica. Riuscite a pensare a qualche altro modo di effettuare il calcolo?
Ottenete risultati differenti?
Definizione 1.5 La complessità computazionale di un algoritmo, per gli analisti numerici, è il numero delle operazioni in virgola mobile necessarie per risolvere un problema mediante l’algoritmo dato.
Il fatto che questa definizione non coincida con quella generalmente utilizzata
in Informatica, che invece tiene conto di tutte le operazioni effettuate, deriva dal
fatto che l’Analisi Numerica studia algoritmi che coinvolgono variabili reali o complesse, e che in genere il tempo di calcolo richiesto dalle operazioni su queste
variabili supera di gran lunga quello richiesto dalle altre istruzioni (operazioni su
variabili intere, spostamento di blocchi di memoria, etc.).
1–6
CAPITOLO 1. INTRODUZIONE
La complessità computazionale è proporzionale al tempo di calcolo, ma, a
differenza da questo, non dipende dal particolare computer utilizzato. L’unità di
misura è il flop (floating point operation = operazione in virgola mobile), ma spesso vengono utilizzati i suoi multipli (Kflop, Mflop, Gflop). In genere non interessa
conoscere con esattezza la complessità computazionale di un algoritmo, ma ci si
accontenta del suo ordine di grandezza rispetto alla dimensione n del problema,
ad es. O( 13 n3 ) in luogo di 13 n3 + 2n2 + · · · .
Esercizio 1.2 Determinare la complessità computazionale di alcuni dei più comuni calcoli che coinvolgono vettori e matrici: somma delle componenti, norma, prodotto scalare,
prodotto matrice per vettore e matrice per matrice, etc.
Talvolta il flop è utilizzato nella misura della velocità di elaborazione, spesso intesa nel calcolo scientifico come numero di operazioni in virgola mobile
per secondo (flop/s, o semplicemente flops). Un moderno personal computer
raggiunge velocità dell’ordine delle centinaia di Mflops.
Per capire come la complessità computazionale di un algoritmo influenzi l’effettiva risolubilità di un problema, osserviamo la Tabella 1.1, dove sono riportati
i tempi di calcolo, stimati su un calcolatore con la velocità di 100 Mflops, per la
risoluzione di un sistema di n equazioni lineari in n incognite con il classico metodo di Cramer, calcolando i determinanti con la regola di Laplace, e mediante
l’algoritmo di Gauss, che studieremo nei prossimi capitoli. È evidente che anche
Tabella 1.1 Tempi di calcolo per la risoluzione di un sistema lineare
n
12
13
14
20
30
40
50
Cramer + Laplace
23 minuti
6 ore
4 giorni
617175 anni
1.5 1020 anni
8.3 1035 anni
4.8 1052 anni
Gauss
1.2 10−5 secondi
1.5 10−5 secondi
1.8 10−5 secondi
5.3 10−5 secondi
1.8 10−4 secondi
4.3 10−4 secondi
8.3 10−4 secondi
un incremento di un fattore 1000 nella velocità del calcolatore non renderebbe
l’algoritmo di Cramer praticamente utilizzabile, specie se si tiene conto che i sistemi lineari che si incontrano nelle applicazioni hanno dimensioni ben superiori
a 50 (talvolta sono dell’ordine delle decine di migliaia di equazioni) e soprattutto
che l’Universo ha un’età di 1010 anni!
Esercizio 1.3 Vedremo che l’algoritmo di Gauss richiede O( 31 n3 ) addizioni ed altrettante moltiplicazioni per la risoluzione di un sistema di n equazioni. Qual’è la complessità
del metodo di Cramer accoppiato alla regola di Laplace per il calcolo dei determinanti?
1.3. CARATTERIZZAZIONI DEGLI ALGORITMI
1–7
Un’altra caratteristica degli algoritmi, di fondamentale importanza per problemi di dimensione elevata, è l’occupazione di memoria da essi richiesta.
Determinati problemi, in situazioni estreme, possono portare all’elaborazione di
una tale mole di dati da rendere indispensabile l’uso di tecniche di memorizzazione particolarmente raffinate e, conseguentemente, l’adozione di algoritmi
specializzati per la loro risoluzione.
Quanto detto ci induce a considerare risolubile un problema ben posto e
ben condizionato per il quale esista un algoritmo con caratteristiche di stabilità,
complessità ed occupazione di memoria compatibili con la precisione richiesta, la
dimensione del problema, le caratteristiche del calcolatore utilizzato ed il tempo
di calcolo ammissibile per la sua soluzione.
La Figura 1.1 riassume i vari passi che conducono dalla modellizzazione di
un problema reale alla risoluzione del problema numerico ad esso associato ed
all’analisi dei risultati ottenuti.
Analisi:
- stabilità
- complessità
computazionale
- occupazione
di memoria
Problema di interesse
per le scienze applicate
Dati
sperimentali
Algoritmo di
risoluzione
modellizzazione
eventuale
pre−trattamento
statistico
Implementazione
su calcolatore
Problema numerico
x n = Pn (dn )
eventuale
semplificazione
Modello matematico
x = P(d)
Analisi ed
interpretazione
dei risultati
Analisi:
- è ben condizionato?
- xn
x?
- ... ?
Analisi:
- è ben posto?
1–8
CAPITOLO 1. INTRODUZIONE
Figura 1.1 Risoluzione numerica di un problema reale
Capitolo 2
Complementi di
Algebra Lineare
Nella Sezione 2.1 verranno richiamati alcuni concetti che dovrebbero essere già
acquisiti dallo studente, e che comunque è indispensabile conoscere. Saranno
invece trattati con maggiore dettaglio alcuni argomenti che probabilmente non
sono ancora stati introdotti in altri corsi.
2.1
Richiami
In questa sezione vengono richiamate definizioni e proprietà che dovrebbero già
far parte del bagaglio culturale del lettore.
2.1.1
Spazi
Definizione 2.1 Uno spazio lineare (o vettoriale) reale è un insieme V su cui
sono definite due operazioni di somma e prodotto per uno scalare
+ : V × V −→
V
(x, y) 7−→ x + y
e
· : R × V −→ V
(α, x) 7−→ αx
che, per ogni α, β ∈ R e x, y, z ∈ V , godono delle seguenti proprietà
1. x + y ∈ V
(chiusura risp. somma)
2. αx ∈ V
(chiusura risp. prodotto)
3. x + y = y + x
(pr. commutativa)
4. (x + y) + z = x + (y + z)
(pr. associativa)
2–1
2–2
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
5. esiste 0 ∈ V tale che x + 0 = x
(elemento neutro)
6. esiste −x ∈ V tale che x + (−x) = 0
(inverso additivo)
7. α( βx) = (αβ)x
(pr. associativa)
8. α(x + y) = αx + αy
(pr. distributiva in V )
9. (α + β)x = αx + βx
(pr. distributiva in R)
10. 1x = x
(elemento neutro)
In uno spazio lineare complesso il campo degli scalari è costituito dall’insieme dei
numeri complessi C. Chiameremo vettori gli elementi di uno spazio lineare. Un
sottospazio è un sottoinsieme W ⊂ V che sia esso stesso un spazio lineare.
Esempio 2.1 Seguono alcuni esempi di spazi lineari:
1. gli spazi Rn e Cn delle n-uple di numeri reali o complessi, con le consuete
operazioni di somma componente per componente e di prodotto per uno scalare;
2. lo spazio C [ a, b] delle funzioni continue in un intervallo [ a, b];
3. lo spazio L2 [ a, b] delle funzioni il cui quadrato è integrabile in [ a, b];
4. lo spazio Πn dei polinomi di grado minore o uguale ad n.
Osserviamo che Πn è un sottospazio di C [ a, b], che a sua volta è sottospazio di L2 [ a, b].
Esempio 2.2 L’insieme dei polinomi di grado pari a n non è uno spazio lineare. Perché?
Si dice combinazione lineare dei vettori {x1 , . . . , xk } con coefficienti αi ∈
R, i = 1, . . . , k, il vettore x ∈ V dato da
k
x=
∑ αi xi ,
i =1
e il sottospazio generato dai vettori {x1 , . . . , xk } è costituito da tutte le loro
combinazioni lineari
(
span(x1 , . . . , xk ) :=
k
x∈V:x=
∑ αi xi
)
i =1
I vettori {x1 , . . . , xk } sono linearmente indipendenti se
k
∑ αi xi = 0
i =1
⇒
αi = 0, i = 1, . . . , k.
.
2.1. RICHIAMI
2–3
Questa condizione è equivalente al fatto che nessuno dei vettori sia combinazione lineare degli altri. Una base è un insieme di vettori linearmente indipendenti
tali che ogni vettore dello spazio possa essere espresso come loro combinazione
lineare. La dimensione di uno spazio lineare è la cardinalità di una base. Uno
spazio è a dimensione finita se esiste per esso una base finita.
Esempio 2.3 Lo spazio Πn ha dimensione n + 1, dato che una base per esso è data
dai monomi 1, x, x2 , . . . , x n (viene detta base canonica). Lo spazio C [ a, b], invece, è a
dimensione infinita.
Definizione 2.2 Uno spazio normato è uno spazio lineare su cui è definita una
funzione
k · k : V −→ R
x 7−→ kxk
detta norma, tale che per ogni x, y ∈ V e α ∈ R si abbia
1. kxk ≥ 0 e kxk = 0 ⇔ x = 0
(positività)
2. kαxk = |α| kxk
(omogeneità)
3. kx + yk ≤ kxk + kyk
(diseguaglianza triangolare)
È immediato dimostrare che una norma verifica la seguente proprietà
k x − y k ≥ k x k − k y k ,
∀x, y ∈ V.
(2.1)
Uno spazio normato è anche uno spazio metrico, in cui la distanza tra due
vettori è misurata mediante la funzione
d(x, y) := kx − yk.
Esempio 2.4 Lo spazio Rn può essere dotato di infinite norme. Tre delle più frequentemente utilizzate sono
n
k x k2 =
∑ xi2
! 21
n
k x k1 =
,
i =1
∑ | x i |,
kxk∞ = max | xi |.
i =1,...,n
i =1
La Figura 2.1 mostra la forma della sfera unitaria di R2
S : = x ∈ R2 : k x k = 1
relativamente alle tre norme introdotte.
Gli spazi funzionali C [ a, b] e L2 [ a, b] vengono usualmente dotati delle norme
k f k∞ = max | f ( x )|,
f ∈ C [ a, b],
x ∈[ a,b]
k g k2 =
b
Z
a
2
| g( x )| dx
21
,
g ∈ L2 [ a, b].
2–4
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
||x||2
||x||1
||x||∞
Figura 2.1 Sfere unitarie in R2 rispetto alle norme con indice 2, 1 e ∞
Teorema 2.1 Tutte le norme di Rn sono equivalenti, nel senso che per ogni
coppia di norme k · kα , k · k β esistono due costanti positive m e M tali che, per
ogni x ∈ Rn , si ha
mkxk β ≤ kxkα ≤ M kxk β .
Il risultato precedente è valido anche in Cn e, in generale, negli spazi a dimensione finita. Esso consente, in particolare, di utilizzare indifferentemente qualsiasi
norma per studiare la convergenza di una successione di vettori.
Definizione 2.3 Diremo che una successione di vettori xn converge al limite x
quando la successione xn − x converge in norma a zero
lim xn = x
n→∞
⇔
lim kxn − xk = 0.
n→∞
Definizione 2.4 Una successione si dice di Cauchy se
lim kxm − xn k = 0.
m,n→∞
Quando tutte le successioni di Cauchy hanno un limite in un dato spazio,
esso viene detto completo. Uno spazio normato completo viene detto spazio
di Banach.
Definizione 2.5 Uno spazio di Hilbert è uno spazio lineare su cui è definito un
prodotto scalare (o prodotto interno)
h·, ·i : V × V −→
R
(x, y) 7−→ hx, yi
tale che per ogni x, y, z ∈ V e α ∈ R
1. hx, xi ≥ 0 e hx, xi = 0 ⇔ x = 0
2. hx, yi = hy, xi
(positività)
(pr. commutativa)
2.1. RICHIAMI
3. hαx, yi = αhx, yi
2–5
(omogeneità)
4. hx + y, zi = hx, zi + hy, zi
(linearità)
Tale spazio deve inoltre essere completo rispetto alla norma indotta dal prodotto
interno
1
(2.2)
kxk := hx, xi 2 .
Due vettori vengono detti ortogonali quando il loro prodotto scalare è nullo.
Esempio 2.5 Il prodotto scalare comunemente utilizzato in Rn è il seguente
n
hx, yi =
∑ xi yi .
(2.3)
i =1
Esso induce la norma euclidea kxk2 .
Lo spazio L2 [ a, b] dotato del prodotto interno
h f , gi =
Z b
a
f ( x ) g( x )dx
è uno spazio di Hilbert. La norma indotta è quella definita nell’Esempio 2.4.
Per la norma indotta vale la diseguaglianza di Schwartz
|hx, yi| ≤ kxk · kyk.
Esercizio 2.1 Dimostrare che la (2.2) è una norma.
2.1.2
Matrici
Una matrice m × n è un quadro di mn numeri reali o complessi disposti in m
righe e n colonne


a11 a12 · · · a1n
 a21 a22 · · · a2n 


A= .
..
..  .
.
 .
.
. 
am1 am2 · · · amn
Una matrice è quadrata se m = n, in caso contrario viene detta rettangolare.
Indicheremo con Mm×n l’insieme di tutte le matrici m × n; scriveremo Rm×n
o Cm×n per evidenziare che ci stiamo riferendo a matrici reali o complesse,
rispettivamente.
Sia A ∈ Cm×n . La matrice aggiunta A∗ si ottiene scambiando le righe di A
con le sue colonne e coniugandone gli elementi
( A∗ )ij = a ji .
2–6
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
Se la matrice A è reale (aij ∈ R), si parla di matrice trasposta
( A T )ij = a ji .
Un vettore colonna x è una matrice n × 1; un vettore riga x T è una matrice 1 × n.
Assumeremo convenzionalmente che ogni x ∈ Rn sia un vettore colonna. A
volte è utile considerare una matrice come l’insieme delle sue colonne o delle
sue righe, cioè

a11
 ..
A= .
am1

 1
· · · a1n
a
..  = a · · · a =  ..  ,
 . 
n
1
. 
· · · amn
am
(2.4)
con ai vettore colonna e a j vettore riga.
Le matrici costituiscono uno spazio lineare di dimensione mn con somma e
prodotto per uno scalare definiti da
( A + B)ij = aij + bij ,
(αA)ij = αaij .
Se A ∈ Rm×n e B ∈ Rn× p , il loro prodotto “righe per colonne” (o, semplicemente, prodotto) è la matrice C = AB ∈ Rm× p definita da
n
cij =
∑ aik bkj ,
i = 1, . . . , m, j = 1, . . . , p.
k =1
Il prodotto matriciale è distributivo rispetto alla somma, associativo, ma non
commutativo. L’elemento neutro è la matrice identità

1
0
..

I = diag(1, . . . , 1) = 

.
.
0

1
La potenza p-esima di una matrice è definita come
A p = |A · A{z· · · A} .
p volte
Ricordiamo che una matrice reale m × n rappresenta la generica trasformazione lineare tra gli spazi lineari Rn e Rm . Il prodotto matriciale corrisponde
allora alla composizione di due trasformazioni lineari.
Esercizio 2.2 Dati A ∈ Rn×n e x, y ∈ Rn , dite che dimensioni hanno i prodotti
Ax,
x T A,
x T y,
ed esprimete esplicitamente le loro componenti.
xy T
2.1. RICHIAMI
2–7
Osserviamo che il prodotto scalare di Rn definito in (2.3) e la norma da esso
indotta possono essere espressi nella forma
hx, yi = x T y,
k x k2 =
√
x T x.
Una matrice quadrata A si dice invertibile o non singolare se esiste una matrice A−1 , detta matrice inversa, tale che AA−1 = A−1 A = I .
Alcune proprietà:
• ( AB) T = B T A T ;
• ( AB)−1 = B−1 A−1 ;
• ( A T )−1 = ( A−1 ) T (scriveremo per brevità A− T );
• A è invertibile se e solo se ha righe (e colonne) linarmente indipendenti.
Il determinante è una funzione che associa a ciascuna matrice quadrata un
numero reale. Tralasciando la sua definizione formale, ricordiamo che, fissata
una riga i, esso può essere calcolato mediante la formula di Laplace
n
det( A) =
∑ (−1)i+ j aij det( Aij ),
j =1
essendo Aij la sottomatrice che si ottiene da A eliminando la i-esima riga e la
j-esima colonna. Richiamiamo, inoltre, alcune sue proprietà:
• det( A T ) = det( A), det( A∗ ) = det( A), det( A−1 ) = det( A)−1 ;
• det( AB) = det( A) det( B), det(αA) = αn det( A);
• uno scambio di due righe di una matrice produce un cambio di segno del
determinante;
• A è non singolare se e solo se det( A) 6= 0.
Il rango rank( A) di una matrice può essere definito indifferentemente come
il massimo numero di righe (o colonne) linearmente indipendenti o come l’ordine
della più grande sottomatrice con determinante non nullo.
2–8
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
2.1.3 Autovalori e autovettori
Definizione 2.6 Si dicono autovalore ed autovettore di una matrice A uno
scalare λ ed un vettore x 6= 0 che verifichino la relazione
Ax = λx.
(2.5)
Riscriviamo l’equazione (2.5) nella forma
( A − λI )x = 0.
Perché questo sistema lineare omogeneo ammetta una soluzione non nulla è
necessario che il suo determinante
p A (λ) = det( A − λI )
si annulli. Dal momento che p A (λ) è un polinomio di grado n in λ, detto polinomio caratteristico di A, il Teorema fondamentale dell’Algebra assicura l’esistenza di n autovalori (non necessariamente reali e distinti) che possono essere
determinati calcolando gli zeri di p A (λ).
Per ciascun autovalore λk , k = 1, . . . , n, una soluzione non nulla del sistema
singolare
( A − λk I )x = 0
fornisce il corrispondente autovettore, che, nel caso in cui la matrice A − λk I abbia rango n − 1, resta quindi determinato a meno di una costante moltiplicativa.
Definiamo spettro di una matrice l’insieme dei suoi autovalori
σ ( A ) = { λ1 , . . . , λ n }
e raggio spettrale il massimo dei moduli degli autovalori
ρ( A) = max |λk |.
k =1,...,n
Alcune proprietà:
• det( A) = ∏nk=1 λk ;
p
p
1
p
• σ ( A T ) = σ ( A), σ ( A−1 ) = {λ1−1 , . . . , λ−
n }, σ ( A ) = { λ1 , . . . , λ n };
• ad autovalori distinti corrispondono autovettori indipendenti;
T
• se un autovettore x è noto, il quoziente di Rayleigh xxTAx
fornisce il corrix
spondente autovalore.
2.2. MATRICI DI FORMA PARTICOLARE
2–9
La molteplicità algebrica di un autovalore è la sua molteplicità come zero
del polinomio caratteristico. Si definisce, invece, molteplicità geometrica di un
autovalore il massimo numero di autovettori indipendenti ad esso corrispondenti.
In generale per ogni autovalore si ha sempre
molteplicità geometrica ≤ molteplicità algebrica.
Se per un autovalore vale il minore stretto, la matrice viene detta difettiva.
Esempio 2.6 Calcolate autovalori ed autovettori delle tre matrici


2
2
2
2.2


,


2
2 1 ,
2


2 1
 2 1 .
2
Matrici di forma particolare
Una matrice possiede una struttura (o è strutturata) quando ha delle proprietà
che rendono più agevole la risoluzione di un problema che la coinvolge (inversione, risoluzione di un sistema lineare, calcolo di autovalori, etc.). Elenchiamo di
seguito alcuni tipi di matrici strutturate.
Matrici Hermitiane Una matrice quadrata è Hermitiana se coincide con la sua
aggiunta ( A = A∗ ). Una matrice reale A si dice simmetrica se A = A T . Una
matrice Hermitiana A è definita positiva se
x∗ Ax > 0,
∀ x ∈ Cn .
La stessa definizione è valida per matrici simmetriche reali, sostituendo Cn con
Rn .
Il seguente teorema enuncia la principale proprietà delle matrici Hermitiane.
Teorema 2.2 Se A è Hermitiana, i suoi autovalori sono reali ed esiste per Cn
una base di autovettori ortonormali. Se A è anche definita positiva, gli autovalori
sono positivi.
Matrici unitarie
giunta
Una matrice è unitaria se la sua inversa coincide con l’ag-
Q∗ Q = QQ∗ = I.
Una matrice reale è ortogonale se l’inversa coincide con la trasposta
Q T Q = QQ T = I.
2–10
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
Ovviamente, dal punto di vista computazionale il maggior vantaggio di una matrice unitaria è quello di poter essere invertita senza alcun calcolo, il che consente di risolvere immediatamente un sistema lineare. Ricordiamo anche alcune
proprietà, altre verranno richiamate in seguito.
Teorema 2.3 Se Q è unitaria, allora
1. | det( Q)| = 1, (se Q è reale det( Q) = ±1);
2. k Qxk2 = kxk2 , per ogni vettore x ∈ Cn .
Dimostrazione. Si ottiene applicando le proprietà dei determinanti e la definizione di norma 2 (da fare per esercizio).
Matrici triangolari Una matrice U è detta triangolare superiore se i suoi elementi verificano la condizione
uij = 0,
per i > j.
Una matrice L viene detta triangolare inferiore se
`ij = 0,
per i < j.
Il nome di queste matrici deriva dalla disposizione degli elementi non nulli al
loro interno. Infatti, se indichiamo tali elementi con degli asterischi, è immediato
osservare che

∗ ∗ ···
 ∗ ···

U=
..

.

∗
∗

.. 
.


∗
∗

e L = .
 ..
∗
.. . .
.
.


.

∗ ∗ ··· ∗
∗
Una matrice diagonale è simultaneamente triangolare superiore ed inferiore


D = diag(d1 , . . . , dn ) = 

d1
..

.
.
dn
I sistemi lineari con matrice triangolare o diagonale sono particolarmente semplici da risolvere, come vedremo. Un’altra proprietà importante è la seguente.
Teorema 2.4 Se T è triangolare (e quindi anche se è diagonale) il suo determinante è dato dal prodotto degli elementi diagonali. Inoltre gli autovalori
coincidono con gli elementi diagonali.
2.3. NORME MATRICIALI
2–11
Dimostrazione. Si ottiene sviluppando il determinante di T (e di T − λI )
mediante la regola di Laplace.
Ricordiamo che le matrici triangolari inferiori (o superiori) formano un’algebra. Questo significa che l’inversa di una matrice triangolare, quando esiste, e
il prodotto di due matrici triangolari sono ancora matrici triangolari dello stesso
tipo. La stessa proprietà vale per le matrici unitarie, ma in questo caso non si
può parlare di algebra dato che l’unitarietà non si trasmette attraverso la somma
di matrici ed il prodotto per uno scalare.
Matrici a banda
zione
Gli elementi di una matrice a banda-(k, m) verificano la rela-
aij = 0,
se i − j ≥ k oppure i − j ≤ −m,
la matrice assume quindi la forma
a1,1 · · ·
 ..
..
 .
.


..
A = a
.
 k,1

..

.

a1,m
..
.
..
.
..
.
an,n−k+1

..




..
.
. an−m+1,n 


..
..

.
.
···
an,n
.
Le matrici a banda-(1,1), (2,2), (3,3) vengono dette diagonali, tridiagonali, pentadiagonali, etc.
Le matrici a banda possono portare ad un significativo vantaggio in termini
di complessità computazionale nella risoluzione di sistemi lineari e nel calcolo
degli autovalori, in quanto alcuni algoritmi consentono di sfruttare in maniera
opportuna la loro struttura.
2.3
Norme matriciali
Lo spazio lineare Mm×n , cui appartengono le matrici, può essere dotato della
struttura di spazio normato definendo una qualsiasi norma k · k che verifichi
gli assiomi richiesti. In realtà per le norme di matrici si richiedono spesso due
ulteriori proprietà.
Definizione 2.7 Una norma matriciale è submoltiplicativa se per ogni coppia
di matrici di dimensioni compatibili si ha
k ABk ≤ k Ak · k Bk.
2–12
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
Definizione 2.8 Una norma di matrice è consistente con le norme vettoriali
k · k a di Rn e k · kb di Rm se
∀ A ∈ Rm × n , ∀ x ∈ Rn .
k Axkb ≤ k Ak · kxk a ,
Spesso le norme k · k a e k · kb coincidono, in tal caso il pedice si trascura.
Ricordiamo che tutte le norme matriciali, essendo definite su spazi lineari a
dimensione finita, sono equivalenti.
Esempio 2.7 La norma di Frobenius è definita da
m
k Ak F =
n
∑ ∑ |aij |
!1/2
2
.
i =1 j =1
Tale norma è submoltiplicativa.
Definizione 2.9 Una norma matriciale si dice indotta da una norma vettoriale
k · k, se
k Ak = sup
x 6 =0
k Axk
kxk
o se, equivalentemente,
k Ak = max k Axk.
kxk=1
Una norma così definita viene anche detta naturale, o subordinata.
Una norma naturale misura, in una data norma vettoriale, il massimo allungamento relativo che un vettore può subire in seguito al prodotto per la matrice A.
Essa è consistente con la norma che la induce, in quanto la definizione implica
che, qualunque sia x, si abbia
k Axk ≤ k Ak · kxk.
In particolare, è la più piccola norma consistente con quella particolare norma
vettoriale.
Teorema 2.5 Ogni norma indotta è submoltiplicativa.
Dimostrazione.
Date A e B di dimensioni compatibili, si ha
k ABk = sup
x 6 =0
≤ sup
y 6 =0
k ABxk
k ABxk k Bxk
= sup
·
kxk
kxk
x6=0 k Bx k
k Ayk
k Bxk
· sup
= k A k · k B k,
k y k x 6 =0 k x k
dove la maggiorazione dipende dal fatto che non è detto che tutti i vettori y nel
codominio di B si possano esprimere nella forma Bx.
2.3. NORME MATRICIALI
2–13
È immediato osservare che per una norma indotta si ha k I k = 1, da cui si
deduce che
√ la norma di Frobenius non è una norma naturale, dal momento che
k I k F = n.
Vediamo ora le principali norme indotte.
Teorema 2.6 La norma matriciale indotta dalla norma vettoriale ∞ è la seguente
n
k Ak∞ = max
∑ |aij |.
i =1,...,m j=1
Dimostrazione.
Per definizione si ha
k Ak∞ = max k Axk∞ .
k x k ∞ =1
Maggiorando l’argomento si ottiene
k Axk∞
n
n = max |( Ax)i | = max ∑ aij x j ≤ max ∑ aij x j i=1,...,m j=1
i =1,...,m
i =1,...,m j=1
n
≤ max | xi | · max
i =1,...,m
∑ |aij | = max
i =1,...,m j=1
n
∑ |aij |,
i =1,...,m j=1
in quanto kxk∞ = maxi=1,...,m | xi | = 1 per ipotesi.
Per concludere la dimostrazione è sufficiente mostrare che esiste un vettore
per cui viene raggiunta l’uguaglianza. Tale vettore è x = (s1 , . . . , sn ) T , dove
s j = sign( aij )
con i indice del massimo delle somme-riga (la funzione sign(z) vale 1 se z ≥ 0
e −1 se z < 0).
In modo analogo si può dimostrare il seguente risultato.
Teorema 2.7 La norma matriciale indotta dalla norma 1 è data da
m
k Ak1 = max
∑ |aij |.
j=1,...,n i =1
Si dice anche che la norma ∞ è il massimo delle somme-riga e la norma 1 è il
massimo delle somme-colonna della matrice A.
Teorema 2.8 La norma matriciale indotta dalla norma 2 è data da
k A k2 =
q
ρ ( A ∗ A ),
dove ρ( B) indica il raggio spettrale della matrice B.
2–14
CAPITOLO 2. COMPLEMENTI DI ALGEBRA LINEARE
Corollario 2.9 Se A è Hermitiana
k A k2 = ρ ( A ).
Dimostrazione.
Immediata, a partire dal Teorema 2.8, dal momento che
ρ( A2 ) = (ρ( A))2 .
Dato il suo legame con gli autovalori di una matrice, la norma 2 viene anche
detta norma spettrale.
Tutte le norme consistenti hanno una relazione forte col raggio spettrale di
una matrice, il che consente di utilizzarle per la localizzazione degli autovalori.
Il seguente teorema mostra che una norma consistente definisce il raggio di
un cerchio sul piano complesso che contiene tutti gli autovalori di A. L’utilità
di questo risultato deriva dalla maggiore semplicità di calcolo di alcune norme
matriciali rispetto al raggio spettrale.
Teorema 2.10 Sia k · k una norma consistente. Allora per ogni matrice quadrata
A si ha
ρ ( A ) ≤ k A k.
Dimostrazione. Per ogni autovalore λ di A esiste un autovettore v tale che
Av = λv. Sfruttando la consistenza e le proprietà delle norme, si ottiene
|λ| · kvk = kλvk = k Avk ≤ k Ak · kvk,
da cui, essendo v 6= 0 per definizione, segue |λ| ≤ k Ak per ogni autovalore λ
e quindi la tesi.
Si può inoltre dimostrare il seguente risultato, complementare, in un certo senso,
del precedente.
Teorema 2.11 Per ogni matrice quadrata A e per ogni ε > 0 esiste una norma
matriciale naturale k · k tale che
k Ak ≤ ρ( A) + ε.
Sotto opportune ipotesi sugli autovalori di A (molteplicità algebrica e geometrica coincidente per ciascun autovalore) esiste una norma naturale per cui si ha
l’uguaglianza
k A k = ρ ( A ).
Sottolineiamo la differenza tra questi due enunciati: il Teorema 2.10 è valido per
ogni norma consistente, mentre il Teorema 2.11 afferma che esiste almeno una
norma che verifica la tesi, ma non chiarisce come ottenerla (la dimostrazione,
anzi, mostra che è molto difficile costruirla in pratica).