Dividiamo
A
{\displaystyle A}
in tre matrici
D
+
L
+
U
{\displaystyle D+L+U}
, dove
D
{\displaystyle D}
è la matrice diagonale,
L
{\displaystyle L}
la triangolare inferiore stretta (con 0 sulla diagonale principale),
U
{\displaystyle U}
triangolare superiore stretta.
Nel caso del metodo di Jacobi
A
=
M
−
N
{\displaystyle A=M-N}
con
M
=
D
{\displaystyle M=D}
e
N
=
−
(
L
+
U
)
{\displaystyle N=-(L+U)}
(
N
{\displaystyle N}
è uguale ad
A
{\displaystyle A}
con zeri sulla diagonale principale).
A
x
=
(
M
−
N
)
x
=
b
{\displaystyle A{\boldsymbol {x}}=(M-N){\boldsymbol {x}}={\boldsymbol {b}}}
⟶
x
=
M
−
1
N
x
+
M
−
1
b
{\displaystyle \longrightarrow \,{\boldsymbol {x}}=M^{-1}N{\boldsymbol {x}}+M^{-1}{\boldsymbol {b}}}
A
=
M
−
1
N
,
c
=
M
−
1
b
{\displaystyle A=M^{-1}N,\quad {\boldsymbol {c}}=M^{-1}{\boldsymbol {b}}}
e tenendo conto delle espressioni di
M
{\displaystyle M}
e
N
{\displaystyle N}
:
P
=
−
D
−
1
(
L
+
U
)
,
c
=
D
−
1
b
{\displaystyle P=-D^{-1}(L+U),\,{\boldsymbol {c}}=D^{-1}{\boldsymbol {b}}}
Indicando con
P
j
{\displaystyle P_{j}}
la matrice d'iterazione del metodo di Jacobi si ha:
x
k
=
P
j
x
k
−
1
+
c
j
{\displaystyle {\boldsymbol {x}}_{k}=P_{j}{\boldsymbol {x}}_{k-1}+{\boldsymbol {c}}_{j}}
e moltiplicando per
D
{\displaystyle D}
:
D
x
k
=
D
P
j
x
k
−
1
+
D
c
j
{\displaystyle D{\boldsymbol {x}}_{k}=DP_{j}{\boldsymbol {x}}_{k-1}+D{\boldsymbol {c}}_{j}}
e sostituendo le espressioni ricavate prima:
D
x
k
=
−
(
L
+
U
)
x
k
−
1
+
b
{\displaystyle D{\boldsymbol {x}}_{k}=-(L+U){\boldsymbol {x}}_{k-1}+{\boldsymbol {b}}}
Considerando la
i
{\displaystyle i}
-esima equazione si ha:
x
i
=
−
∑
j
≠
i
A
i
j
x
j
(
k
−
1
)
+
b
i
A
i
i
{\displaystyle x_{i}={\frac {-\sum _{j\neq i}A_{ij}x_{j}^{(k-1)}+b_{i}}{A_{ii}}}}
In questo caso si pone
M
=
D
+
L
{\displaystyle M=D+L}
, invece
N
=
−
U
{\displaystyle N=-U}
, e si ricava:
P
=
−
(
D
+
L
)
−
1
U
,
c
=
(
D
+
L
)
−
1
b
{\displaystyle P=-(D+L)^{-1}U,\quad {\boldsymbol {c}}=(D+L)^{-1}{\boldsymbol {b}}}
Come prima, moltiplichiamo per
M
{\displaystyle M}
la relazione
x
k
=
P
x
k
−
1
+
b
{\displaystyle {\boldsymbol {x}}_{k}=P{\boldsymbol {x}}_{k-1}+{\boldsymbol {b}}}
e otteniamo
(
D
+
L
)
x
k
=
−
U
x
k
−
1
+
b
{\displaystyle (D+L){\boldsymbol {x}}_{k}=-U{\boldsymbol {x}}_{k-1}+{\boldsymbol {b}}}
cioè
D
x
k
=
−
L
x
k
−
U
x
k
−
1
+
b
{\displaystyle D{\boldsymbol {x}}_{k}=-L{\boldsymbol {x}}_{k}-U{\boldsymbol {x}}_{k-1}+{\boldsymbol {b}}}
Considerando l'equazione
i
{\displaystyle i}
-esima,
x
i
(
k
)
=
−
∑
j
<
i
A
i
j
x
j
(
k
)
−
∑
j
>
i
A
i
j
x
j
(
k
−
1
)
A
i
i
{\displaystyle x_{i}^{(k)}={\frac {-\sum _{j<i}A_{ij}x_{j}^{(k)}-\sum _{j>i}A_{ij}x_{j}^{(k-1)}}{A_{ii}}}}
Teniamo conto che nel prodotto con la triangolare inferiore si utilizzano le informazioni già aggiornate al passo
k
{\displaystyle k}
-esimo, e sopravvivono solo gli elementi con colonne di indice minori di
i
{\displaystyle i}
. Nell'altro prodotto invece si utilizzano le informazioni ricavate al passo
k
−
1
{\displaystyle k-1}
.
Definizione
Data una matrice
A
∈
C
n
,
n
{\displaystyle A\in \mathbb {C} _{n,n}}
diciamo che:
1.
A
{\displaystyle A}
è diagonalmente dominante in senso stretto per righe se vale
|
A
i
i
|
>
∑
j
≠
i
|
A
i
j
|
i
=
1
,
…
,
n
{\displaystyle |A_{ii}|>\sum _{j\neq i}|A_{ij}|\quad i=1,\dots ,n}
2.
A
{\displaystyle A}
è diagonalmente dominante in senso stretto per colonne se vale
|
A
i
i
|
>
∑
i
≠
j
|
A
j
i
|
{\displaystyle |A_{ii}|>\sum _{i\neq j}|A_{ji}|}
3.
A
{\displaystyle A}
è diagonalmente dominante in senso debole per righe se
|
A
i
i
|
≥
∑
j
≠
i
|
A
i
j
|
{\displaystyle |A_{ii}|\geq \sum _{j\neq i}|A_{ij}|}
e se esiste almeno un indice
i
¯
{\displaystyle {\bar {i}}}
tale che
|
A
i
¯
,
i
¯
|
>
∑
j
=
1
n
|
A
i
¯
,
j
|
{\displaystyle |A_{{\bar {i}},{\bar {i}}}|>\sum _{j=1}^{n}|A_{{\bar {i}},j}|}
Definizione
A
∈
C
n
,
n
{\displaystyle A\in \mathbb {C} _{n,n}}
si dice riducibile se esiste
π
{\displaystyle \pi }
matrice di permutazione tale che
B
=
π
A
π
t
{\displaystyle B=\pi A\pi ^{t}}
può essere descritta a blocchi come:
A
11
A
12
0
A
22
{\displaystyle {\begin{array}{cc}A_{11}&A_{12}\\0&A_{22}\end{array}}}
con il primo blocco fatto da
k
{\displaystyle k}
righe e l'ultimo da
n
−
k
{\displaystyle n-k}
righe.
Se
A
,
B
{\displaystyle A,B}
sono come sopra, dato il sistema lineare
B
x
=
b
{\displaystyle B{\boldsymbol {x}}={\boldsymbol {b}}}
esso si può riscrivere come:
(
A
11
A
12
0
A
22
)
×
(
x
1
x
2
)
=
(
b
1
b
2
)
{\displaystyle \left({\begin{array}{cc}A_{11}&A_{12}\\0&A_{22}\end{array}}\right)\times \left({\begin{array}{c}x_{1}\\x_{2}\end{array}}\right)=\left({\begin{array}{c}b_{1}\\b_{2}\end{array}}\right)}
allora si ottengono le equazioni
{
A
11
x
1
+
A
12
x
2
=
b
1
A
22
x
2
=
b
2
{\displaystyle {\begin{cases}A_{11}x_{1}+A_{12}x_{2}=b_{1}\\A_{22}x_{2}=b_{2}\end{cases}}}
e risolvendo prima la seconda e sostituendo poi
x
2
{\displaystyle x_{2}}
nella prima otteniamo un sistema disaccoppiato.
Consideriamo le matrici
1
3
0
0
2
−
1
0
0
2
{\displaystyle {\begin{array}{ccc}1&3&0\\0&2&-1\\0&0&2\end{array}}}
Associamo questa matrice di ordine
n
=
3
{\displaystyle n=3}
a un grafo con tre nodi
1
,
2
,
3
{\displaystyle 1,2,3}
. Per ogni entrata della matrice, quando
A
i
j
≠
0
{\displaystyle A_{ij}\neq 0}
collego il nodo
i
{\displaystyle i}
con il nodo
j
{\displaystyle j}
con un arco orientato da
i
{\displaystyle i}
a
j
{\displaystyle j}
. Ad esempio,
A
i
i
=
1
{\displaystyle A_{ii}=1}
quindi traccio un arco che entra ed esce nel nodo 1. Nel caso di questa matrice, possiamo andare dal nodo 1 al 2 seguendo l'arco orientato tracciato in corrispondenza di
A
12
=
3
{\displaystyle A_{12}=3}
, possiamo andare dal nodo 2 al 3 lungo l'arco tracciato in corrispondenza di
A
23
=
−
1
{\displaystyle A_{23}=-1}
, ma non possiamo andare in nessun modo dal nodo 3 all'1 perché
A
31
=
0
{\displaystyle A_{31}=0}
.
Consideriamo invece la matrice
1
3
0
0
2
−
1
−
1
0
2
{\displaystyle {\begin{array}{ccc}1&3&0\\0&2&-1\\-1&0&2\end{array}}}
Nel caso della seconda matrice, c'è un cammino chiuso che connette tutti i nodi.
Una matrice
A
{\displaystyle A}
è irriducibile se e solo se il grafo associato è fortemente connesso ovvero se e solo se esiste un cammino dal nodo
i
{\displaystyle i}
al nodo
j
{\displaystyle j}
per ogni coppia di nodi
i
,
j
{\displaystyle i,j}
.
Quindi la prima matrice è riducibile e la seconda non lo è.
Le condizioni sufficienti per la convergenza del metodo di Jacobi sono le seguenti:
1.
A
{\displaystyle A}
è diagonalmente dominante in senso stretto (per righe o colonne)
Dim. Sappiamo che
|
A
|
∞
=
max
i
=
1
n
[
∑
j
=
1
n
|
A
i
j
|
]
{\displaystyle \vert A\vert ^{\infty }=\max _{i=1}^{n}[\sum _{j=1}^{n}|A_{ij}|]}
Nel metodo di Jacobi la matrice di permutazione è
P
=
M
−
1
N
=
−
D
−
1
(
L
+
U
)
{\displaystyle P=M^{-1}N=-D^{-1}(L+U)}
Se calcolo la norma infinito della matrice di Jacobi
P
j
{\displaystyle P_{j}}
, si ha:
|
P
|
≤
|
D
−
1
|
∗
|
L
+
U
|
{\displaystyle \vert P\vert \leq \vert D^{-1}\vert *\vert L+U\vert }
Sfruttando il fatto che
A
{\displaystyle A}
è diagonalmente dominante in senso stretto sulle righe, si ha:
|
L
+
U
|
≤
max
i
|
A
i
i
|
{\displaystyle \vert L+U\vert \leq \max _{i}|A_{ii}|}
(infatti la somma di ogni riga privata dell'elemento diagonale è minore dell'elemento diagonale)
|
D
−
1
|
=
1
max
i
|
A
i
i
|
{\displaystyle \vert D^{-1}\vert ={\frac {1}{\max _{i}|A_{ii}|}}}
quindi
|
P
|
≤
1
max
i
|
A
i
i
|
∗
max
i
|
A
i
i
|
≤
1
{\displaystyle \vert P\vert \leq {\frac {1}{\max _{i}|A_{ii}|}}*\max _{i}|A_{ii}|\leq 1}
ρ
(
P
)
<
1
{\displaystyle \rho (P)<1}
e il metodo converge.
2.
A
{\displaystyle A}
è diagonalmente dominante in senso debole (per righe o per colonne)
3.
A
{\displaystyle A}
è irriducibile.
Nelle stesse ipotesi converge anche il metodo di Gauss-Seidel, però per questo metodo vale anche la seguente proposizione:
Data una matrice
A
{\displaystyle A}
m
×
n
{\displaystyle m\times n}
hermitiana, non singolare il metodo di Gauss-Seidel converge se e solo se
A
{\displaystyle A}
è definita positiva (la fattorizzazione di Cholesky, che determina se una matrice è definita positiva oppure no, è un buon modo per determinare se il metodo di Gauss-Seidel converge o no).
Sia
A
∈
C
n
,
n
{\displaystyle A\in \mathbb {C} _{n,n}}
tridiagonale, siano
a
=
(
a
1
,
…
,
a
n
)
diagonale principale
{\displaystyle {\boldsymbol {a}}=(a_{1},\dots ,a_{n}){\hbox{ diagonale principale}}}
c
=
(
c
1
,
…
,
c
n
−
1
)
sopradiagonale
{\displaystyle {\boldsymbol {c}}=(c_{1},\dots ,c_{n-1}){\hbox{ sopradiagonale}}}
b
=
(
b
2
,
…
,
b
n
)
sottodiagonale
{\displaystyle {\boldsymbol {b}}=(b_{2},\dots ,b_{n}){\hbox{ sottodiagonale}}}
Se
λ
{\displaystyle \lambda }
è un autovalore della matrice di iterazione di Jacobi, allora
λ
2
{\displaystyle \lambda ^{2}}
è un autovalore per
P
g
{\displaystyle P_{g}}
(matrice di iterazione di Gauss-Seidel). Inoltre, se
λ
≠
0
{\displaystyle \lambda \neq 0}
è un autovalore di
P
g
{\displaystyle P_{g}}
, allora
±
λ
{\displaystyle \pm {\sqrt {\lambda }}}
è un autovalore di
P
j
{\displaystyle P_{j}}
.
Allora per le matrici tridiagonali,
ρ
(
P
g
)
=
ρ
(
P
j
)
2
{\displaystyle \rho (P_{g})=\rho (P_{j})^{2}}
, allora Gauss-Seidel è convergente se e solo se Jacobi è convergente. Inoltre se Gauss-Seidel converge, ha un tasso di convergenza del doppio rispetto a Jacobi, infatti il tasso asintotico di convergenza è
log
ρ
(
P
)
{\displaystyle \log \rho (P)}
e si ha
ρ
(
P
g
)
ρ
(
P
j
)
=
log
ρ
(
P
j
)
log
ρ
(
P
j
)
2
=
1
/
2
{\displaystyle {\frac {\rho (P_{g})}{\rho (P_{j})}}={\frac {\log \rho (P_{j})}{\log \rho (P_{j})^{2}}}=1/2}
(tuttavia non è detto che sia sempre più conveniente usare Gauss-Seidel).
Consideriamo la relazione:
|
E
k
|
≤
|
P
k
|
∗
|
E
k
−
1
|
{\displaystyle \vert E_{k}\vert \leq \vert P^{k}\vert *\vert E_{k-1}\vert }
Allora valgono le seguenti definizioni
fattore di convergenza
=
|
P
k
|
fattore di convergenza medio
=
|
P
k
|
1
/
k
tasso di convergenza medio
R
k
(
P
)
=
−
1
/
k
log
|
P
k
|
tasso asintotico di convergenza
R
(
P
)
=
lim
k
→
∞
r
k
(
P
)
=
log
ρ
(
P
)
{\displaystyle {\begin{array}{cc}{\hbox{fattore di convergenza}}&=\vert P^{k}\vert \\\hline \\{\hbox{fattore di convergenza medio}}&=\vert P^{k}\vert ^{1/k}\\\hline \\{\hbox{tasso di convergenza medio}}&R_{k}(P)=-1/k\log \vert P^{k}\vert \\\hline \\{\hbox{tasso asintotico di convergenza}}&R(P)=\lim _{k\to \infty }r_{k}(P)=\log \rho (P)\end{array}}}
La definizione di tasso asintotico di convergenza non dipende né dalla norma né dal passo.
Si considera la differenza fra un'iterata e la successiva, misurata con una certa norma, e si richiede che il metodo si arresti quando è verificata la condizione
|
x
k
−
x
k
−
1
|
≤
ε
{\displaystyle \vert {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1}\vert \leq \varepsilon }
dove
ε
{\displaystyle \varepsilon }
è una tolleranza assegnata.
E
k
=
|
x
∗
−
x
k
|
{\displaystyle E_{k}=\vert {\boldsymbol {x}}_{\ast }-{\boldsymbol {x}}_{k}\vert }
⟶
|
x
k
−
x
k
−
1
|
=
|
x
k
−
x
∗
|
+
|
x
∗
−
x
k
−
1
|
≤
E
k
+
E
k
−
1
{\displaystyle \longrightarrow \,\vert {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1}\vert =\vert {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{\ast }\vert +\vert {\boldsymbol {x}}_{\ast }-{\boldsymbol {x}}_{k-1}\vert \leq E_{k}+E_{k-1}}
=
E
k
−
1
+
P
∗
E
k
−
1
=
(
I
+
P
)
∗
E
k
−
1
{\displaystyle =E_{k-1}+P*E_{k-1}=(I+P)*E_{k-1}}
Quindi
x
k
−
x
k
−
1
≤
(
I
+
P
)
E
k
−
1
{\displaystyle {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1}\leq (I+P)E_{k-1}}
⟶
E
k
−
1
=
(
I
+
P
)
−
1
(
x
k
−
x
k
−
1
)
{\displaystyle \longrightarrow \,E_{k-1}=(I+P)^{-1}({\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1})}
Passando alla norma:
|
E
k
−
1
|
≤
|
(
I
+
P
)
−
1
|
∗
|
x
k
−
x
k
−
1
|
relazione
∗
{\displaystyle \vert E_{k-1}\vert \leq \vert (I+P)^{-1}\vert *\vert {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1}\vert \quad {\hbox{relazione }}\ast }
Applichiamo il teorema: se
|
A
|
<
1
{\displaystyle \vert A\vert <1}
con norma matriciale indotta, allora
I
+
A
{\displaystyle I+A}
è non singolare e
|
(
I
+
A
)
−
1
|
≤
1
1
−
|
A
|
{\displaystyle \vert (I+A)^{-1}\vert \leq {\frac {1}{1-\vert A\vert }}}
Allora, sostituendo l'espressione trovata per
|
(
I
+
P
)
−
1
|
{\displaystyle \vert (I+P)^{-1}\vert }
nella relazione
∗
{\displaystyle \ast }
ottengo:
|
E
k
−
1
|
≤
1
1
−
|
P
|
∗
|
x
k
−
x
k
−
1
|
{\displaystyle \vert E_{k-1}\vert \leq {\frac {1}{1-\vert P\vert }}*\vert {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1}\vert }
Quindi
|
E
k
|
=
|
P
E
k
−
1
|
≤
|
P
|
∗
|
E
k
−
1
|
{\displaystyle \vert E_{k}\vert =\vert PE_{k-1}\vert \leq \vert P\vert *\vert E_{k-1}\vert }
=
|
P
|
1
−
|
P
|
|
x
k
−
x
k
−
1
|
{\displaystyle ={\frac {\vert P\vert }{1-\vert P\vert }}\vert {\boldsymbol {x}}_{k}-{\boldsymbol {x}}_{k-1}\vert }
Il test è affidabile tranne nel caso in cui
|
P
|
≃
1
{\displaystyle \vert P\vert \simeq 1}
.
Il residuo è la quantità
b
−
A
x
{\displaystyle {\boldsymbol {b}}-A{\boldsymbol {x}}}
. Si definisce il residuo al passo
k
{\displaystyle k}
come
b
−
A
x
k
{\displaystyle {\boldsymbol {b}}-A{\boldsymbol {x}}_{k}}
. Scelta una norma, si impone che la norma del residuo sia minore di
ε
{\displaystyle \varepsilon }
, e il metodo si arresta quando questa condizione è verificata.
Sapendo che
A
x
∗
=
b
{\displaystyle A{\boldsymbol {x}}_{\ast }={\boldsymbol {b}}}
allora
R
k
=
b
−
A
x
k
=
A
∗
(
x
∗
−
x
k
)
=
A
∗
E
k
equazione dell'errore
{\displaystyle R_{k}={\boldsymbol {b}}-A{\boldsymbol {x}}_{k}=A*({\boldsymbol {x}}_{\ast }-{\boldsymbol {x}}_{k})=A*E_{k}\quad {\hbox{equazione dell'errore}}}
allora
E
k
=
A
−
1
R
k
{\displaystyle E_{k}=A^{-1}R_{k}}
|
E
k
|
=
|
A
−
1
R
k
|
≤
|
A
−
1
|
∗
|
R
k
|
{\displaystyle \vert E_{k}\vert =\vert A^{-1}R_{k}\vert \leq \vert A^{-1}\vert *\vert R_{k}\vert }
=
K
(
A
)
|
A
|
∗
|
R
k
|
{\displaystyle ={\frac {K(A)}{\vert A\vert }}*\vert R_{k}\vert }
Allora l'errore assoluto è controllato bene dal residuo, se il numero di condizionamento non è molto grande.
Il test del residuo è affidabile se il problema non è malcondizionato.
Se invece vogliamo stimare l'errore relativo:
|
E
k
|
|
x
∗
|
{\displaystyle {\frac {\vert E_{k}\vert }{\vert {\boldsymbol {x}}_{\ast }\vert }}}
≤
|
A
−
1
|
∗
|
R
k
|
|
x
∗
|
{\displaystyle \leq {\frac {\vert A^{-1}\vert *\vert R_{k}\vert }{\vert {\boldsymbol {x}}_{\ast }\vert }}}
Allora, osserviamo che:
|
b
|
≤
|
A
|
∗
|
x
∗
|
{\displaystyle \vert {\boldsymbol {b}}\vert \leq \vert A\vert *\vert {\boldsymbol {x}}_{\ast }\vert }
⟶
1
|
x
∗
|
≤
|
A
|
|
b
|
{\displaystyle \longrightarrow {\frac {1}{\vert {\boldsymbol {x}}_{\ast }\vert }}\leq {\frac {\vert A\vert }{\vert {\boldsymbol {b}}\vert }}}
allora
|
E
k
|
|
x
∗
|
≤
|
A
−
1
|
∗
|
A
|
∗
|
R
k
|
|
b
|
{\displaystyle {\frac {\vert E_{k}\vert }{\vert {\boldsymbol {x}}_{\ast }\vert }}\leq {\frac {\vert A^{-1}\vert *\vert A\vert *\vert R_{k}\vert }{\vert {\boldsymbol {b}}\vert }}}
=
K
(
A
)
∗
|
R
k
|
|
b
|
{\displaystyle =K(A)*{\frac {\vert R_{k}\vert }{\vert {\boldsymbol {b}}\vert }}}
La quantità
|
R
k
|
|
b
|
{\displaystyle {\frac {\vert R_{k}\vert }{\vert {\boldsymbol {b}}\vert }}}
viene chiamata residuo relativo, se supponiamo
r
0
=
b
{\displaystyle r_{0}={\boldsymbol {b}}}
se
x
0
=
0
{\displaystyle {\boldsymbol {x}}_{0}=0}
. L'errore relativo viene controllato dal residuo relativo a meno di condizionamento.
Il costo computazionale dell'iterazione è
o
(
n
2
)
{\displaystyle o(n^{2})}
operazioni per iterazione, mentre se la matrice è sparsa il costo è
o
(
n
)
{\displaystyle o(n)}
.