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
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
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.
N −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
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.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
− 1N − 1} ·N U
M = 0. |N − 1N {z
t cifre
segnalazione: nel primo caso il parziale viene approssimato a zero mentre nel
secondo a Inf .
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
eps = N 1−t
base N = 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 è
s1 = s2 ;
q 1 = q2 ;
p¯1 ≈ p¯2 ;
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.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.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
pn (xi ) = yi
2 APPROSSIMAZIONE DI FUNZIONI E DATI 17
per j = 1, . . . , n + 1.
Poiché (
1 se i = j
`j (xi ) =
0 se i 6= j
`j (x) interpola i dati:
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:
3) Sd (xi ) = yi .
2 APPROSSIMAZIONE DI FUNZIONI E DATI 24
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
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.
||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.
per ogni matrice e per ogni vettore nel relativo spazio. Le norme 1, 2 e
infinito precedentemente definite per vettori e matrici sono compatibili.
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
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̄
A = LU
→→ 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
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.
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
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.
A = QR
A = Q̃R̃
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.
AX = B ⇒ QRX = B ⇒ RX =t QB
Ax = λx o in alternativa [A − λI]x = 0
det(A − λI) = 0
Axi = λi xi
consente di scrivere
ovvero
AX = XD
ove
λ1 0
λ2
X = (x1 , x2 , . . . , xn ), D =
..
.
0 λn
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 43
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.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
S −1 AS = D = diag(λ1 , . . . , λn )
z = α 1 x1 + · · · + α n xn
Az = α1 Ax1 + · · · + αn Axn = α1 λ1 x1 + · · · + αn λn xn
(A − pI)x = AX − px = (λ − p)x
Conseguentemente,
1
(A − pI)−1 x = x
λ−p
4 AUTOVALORI E VALORI SINGOLARI DI MATRICI 48
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
Ak = Qk Rk
Ak+1 = Rk Qk
A2 = R1 Q1 =t Q1 Q1 R1 Q1 =t Q1 A1 Q1
s1 ≥ s2 ≥ . . . ≥ sp ≥ 0
A = U S tV
1. rg(A) = r;
2. A = Ur Sr t Vr ;
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.