Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Email: vittoria.bruni@sbai.uniroma1.it
Calcolo Numerico Ufficio: Via A. Scarpa,
Tel. 06 49766648
https://elearning.uniroma1.it/enrol/index.php?id=7192
Appunti delle lezioni: Sistemi lineari
piattaforma elearning — Identificativo del corso: Calcolo Numerico (BMER AA
2018/19)
Esempio 1
2 3
Esempio di passeggiata per N = 10
Soluzione
Si può simulare una passeggiata casuale tirando una moneta.
La probabilità pi, i = 0, 1, ..., N , di raggiungere l’estremo sinistro
90
50
Si tratta di un sistema lineare tridiagonale nelle incognite
40 pi, i = 1, . . . , N − 1
p1 − 12 p2 = 1
30
2
20 − 12 p1 +p2 − 12 p3 = 0
··· ··· ··· ··· ··· ···
10
− 12 pN −3 +pN −2 − 12 pN −1 = 0
0
− 12 pN −2 +pN −1 = 0
0 1 2 3 4 5 6 7 8 9 10
Punto di partenza: x5
4 5
6 7
Esempio 3
Nelle ore di punta il traffico è congestionato in corrispondenza degli Inoltre:
incroci rappresentati nella figura di seguito 1. Incrocio A: 700 macchine ogni ora
provengono da Spruce Street men-
tre 300 provengono da 9th Street
Indicando con
10 11
Esempio 4 Esempio 5
Il sistema in figura
Analisi di strutture
• I metodi diretti sono basati sulla trasformazione del sistema di Prima di implementare un algoritmo bisogna stimare il suo costo com-
partenza in uno equivalente che abbia una struttura particolar- putazionale, cioè il numero di operazioni pesanti (moltiplicazioni o
mente semplice per cui è facile calcolarne la soluzione. divisioni) necessarie per calcolare numericamente la soluzione.
16 17
con Mij il determinante della matrice A di cui si trascurano la 6. Se B è una matrice quadrata di ordine n, allora det(AB) =
det(A)det(B)
i − esima riga e la j − esima colonna
7. det(AT ) = det(A)
• Se A è una matrice quadrata di dimensione n: 8. Se esiste A−1, allora det(A−1) = 1/det(A)
1. Se una riga o una colonna di A ha tutti gli elementi nulli, allora 9. Se A è una matrice triangolare superiore (o inferiore), allora
Q
det(A) = 0 det(A) = ni=1 aii
18
Esempio: Calcolare la soluzione del sistema AX = B, con
1 2 3 1
Metodo di Cramer A= 4 5 6 e b= 0
7 8 0 2
1 2 1
D3 −9 1
dove Di è il determinante della matrice ottenuta da A sostituendo alla D3 = det 4 5 0 = 10+32−35−16 = −9 x3 = = =−
7 8 2 det(A) 27 3
colonna i-esima il vettore B.
−2
e quindi X = 2
1
−3
19 20
AM = I
• n! prodotti per ciascun determinante
con I la matrice identità .
• n − 1 moltiplicazioni per ciascun prodotto Corrisponde alla soluzione di n sistemi lineari ognuno dei quali ha A
come matrice dei coefficienti, una colonna di I come vettore dei termini
• + n divisioni (trascurabili) noti e una colonna di M come incognita.
Per esempio, se n = 3
Costo computazionale: Cc = (n + 1)n!(n − 1) + n ' (n + 1)n!(n − 1) a11 a12 a13 m11 m12 m13 1 0 0
a21 a22 a23 m21 m22 m23 = 0 1 0
n = 15 → Cc ' 3 · 1014 moltiplicazioni → 3 giorni a31 a32 a33 m31 m32 m33 0 0 1
Inutilizzabile!!
n = 20 → Cc ' 3 · 1021 moltiplicazioni → 3 · 105anni
23 24
27 28
x1 + 2x2 + 3x3 = 1
− 3x2 − 6x3 = −4
− 9x3 = 3
29 30
Metodo di eliminazione di Gauss Al termine di questo passo si ottiene un sistema equivalente con
matrice dei coefficienti
Generalizzando, se la matrice A è tale che aii 6= 0, ∀ i = 1, 2, . . . , n a11 a12 . . . . . . a1n
0 a(1) . . . . . . a(1)
22 2n
A(1) = 0 a(1)
32 . . . . . . a(1)
3n
I passo : annullare gli elementi della prima colonna di A al di sotto ... ... ... ...
(1) (1)
della diagonale principale 0 an2 . . . . . . ann
dove
I.1 sottrarre alla seconda equazione la prima moltiplicata per m21 =
a21 (1)
aij = aij − mi1a1j , i = 2, . . . , n j = 1, . . . , n
a11
e vettore dei termini noti
I.2 sottrarre alla terza equazione la prima moltiplicata per m31 =
a31 b1
a11 b(1)
2
b(1) = b(1)
... 3..
.
b(1)
n
...
dove
(1)
I.n-1 sottrarre alla n − esima equazione la prima moltiplicata per bi = bi − mi1b1, i = 2, . . . , n
mn1 = aan1
11
31
Costo computazionale
Metodo di eliminazione di Gauss:
Metodo di eliminazione di Gauss
n3
• triangolarizzazione ' . Infatti:
Quindi, dopo n − 1 passi il sistema Ax = b è stato trasformato nel 3
n−1 n
sistema equivalente A(n−1)x = b(n−1), con A(n−1) matrice triangolare X X
(|{z}
1 +n| − {z
k + 2} =
superiore k=1 i=k+1 div. molt.
| {z } | {z }
ognipasso righe
al passo k si definiscono gli elementi
n−1
(k) (k−1) (k−1)
X n3
aij = aij − mik akj , i = k + 1, . . . , n j = k, k + 1, . . . , n = (n − k)(n + 3 − k) '
k=1
3
Sono state usate le seguenti identità :
(k) (k−1) (k−1) Pn n(n+1) Pn 2 n(n+1)(2n+1)
bi = bi − mik bk , i = k + 1, . . . , n k=1 k = 2
, k=1 k = 6
(k−1)
aik
con mik =
akk
(k−1) n2
• sostituzione all’indietro '
2
n3
⇒ Cc '
3
32 33
Fattorizzazione LU
34 35
1 2 3
Infatti, riprendendo l’esempio precedente in cui A = 4 5 6
7 8 0 Moltiplicare la seconda riga della matrice ottenuta al passo precedente
per 2 e sottrarla alla terza equivale a moltiplicare a sinistra la matrice
Moltiplicare per 4 la prima riga e sottrarla alla seconda e moltiplicare la
L1A per la matrice
prima riga per 7 e sottrarla alla terza equivale a moltiplicare a sinistra
la matrice A per la matrice
1 0 0
L2 = 0 1 0
1 0 0 0 −2 1
L1 = −4 1 0
−7 0 1 cioè
1 0 0 1 2 3 1 2 3
cioè
0 1 0 0 −3 −6 = 0 −3 −6
1 0 0 1 2 3 1 2 3 0 −2 1 0 −6 −21 0 0 −9
−4 1 0 4 5 6 = 0 −3 −6
−7 0 1 7 8 0 0 −6 −21
36 37
Struttura delle matrici L e U
Ma allora la matrice triangolare superiore U ottenuta precedentemente
con il metodo di eliminazione di Gauss è tale che (1) (1) (1) (1)
a
11
a12 a13 · · · a1n
(2) (2) (2)
1 0 0 0 ··· 0 0 a22 a23 ··· a2n
m21 1 0 0 ··· 0
L2 L1 A = U
A = LU = ... (3) ... (3)
m31 m32 1 0 ··· 0 0 a33 a3n
... ... ... ... ... ...
e quindi
mn1 mn2 mn3 · · · · · · 1 ... ... ... ... ...
0 0 0 ... (n)
ann
A = (L2L1)−1U = L−1 −1
1 L2 U = LU
AXi = Bi i = 1, 2, . . . , r
Consideriamo il sistema lineare AX = B e supponiamo che la matrice
dei coefficienti A possa essere fattorizzata.
aventi la stessa matrice A e diversi termini noti, si fattorizza una
A=LU
AX = B → LU X} = B
| {z volta per tutte la matrice A = LU e si risolvono, per ogni vettore Bi, i
Y due sistemi triangolari
LY = B sist. triang. inf. sost. in avanti
LYi = Bi
i = 1, 2, . . . , r
⇒
UX = Y
i i
UX = Y sistema triang. sup. sost. all’indietro
L Yi = Ei, U Xi = Yi, i = 1, · · · , n
n3 4
Costo computazionale: Cc ' + n · n2 = n3
3 3
42 43
x2 = 1
46 47
48 49
Algoritmo di Thomas
Matrici tridiagonali
u1 = d1
Nel caso in cui la matrice dei coefficienti A è tridiagonale la fattoriz-
vi = si
i = 1, 2, . . . , n − 1
zazione LU è molto semplice in quanto le matrici L e U hanno una
struttura semplice.
αi = ai/ui−1 i = 2, 3, . . . , n
d s1 0 ··· 0 ui = di − αivi−1 i = 2, 3, . . . , n
1
a2 d2 s2 ··· 0
... ... ...
A=
··· ··· =
Costo computazionale: Cc = 2n − 2
0 0 · · · dn−1 sn−1
0 0 · · · an dn Soluzione del sistema lineare AX = B
1 0 0 ··· 0 u1 v1 0 ··· 0 y1 = b1 yi = bi − αiyi−1 i = 2, 3, . . . , n
α2 1 0 ··· 0 0 u2 v2 ··· 0
... ... . . . . . . ... xn = yn/un xi = (yi − vixi+1)/ui i = n − 1, . . . , 1
=
0 α3 1 ··· 0
= LU
... ... ... ... ... 0 0 · · · un−1 vn−1
0 0 ··· αn 1 0 0 ··· 0 un Costo computazionale: Cc = |(n − 1) + |(n −
{z }
1) +
{z }
n
|{z} = 3n − 2
moltipli− moltipli− divisioni
cazioni cazioni
50 51
L’inversione della matrice è molto sensibile agli errori sui dati, anche
molto piccoli!
AX = B
si risolve il sistema
AX = B + Err
Cosa è accaduto???
il rumore/errore Err è molto amplificato!
61 62
!
1 −1 − δ
Soluzione Si verifica facilmente che A−1 = δ12
−1 + δ 1
Esercizio 1
2
Determinare il numero di condizionamento, rispetto alla norma infinito, e quindi K∞(A) = kAk∞kA−1k∞ = (2 + δ) 2+δ
δ2
= (2+δ)
δ2
della seguente matrice
! Si osserva che
1 1+δ
A= limk→+∞K∞(A) = 1
1−δ 1
con δ > 0. mentre
limk→0+ K∞(A) = +∞;
Posto δ = 0.01, sia A la matrice dei coefficienti del sistema AX = B,
con B = (2.01, 1.99)T e si consideri il sistema perturbato AX̄ = B̄, cioè per valori di δ molto piccoli, la matrice risulta malcondizionata.
con B̄ = (2, 2)T . Dare una stima dell’errore relativo commesso sulla
soluzione X. Per esempio, se δ = 0.01, K∞(A) = (2012) = 40401, mentre se δ =
100, K∞(A) = 10404
10000 = 1.0404.
63 64
Esercizio 2
kδXk∞ kδBk∞
≤ K∞(A) 1 −2 −λ
kXk∞ kBk∞
Data la matrice A = −1 0 −λ
e, quindi, posto δ = 0.01 si ha 0 0 −1
kδXk∞ kB − B̄k∞ 0.01
≤ 40401 = 40401 = 201
kXk∞ 2.01 2.01 a) studiare come varia il numero di condizionamento K(A(λ)) in norma
1
1 per |λ| ≤ e trovarne il massimo.
2
Si verifica facilmente che la soluzione del sistema AX = B è X =
kδXk
(1, 1)T , da cui kXk ∞ ≤ 201 b) Dato il sistema A 1
2 X = B, fornire una stima dell’errore relativo
∞
||δX||1 ||δB||
mentre X̄ = (−200, 200)T , da cui kδXk∞ = 200. ||X||1
corrispondente a un errore relativo ||B|| 1 = 10−2.
1
65 66
||δX|| ||δB||
b) ||X|| 1 ≤ K(A(1/2)) ||B|| 1 = 4 · 10−2
1 1
67 68
Si verifica facilmente che
Soluzione La matrice dei coefficienti del sistema è !
1 1.001 −1
A−1 =
det(A) −2 2
!
2 1 con det(A) = 0.002.
A=
2 1.001
Quindi
4
kAk∞ = 3.001 kA−1k∞ = ⇒ K∞(A) = 3.001·2·1000 = 6002
Il numero di condizionamento di A è : K(A) = kAkkA−1k. 0.002
69 70
da cui risulta
! ! ! q
2 2 2 1 8 4.002 kA−1k2 = ρ(A−1 T A−1) ≈ 1.5813 · 103
AT A = =
1 1.001 2 1.001 4.002 2.002001
e quindi
i cui autovalori λ1 e λ2 sono soluzione della seguente equazione di
secondo grado K2(A) = kAk2kA−1k2 = 3.1626 · 1.5813 · 103 = 5.0010 · 103.
λ2 − 10.002001λ + 0.000004
Poichè ρ(AT A) = max{|λ1|, |λ2|} = 10.00200060008001, risulta
In tutti e tre i casi il numero di condizionamento è molto alto, ne
q
segue che una piccola perturbazione sui dati, produce un errore non
kAk2 = ρ(AT A) ≈ 3.1626.
trascurabile sulla soluzione.
71 72
Per esempio, la soluzione del sistema procedente è x = (x, y), con Esercizio 4
x = 1501.5 e y = −3000.
Supponiamo ora di aver un errore pari a 0.001 sul coefficiente a22 della
matrice A, cioè di dover risolvere il sistema
(
2x+y =3
2 x + 1.002 y = 0
In questo caso la soluzione diventa x̃ = (x̃, ỹ), con x̃ = 751.5 e ỹ =
−1500, cioè , scegliendo la norma infinito, Il sistema in figura, , costituito da 4 molle che sostengono
kδ xk∞ 1500 1 3 pesi Wi, i = 1, .., 3, all’equilibrio soddisfa
= =
kxk∞ 3000 2 (k1 + k2 + k3 + k5)x1
−k3 x2 −k5x3 = W1
mentre −k3x1 +(k3 + k4) x2 −k4x3 = W2
kδ Ak∞ 0.001 −k5x1 −k4 x2+ (k4 + k5)x3 = W3
= = 3.33 · 10−4.
kAk∞ 3.001 con ki costante elastica della molla i − esima e xj spostamento della
massa j − esima rispetto alla posizione nel sistema non deformato.
73 74
Soluzione:
6k −k −2k
La matrice dei coefficienti del sistema è A = −k 2k −k da cui
−2k −k 3k
1 1 1
3 3 3
Ponendo k1 = k3 = k4 = k, k2 = k5 = 2k, W1 = W3 = 2W e W2 = W ,
1 8
stabilire se il numero di condizionamento del sistema, calcolato rispetto A−1 = 1
k
14
15
3 15
alle norme 1, 2 e inf inito, dipende dal valore del parametro k. Produrre
1 8 11
una maggiorazione dell’errore relativo sulla soluzione nel caso in cui il 3 15 15
valore del parametro W sia dato con errore pari a 0.03.
Poichè A, e quindi A−1, è simmetrica, il numero di condizionamento
di A rispetto alla norma 1 coincide con quello valutato rispetto alla
norma infinito, cioè
75 76
Poichè
kAk∞ = max{9k, 4k, 6k} = 9k Gli autovalori di A e A−1 non dipendono dal paramtero k in quanto
esso moltiplica tutti gli elementi delle due matrici, quindi anche K2(A)
1 27 24 27 non dipende dal valore del parametro k e per calcolarlo basta valutare
kA−1k∞ = max{ , , }= il numero di condizionamento delle matrici
k 15 k 15 k 15 k
risulta 1 1 1
27 81 3 3 3
K1(A) = K∞(A) = 9k = 6 −1 −2
15 k 5 1 8
A1 = −1 2 −1 e A−1
1 = 3
14
15
15
−2 −1 3
1 8 11
Quindi, il condizionamento del sistema rispetto alle norme 1 e infinito 3 15 15
77 78
Esercizio 5
1 2 3 4 5
0 3 4 5 6
Data la matrice A =
0 0 5 6 7
0 0 0 7 8
L’errore relativo della soluzione del sistema valutato rispetto alla norma 0 0 0 0 9
infinito soddisfa
kδxk∞ kδbk∞
< K∞(A) 15
kxk∞ kbk∞
18
in quanto la matrice A si suppone non affetta da errori. Poichè W ha e il termine noto b =
18
15
errore 0.03, kδbk∞ = max{2 · 0.03, 0.03, 2 · 0.03} = 0.06, e quindi
9
kδxk∞ 81 6 1 243
< =
kxk∞ 5 100 2W 500 W
1. Risolvere il sistema AX = b con un opportuno metodo diretto
79 80
Sistemi non lineari Sistemi lineari
F (X) = 0 → F (X) = AX − B AX = B
Sistemi lineari: Metodi iterativi X, F ∈ IRn X, B ∈ IRn A ∈ IRn×n
Sistemi non lineari Il punto unito X = Φ(X), X = [x1, x2, ..., xn]T , può essere
F (X) = 0 ⇔ X = Φ(X) con Φ = [ϕ1(X), ϕ2(X), ..., ϕn(X)]T approssimato generando la successione
Se X ∈ IRn è radice di F allora è punto unito di Φ:
(0) (0) (0)
F (X) = 0 ⇔ X = Φ(X)
X (0) = [x1 , x2 , ..., xn ]T dato
(k) (k−1) (k−1) (k−1)
x1 = ϕ1(x1 , x2 , ..., xn )
Sistemi lineari
X (0) dato
A X = B ⇔ X = C X+Q con Q = [q1, q2, ..., qn]T
⇔ x(k) = ϕ (x(k−1), x(k−1), ..., xn
(k−1)
)
2
2 1 2
h in X (k) = Φ(X (k−1))
C = cij i,j=0
······
k = 1, 2, ...
Se X ∈ IRn è soluzione di A X = B allora è punto unito
(k) (k−1) (k−1)
xn = ϕn(x1 , x2
(k−1)
, ..., xn )
di Φ = C X + Q:
n
X
(k) (k−1) Convergenza: lim kE (k)k = 0 ⇐⇒ lim X (k) = X
⇒ xi = cij xj + qi i = 1, . . . , n k→∞ k→∞
j=1
Se il metodo iterativo è convergente, in assenza di errori di arroton-
damento si ottiene la soluzione esatta dopo un numero infinito di
La matrice C ∈ IRn×n è chiamata matrice di iterazione. passi.
kΦ(X) − Φ(Y )k ≤ λkX − Y k < kX − Y k ∀X, Y ∈ S
Convergenza: lim
E (k)
= 0 ⇐⇒ lim X (k) = X
k→∞ k→∞
87 88
Contrazione: condizione sufficiente Metodi iterativi per sistemi lineari:
Matrice Jacobiana di Φ
condizione sufficiente di convergenza
∂ϕ1(X) ∂ϕ1 (X) ∂ϕ1 (X)
··· Matrice Jacobiana di Φ = C X + Q
∂x1 ∂x2 ∂xn
∂ϕ2(X) ∂ϕ2 (X) ∂ϕ2 (X) ∂ϕ1 (X) ∂ϕ1 (X) ∂ϕ1 (X)
··· ...
∂x1 ∂x2 ∂xn
∂x1 ∂x2 ∂xn
J(X) =
··· ··· ··· ··· ∂ϕ2(X) ∂ϕ2(X) ∂ϕ2 (X)
...
∂x1 ∂x2 ∂xn
J(X) = = C
∂ϕn(X) ∂ϕn (X) ∂ϕn (X)
··· .... .... .... ....
∂x1 ∂x2 ∂xn
∂ϕn(X) ∂ϕn(X) ∂ϕn (X)
...
∂x ∂x ∂x
1 2 n
Teorema. Se i) le funzioni di iterazione ϕ1 , ϕ2 , ..., ϕn sono continue e parzial-
mente derivabili in D;
ii) esiste λ ∈ (0, 1) tale che kJ(X)k ≤ λ per X ∈ D
Corollario. Se esiste λ ∈ (0, 1) tale che kCk ≤ λ
⇒ Φ è una contrazione in D ⇒ Φ è una contrazione per ogni X
⇒ il metodo iterativo è convergente
dim: ∀ X Y ∈ D, si può valutare kΦ(Y ) − Φ(X)k considerando lo sviluppo in serie di
Taylor arrestato al primo ordine della funzione Φ attorno a X, da cui risulta
Dim:
kΦ(Y ) − Φ(X)k ≤ kJ(X)k kY − Xk ≤ λkY − Xk.
∀ X 6= Y, kΦ(X) − Φ(Y )k = kC(X − Y )k ≤ kCkkX − Y k ≤ λkX − Y k
89 90
E (k) = X − X (k) = (CX + Q) − (CX (k−1) + Q) = Teorema. Una matrice A ∈ IRn×n è convergente se e solo se ρ(A) < 1
kE (k)k ≤ kC k k · kE (0)k = k C
| · C{z· · · C} k · kE
(0) k ≤ kCkk · kE (0) k E (k) = C E (k−1) = · · · = C k E (0)
k volte
lim E (k) = lim C k E (0) = 0 ⇐⇒ lim C k = 0 ⇐⇒ ρ(C) < 1
k→∞ k→∞ k→∞
| {z }
se kCk < 1 ⇒ lim kE (k)k = 0 matrice
k→∞ convergente
91 92
Criterio d’arresto Velocità asintotica di convergenza
Se il metodo iterativo è convergente, si arresta il procedimento quando Se A ∈ IRn×n è una matrice convergente, vale la proprietà
q
kX (k+1) − X (k)k < ε ε: tolleranza prefissata lim
k
kAk k = ρ(A)
k→∞
• kE (k)k = kX (k) − Xk = kX (k) − X (k+1) + X (k+1) − Xk =
Dalla relazione
= kX (k) − X (k+1) + E (k+1) k ≤ kX (k+1) − X (k) k + kE (k+1)k
| {z }
• kE (k+1)k ≤ kCk · kE (k) k ≤ kCk kX (k+1) −↓X (k) k + kE (k+1)k
kE (k)k ≤ kC k k · kE (0)k
kCk per k ”grande” si ottiene
kE (k+1) k ≤ · kX (k+1) − X (k) k
1 − kCk
kE (k)k
≤ kC k k ≈ ρk (C)
d’altra parte kE (0)k
kCkk+1
kE (k+1)k ≤ kCkk E (1) ≤ · kX (1) − X (0)k ≤ ε Stima a priori:
1 − kCk ⇒ L’errore si riduce di un fattore 10−m all’iterazione
il numero di iterazioni K necessario affinché
m
K'−
kE (K)k < ε, è dato da Log ρ(C)
!
(1 − kCk) ε 1
K > log
kX (1) − X (0)k log kCk Velocità asintotica di convergenza: V = −Log ρ(C)
93 94
Esercizio 1
β
0 β −
2
Traccia della soluzione
β
Data la matrice di iterazione C(β) = 0 β − , β ∈ IR, e il 1.1) Condizione sufficiente di convergenza: ||C||1 < 1 oppure ||C||∞ < 1
2
1 1 1 1 1 1
0 − ||C||1 = max(2|β| + , |β| + ) = 2|β| + ||C||1 < 1⇒|β| <
2 4 2 4 2 4
vettore Q = (7/8, 7/8, −1/2)T ,
3 1
|β| ≤
1.1) determinare per quali valori di β il procedimento iterativo 3 3 4 2 2
||C||∞ = max( |β|, ) = ||C||∞ < 1⇒|β| <
( 2 4
3
3
1
X (k+1) = C(β)X (k) + Q, k = 0, 1, . . . X (k) ∈ IR3 |β| |β| >
2 2
X (0) dato
Attenzione: le condizioni su β sono diverse a seconda della norma che
risulta sicuramente convergente;
si sceglie.
1.2) posto β = 1/2, X (0) = (0, 0, 0)T , dare una stima del numero di
iterazioni necessarie affinché l’approssimazione abbia 5 decimali esatti.
95 96
Condizione necessaria e sufficiente di convergenza:
ρ(C(β)) < 1
1 3 3 1
1.2) β = ⇒ ||C( 1
2 )||1 = 2 > 1 ||C( 1
2 )||∞ = <1 Autovalori di C(β): 0 con molteplicità 2, +β
2 4 4
||C( 1 3
2 )||∞ = 4 , ||X
(1) − X (0) || = ||Q|| = max |q | = 7 , ε = 0.5 · 10−5
∞ ∞ i 8
1
Velocità di convergenza: V (β) = −Log(ρ(C(β)) = −Log + β
4
⇒ K ≥ 47
Soluzione
99 100
Costruzione di metodi iterativi
Condizione necessaria e sufficiente per la convergenza ρ(C) < 1, cioè
! AX = B −→ X = CX + Q
1 + 2β − λ β
det = 0 ⇔ (1 + 2β − λ)2 − β 2 = 0
β 1 + 2β − λ
Splitting di A: A = M + N dove M è una matrice invertibile.
101
Metodo di Jacobi
Metodo di Gauss-Seidel
a12 a1n b1
0 − ··· − a11 CGS = −(D + L)−1 U
a11 a11 M = D + L, N = U ⇒
QGS = (D + L)−1 B
a a2n b2
M = D, N = L + U 21
⇓ − 0 ··· − a X (k) = CGS X (k−1) + QGS
a22 a22
CJ = −D−1(L + U ) CJ = QJ =
22
−1
QJ = D B ··· ··· ··· ··· · ·· ⇓
an1 an2 bn Algoritmo GS
− − ··· 0
ann ann ann
i−1 n
1 X X
Algoritmo J x(k+1)
i = − aij x(k+1)
j − aij x(k)
j + bi
aii j=1 j=i+1
1 i = 1, 2, . . . , n; k ≥ 0
n
X
X (k) = CJ X (k−1) +QJ ⇒ x(k+1)
i = − aij x(k)
j + bi
aii
j=1 Infatti, riscrivendo X (k+1) = CGS X (k) + QGS come (L + D)X (k+1) = −U X (k) + B e
j 6= i considerando che D + L è una matrice triangolare inferiore mentre U è triangolare
superiore con elementi nulli sulla diagonale principale, si ha
i = 1, 2, . . . , n; k ≥ 0
i
X n
X
Infatti, è una matrice diagonale i cui elementi diagonali sono a1ii , i = 1, . . . , n,
D −1 aij x(k+1)
j =− aij x(k)
j + bi .
mentre la matrice (L + U ) ha gli elementi sulla diagonale principale tutti uguali a 0. j=1 j=i+1
Moltiplicare a sinistra la matrice (L+U ) per D−1 , corrisponde a dividere ogni elemento L’ algorithm GS si ottiene, quindi, isolando la componente x(k+1)
i al primo membro.
della i − sima riga di (L + U ) per a1ii
102 103
Convergenza dei metodi di Jacobi e Gauss-Seidel
Esercizio
• Per verificare la convergenza si possono applicare alle matrici di
iterazione CJ e CGS le condizioni già viste: Dato il sistema lineare AX = B dove
1 1 −2
C.S.:
kCJ k1, kCJ k∞ < 1 e kCGS k1, kCGS k∞ < 1
C.N.S.: A=
2 1 2
, B = (1, 0, 0)T ,
ρ(CJ ) < 1 e ρ(CGS ) < 1
2 1 1
Attenzione: Le condizioni di convergenza per le matrici di itera-
zione CJ e CGS vanno verificate di volta in volta.
1.1) verificare quale tra i metodi di Jacobi e Gauss-Seidel risulta con-
• Per alcune matrici A potrebbe convergere solo uno dei due metodi. vergente;
• Se convergono entrambi i metodi, quello di Gauss-Seidel converge 1.2) approssimare la soluzione del sistema lineare con 6 decimali esatti.
più velocemente.
104 105
Traccia della soluzione 1.2) Per approssimare la soluzione del sistema lineare con 6 decimali
esatti, si può utilizzare il metodo di Jacobi arrestando le iterazioni
1 0 0 0 0 0 0 1 −2 quando
1.1) D = 0 1 0 L= 2 0 0 U = 0 0 2
||E (k+1)|| ' ||X (k+1) − X (k)|| ≤ 0.5 · 10−6 (criterio di arresto)
0 0 1 2 1 0 0 0 0
0 −1 2 0 −1 2 Iterazioni
CJ = −2 0 −2 CGS = 0 2 −6
−2 −1 0 0 0 2
X (0) = QJ = D−1B = (1, 0, 0)T
Entrambe le matrici hanno norma maggiore di 1, quindi la condizione
sufficiente di convergenza non è soddisfatta. Per verificare se è X (1) = CJ X (0) + QJ = (1, −2, −2)T ||X (1) − X (0)||∞ = 2
soddisfatta la condizione necessaria e sufficiente bisogna calcolare
il raggio spettrale delle matrici di iterazione. X (2) = CJ X (1) + QJ = (−1, 2, 0)T ||X (2) − X (1)||∞ = 4
Autovalori di CJ : 0 con molteplicità 3 X (3) = CJ X (2) + QJ = (−1, 2, 0)T ||X (3) − X (2)||∞ = 0
⇒ ρ(CJ ) = 0 ⇒ il metodo di Jacobi converge
Nota 1. In questo caso la soluzione è esatta.
Autovalori di CGS : 0 con molteplicità 1, 2 con molteplicità 2
⇒ ρ(CGS ) = 2 ⇒ il metodo di Gauss-Seidel non converge Nota 2. La velocità di convergenza è VJ = −Log(ρ(CJ )) = ∞.
106 107
Convergenza per matrici A Matrici (simmetriche) definite positive:
con struttura speciale
Matrici diagonalmente dominanti: Una matrice quadrata A ∈ IRn×n simmetrica è definita positiva se
n
X n
X n
X
|aii| > |aij | i = 1, 2, . . . , n |aii| > |aji| i = 1, 2, . . . , n X T AX = aij xixj > 0 ∀X ∈ IRn
j=1 j=1 i,j=1
j 6= i j 6= i
(diagonale dominanza (diagonale dominanza Per riconoscere se una matrice è definita positiva si può usare il criterio
per righe) per colonne) di Sylvester:
Condizione sufficiente di convergenza: Affinché una matrice A ∈ IRn×n simmetrica sia definita po-
Teorema. Se A è diagonalmente dominante per righe o per sitiva, è necessario e sufficiente che
colonne, i metodi di Jacobi e Gauss-Seidel sono entrambi det Ak > 0 k = 1, 2, . . . , n,
convergenti per qualunque scelta dell’approssimazione iniziale dove Ak sono le sottomatrici principali di testa di A.
X (0).
Condizione sufficiente di convergenza:
Per esempio, se A è diagonalmente dominante
per righe si ha
Teorema. Se A è (simmetrica) definita positiva, il
X
n
− aij X
n
1
kCJ k∞ = max a = max |aij | <1 metodo di Gauss-Seidel è convergente per qualunque scelta
1≤i≤n ii 1≤i≤n |aii |
j=1
j 6= i
j=1
j 6= i
dell’approssimazione iniziale X (0).
108 109
110 111
Considerando la k · k∞ risulta
cioè
2 2 3 2 3
kCJ k∞ = max{ , , }<1 ⇔ <1 ∧ < 1,
10 |α| |β| |α| |β|
0 1
− 10 1
− 10
cioè
CJ = − α1 0 −α
1
− β2 − β1 0
|α| > 2 ∧ |β| > 3.
con α 6= 0 e β 6= 0.
112 113
114 115
Infatti risulta
kE (K)k∞ < ε Viceversa, se si pone α = 4 e β = 3, il metodo di Jacobi non soddisfa
quando la condizione sufficiente rispetto alla norma k · k∞ mentre converge
! sicuramente rispetto alla norma k · k1. Inoltre
(1 − kCk∞) ε 1
K > log
kX (1) − X (0)k∞ log kCk∞ kE (K)k1 < 0.5 · 10−5
se
dove kCk∞ = 12 −5
13 , ε = 0.5 · 10 ,
K > 166.03
avendo scelto X(0) = [0 0 0]T
kX(1) − X(0)k = kX(1)k = kQJk∞ = 12
∞ ∞ 13
h i
2
ed essendo kX (1)k1 = k 10 1 1 T 2 + 1 + 1 = 47
k1 = 10
4 3 4 3 60
e Q= D−1B = [ ab1 b2
a22
b3 T
a33 ] = 2
[ 10 4
9
12 ]T ,
13
11
e kCk1 = 11
12
con B = [b1 b2 b3 ]T = [2 1 3]T vettore dei termini noti del siste-
ma.
116 117
2 1 |2α − 1| + |9 + 2α|
kCGS k∞ = max{ , , }<1
1 0 0 10 |α| 10|α||β|
10
se
(
1 1 0
(L + D)−1 = − 10α α . |α| > 1
|2α − 1| + |9 + 2α| < 10|α||β|
1 1 −2 1
− αβ 1
10β α β
Allora
Si osserva che α = 9 13
4 e β = 4 soddisfano la condizione precedente.
0 1
− 10 1
− 10
Quindi il metodo di Gauss-Seidel sicuramente converge per ogni scelta
dell’approssimazione iniziale.
1 9
CGS = 0 10α − 10α .
0 1 + 1
− 10αβ 9 1
+ 5β
5β 10αβ
118 119
Scegliendo X(0) = [0 0 0]T , sono necessarie
dove
K = 16
affinchè kE (K)k∞ < ε = 0.5 · 10−5.
1
10 0 0
Infatti, kCGS k∞ = 4
9
(L + D)−1 = 2
− 45
4
9 0 .
mentre
28
− 585 16
− 117 4
13
kX(1) − X(0)k∞ = kX(1)k∞ = kQGS k∞ = Si osserva che il metodo di Gauss-Seidel converge molto più ve-
locemente del metodo di Jacobi
1 16 404 T 404
= k(D + L)−1Bk∞ = k[ ] k∞ = Ripetere per kCGS k1.
5 45 585 585
120 121
Soluzione
1 4 0
La matrice dei coefficienti del sistema è A =
3 1 1
.
Esercizio
0 2 4
Dato il sistema
Si osserva subito che A non è a diagonale dominante nè per righe nè
x1 + 4x2 = 5
3x1 + x2 + x3 = 2 per colonne.
2x2 + 4x3 = 20
La matrice di iterazione del metodo di Jacobi è
122 123
Tuttavia, scambiando la prima e la seconda equazione del sistema, si
ottiene un sistema equivalente la cui matrice dei coefficienti è data da
124 125
ρ(ĈJ ) = max |λi| = 0.4257 < 1. e l’errore di approssimazione si riduce di un fattore 10−m all’iterazione
i
m m
In questo caso il metodo di Jacobi converge per ogni scelta della ap- K≈− = .
Log(ρ(ĈJ )) 0.8540
prossimazione iniziale.
126 127
Metodo di rilassamento (S.O.R.)
Il metodo di Gauss-Seidel può essere generalizato introducendo un e quindi
parametro di rilassamento ω 6= 0 nella decomposizione della matrice A: X (k) = Cω X (k−1) + Qω =
(k)
Convergenza del metodo di sovrarilassamento
vi è la soluzione del metodo di Gauss-Seidel mentre
130 131
La soluzione esatta è pi = 1 − Ni , i = 0, . . . , N .
132 133
134 135
ESERCIZIO 1 Soluzione ESERCIZIO 1
1.2) posto α = 1 e β = 1/4 stabilire se i metodi di Jacobi e di Gauss- 1.2) Per α = 1 e β = 1/4 la matrice
Seidel sono adatti ad approssimare la soluzione del sistema lineare;
3 1 0
1
1.3) in caso di convergenza, specificare per ciascun metodo la scelta G=
1 2 −2
dell’approssimazione iniziale.
0 −1
2
1
4
136 137
Per quanto riguarda la matrice di iterazione del metodo, data da 1.3) La convergenza dei metodi è indipendente dalla scelta dell’ appros-
simazione iniziale X (0) ∈ IR3. Una buona scelta può essere X (0) = 0
0 −1
3 0
per il metodo di Gauss-Seidel, del quale non è stata calcolata la
matrice di iterazione, e X (0) = D−1F = QJ per il metodo di Jacobi.
CJ = −D−1(L + U ) = 1
−2 0 1 ,
4
0 2 0 Si suggerisce di fare qualche iterazione di entrambi i metodi per
sia la norma 1 che la norma uniforme sono maggiori di 1. Per confrontare le differenti velocità di convergenza.
verificare la convergenza bisogna quindi calcolare il raggio spettrale,
cioé il massimo dei moduli degli autovalori di Cj :
s s
2 2
ρ(CJ ) = max( 0, )= ≈ 0.8165 < 1 ,
3 3
quindi anche il metodo di Jacobi è convergente.
ESERCIZIO 2 Soluzione Esercizio 2
dipendente dal parametro reale α, e vettore dei termini noti Affinchè il metodo di Jacobi converga per ogni scelta del punto iniziale,
è necessario che kCk∞ < 1.
b = [5 −2 1]T :
2.1) stabilire per quali valori del parametro α il metodo di Jacobi con-
1 1 |α| + 2 2 3 |α| + 2 2
verge per ogni scelta della approssimazione iniziale X(0); kCk∞ = max{ + , , } = max{ , , }.
|α| 2|α| 5 |α| 2|α| 5 |α|
3 < 2,
Poichè 2|α| ∀α 6= 0,
2.2) scelti α = 5
2 e X
(0) = [0 0 0]T , produrre una stima superiore |α|
del numero di iterazioni necessarie affinchè il metodo fornisca una |α| + 2 2
soluzione con almeno 5 decimali esatti. kCk∞ = max{ , }.
5 |α|
138 139
140
Soluzione ESERCIZIO 3
Inoltre, risulta
" #
1 n+2 −n
x nel caso in cui la soluzione del sistema sia x = [1, 1]T e il vettore A−1 = 2 2−1
n
det(An) −n
2−1
n
2
bn̄ subisca una perturbazione pari a
" #
5 · 10−2 e quindi
δ bn̄ = .
10−3
kA−1 −1
n k1 = kAn k∞
in quanto si verifica facilmente che det(An) = −1, ∀ n. Ne segue
che il numero di condizionamento di An risulta
K(An) = (n + 3)2,
143 144
ESERCIZIO 6 ESERCIZIO 7
6.2) posto γ = −1/2 e θ = 2/3 stabilire se i metodi di Jacobi e di • Stabilire se esistono valori di n per cui il metodo di Jacobi sicura-
Gauss-Seidel sono adatti ad approssimare la soluzione del sistema mente converge alla soluzione del sistema perturbato (A +δ A)(X +
δ X) = B, con δ A = diag (− n1, 1, 1, . . . , 1, −1
lineare; n n n n );
145 146
147 148
Soluzione √
il cui raggio spettrale ρ(CJ ) = max {|λi |}1≤i≤3 = 1/ 3. Infatti, gli autovalori λi di CJ
3
sono le soluzioni dell’equazione caratteristica −λ + λ/3 = 0.
Siano A la matrice del sistema, x il vettore della soluzione e b il vettore dei termini
noti. La matrice A non soddisfa le condizioni sufficienti di convergenza dei metodi di
Jacobi e di Gauss Seidel. In particolare, A non è a diagonale dominante per righe o La matrice di iterazione del metodo iterativo
per colonne (una condizione sufficiente per la convergenza dei due metodi iterativi),
e neanche simmetrica e definita positiva (condizione sufficiente per la convergenza Xk+1 = Xk − β(ĀXk − b̄)
del metodo di Gauss Seidel). Tuttavia, scambiando la seconda e la terza riga della è C(β) = I−β Ā, con I matrice identità . Affinchè il metodo converga più velocemente
matrice A, si ottiene la matrice del metodo di Jacobi, deve esistere almeno un β per cui
2 1 0 ρ(C(β)) < ρ(CJ ), (∗).
Ā = 1 3 1
0 1 2 Gli autovalori della matrice C(β) sono le soluzioni dell’equazione caratteristica
che risulta a diagonale dominante per righe e per colonne. Inoltre è simmetrica e (1 − 2β − λ)2(1 − 3β − λ) − 2β 2 (1 − 2β − λ) = 0,
definita positiva; infatti il determinante dei minori di testa di Ā è positivo: ovvero
det(Ā1 ) = 2 > 0; det(Ā2 ) = 6 − 1 = 5 > 0; det(Ā) = 12 − 4 = 8 > 0. (1 − 2β − λ)(λ2 − λ(2 − 5β) + 4β 2 − 5β + 1) = 0
Ne segue che i metodi di Jacobi e di Gauss-Seidel convergono alla soluzione del
cioè λ1 = 1 − 2β, λ2,3 = 2−5β±3β e quindi λ2 = 1 − β, λ3 = 1 − 4β. Ne segue che
sistema ĀX = b̄, con 2
ρ(C(β)) < 1 ⇔ 0 < β < 1/2 e
x1 1
X= x2 e b̄ = 0 1 − β β ≤ 2/5
ρ(C(β)) =
x3 2 4β − 1 β > 2/5
Poichè
In questo caso, la matrice di iterazione del metodo di Jacobi è √ √
1 − β < 1/ 3 ⇔ β > 1 − 1/ 3 ≈ 0.4226 > 2/5
0 −1/2 0 e
CJ = −1/3 0 −1/3 , √ √
0 −1/2 0 4β − 1 < 1/ 3 ⇔ β < (1 + 1/ 3)/4 ≈ 0.3943 < 2/5,
149
non esistono valori di β per cui il metodo iterativo considerato converge più veloce-
mente del metodo di Jacobi.
Poichè per una generica matrice M risulta ρ(M) ≤ kMk, con k · k norma di matrice
compatibile, la (∗) è sicuramente verificata per i valori di β tali che
ESERCIZIO 9 Si considerino i seguenti sistemi lineari:
kC(β)k∞ < ρ(CJ ),
x + 3x2 + 5x3 + 3x4 = −1
cioè 1 3x1 − x2 + 2x3 = 1
εx1 + x2 = 1 2x2 + 4x3 + 3x4 = −1
, , 9x1 − x2 − 4x3 = 0 .
x1 + x2 = 2 2x3 + x4 = 1
−6x + 6x = 1
1 3
√ 2x4 = 2
max |1 − 2β| + |β|, |1 − 3β| + 2|β| < 1/ 3
Stabilire per quali di essi il metodo di eliminazione di Gauss senza pivoting fornisce
ovvero
la soluzione esatta. Motivare la risposta.
√
|1 − 3β| + 2|β| < 1/ 3
che non è mai soddisfatta.
Tuttavia, in questo caso non si può concludere che non esiste alcun valore di β per
cui il metodo iterativo considerato converge più velocemente del metodo di Jacobi.
150
ESERCIZIO 11 Stabilire se i seguenti metodi iterativi
X(k+1) = (I − αA)X(k) + β B, α, β ∈ R
ESERCIZIO 10 Dati i seguenti sistemi lineari dipendenti dal parametro k ∈ R: X(k+1) = β((1 − α)I − A)X(k) + β B, α, β ∈ R
x1 − kx2 = 1 − k −x1 + x2 = −1 kx1 − x2 + kx3 = 1
−kx1 + x2 − kx3 = 1 − 2k , 0.5x1 + 2x2 − 0.5x3 = 2 , −x1 + kx2 − x3 = 0 , X(k+1) = D−1(D + A)X(k) + B, con D matrice diagonale: Dii = Aii, ∀ i
−x + x = 1 − k √2x + kx = 1 kx − x = 1
2 3 2 3 1 2
possono convergere alla soluzione del sistema lineare AX = B per ogni scelta
stabilire per quali valori di k è possibile calcolarne la soluzione in modo esatto usando
dell’approssimazione iniziale X0. Motivare la risposta.
il metodo di Thomas.
Suggerimento: Verificare che la soluzione del sistema è un punto unito delle funzioni
di iterazione che generano i procedimenti proposti.
151 152
153 154
ESERCIZIO 15
ESERCIZIO 14 Si consideri il sistema lineare AX = B con X ∈ Rn, B ∈ Rn e
A∈ Rn×n, n ∈ N e tale che
Si consideri il sistema lineare AX = B, con A ∈ Rn×n, X ∈ Rn×1,
1 −1 −1 ... −1 −1
0 1 −1 ... −1 −1
B ∈ Rn×1. Indicando con CJ la matrice di iterazione del metodo
A= 0 0 1 ... −1 −1
0 0 0 ... 1 −1 di Jacobi costruito per il sistema dato, stabilire per quali valori del
0 0 0 ... 0 1 parametro reale ω il seguente procedimento iterativo
Studiarne il condizionamento in funzione di n.
X(k+1) = (1 − ω)X(k) + ω CJ X(k)
Suggerimento: Mostrare che kAk∞ = n e che kA−1 k∞ = 2n−1. Utilizzare il metodo
sicuramente converge in norma infinito alla soluzione del sistema,
di sostituzione all’indietro per il calcolo di A−1 .
quando A è a diagonale dominante.
155 156
reale ω per cui il procedimento iterativo in (1) converge alla soluzione del sistema 2.1-2.5, 2.10-2.13, 2.17, 2.19 - 2.26, 2.30, 7.7, 7.15, 7.16, 7.19, 7.35, 7.41, 7.49,
dato per ogni scelta dell’approssimazione iniziale X(0) ∈ Rn×1. 7.52, 7.57, 7.58, 7.64
157 158