Sei sulla pagina 1di 14

PARTE 1

SOLUZIONE NUMERICA DI SISTEMI DI EQUAZIONI LINEARI

Uno dei problemi piu frequenti che si presenta nella matematica applicata
e la risoluzione di sistemi di equazioni lineari, poiche ad esempio moltissimi
problemi, anche molto complessi, vengono trattati numericamente dopo aver
fatto ricorso ad una semplicazione, ossia dopo averli resi lineari, e in pratica si
risolvono numericamente mediante la soluzione di opportuni sistemi lineari.
Anche in architetura, il problema della risoluzione di sistemi lineari e un
problema che si incontra spesso e che talvolta semplicato, perche non si hanno
a disposizione i programmi di calcolo adeguati. Qui vedremo come risolvere
sistemi lineari di larghe dimensioni mediante luso del programma per il calcolo
scientico MATLAB.
A questo scopo introduciamo il problema della soluzione di sistemi di equazioni
lineari, arontandolo dal punto di vista dell analisi numerica.

1.1 CONCETTI DI BASE


Cominciamo con losservare che, ad esempio, un sistema lineare 3 3 del tipo
del seguente

2x1 + 3x2 + 2x3 = 1


3x1 + 3x2 + 4x3 = 4

x1 x2 + 2x3 = 4

puo essere riscritto in forma pi compatta, usando matrici e vettori, nel modo
seguente:


2 3 2
x1
1
Ax = b, dove A = 3 3 4 , x = x2 , b = 2
1 1 2
x3
3
In generale, dato un sistema algebrico lineare Ax = b, con A matrice m n, b
vettore dei termini noti m 1, e x vettore delle incognite n 1, il problema
numerico consiste in:
a) individuare il carattere del sistema lineare, che puo essere univoca*
mente determinato (ossia avere una soluzione unica) oppure indeterminato ( os*
sia avere innite soluzioni) oppure impossibile (ossia non avere alcuna soluzione)
b) risolvere il sistema ossia determinare, se possibile, il vettore x
(se la soluzione e unica) oppure un vettore x (se le soluzioni sono
innite), che soddis il sistema.
Vediamo ora come si presenta il problema di individuare il carattere e la soluzione
di un sistema lineare dato.
1

Esaminiamo i seguenti sistemi dal punto di vista del tipo di soluzione che am*
mettono:
2x1 + 3x2 = 2 univocamente determinato
7x1 x2 = 3
(soluzione unica)
2x1 + 3x2 = 6 indeterminato
4x1 + 6x2 = 3 (innite soluzioni)
2x1 + 3x2 = 2
impossibile
4x1 + 6x2 = 3 (nessuna soluzione)
Gli esempi interpretati geometricamente indicano nel piano rispettivamente due
rette che si intersecano in un punto, due rette coincidenti, due rette parallele e
sono facilmente caratterizzabili.
Tuttavia se la ricerca del carattere di un sistema si conduce attraverso il calcolo
di determinanti, occorrono n! calcoli per ogni determinante; ad es. se n = 10,
n! 4000000.
Allora esaminiamo come, utilizzando i metodi numerici, possiamo trasformare il
problema in questione in un problema piu semplice, sia per quanto riguarda il
problema dell identicazione del carattere del sistema, sia per quanto riguarda
il problema della soluzione del sistema
Cominciamo dal caso pi semplice possibile. Supponiamo che nel sistema
lineare Ax = b la matrice A, n n, sia un matrice triangolare superiore che
indichiamo con U di elementi diagonali u11 , u22 , ..., unn .
I caso) uii = 0,
1 i n.
Allora l ultima equazione e del tipo unn xn = bn da cui si ha immediatamente
xn = bn /unn . Quindi, noto xn , dalla penultima equazione dove compaiono xn e
xx1 si ricava immediatamente xn1 e cosi di seguito poseguendo all indietro.
In pratica xi = bi ni+1 uij xj /uii , i = n 1, ..., 1.
Il sistema e univocamente determinato e la soluzione e determinabile con n2
operazioni oating point. Infatti osserviamo che occorrono n(n 1)/2 addizioni
+ sottrazioni ; n(n 1)/2 moltiplicazioni e n divisioni per un totale di n2
operazioni oating point.
Ad esempio per il seguente sistema triangolare:

2x1 + x2 + x3 = 1
3x2 x3 = 1

4x3 = 4


2 1 1
0
dove U = 0 3 1 , la soluzione x = 0 si ottiene con 9 oper*
0 0 4
1
azioni.
II caso) unn = 0, bn = 0
Allora l ultima equazione e del tipo 0 xn = 0 da cui si ha immediatamente
xn = arbitrario, giacche qualsiasi numero moltiplicato per 0 da 0. Quindi,
2

ssato xn , dalla penultima equazione dove compaiono xn e xx1 si ricava im*


mediatamente xn1 e cosi di seguito poseguendo all indietro come nel caso
precedente.
Il sistema e indeterminato e una soluzione e determinabile con n2 1 oper*
azioni oating point. Infatti osserviamo che occorrono n(n 1)/2 addizioni +
sottrazioni ; n(n1)/2 moltiplicazioni e n divisioni per un totale di n2 operazioni
oating point.
Ad esempio per il seguente sistema triangolare:

2x1 + x2 + x3 = 1
x2 + x3 = 2

0x3 = 0

2 1 1
1/2
dove U = 0 1 1 , la soluzione x = 2 si ottiene con 8 oper*
0 0 0

azioni.
III caso) unn = 0, bn = 0
Il sistema e impossibile: non ammette alcuna soluzione, infatti nessun numero
moltiplicato per 0 da un numero diverso da 0.
Le osservazioni fatte sopra varrebbero anche nel caso in cui la matrice A del
sistema fosse una matrice triangolare inferiore o ancora piu semplicemente un
matrice diagonale.
Allora nel caso di sistemi triangolari il problema della determinazione del
carattere di un sistema lineare si puo risolvere facilmente senza far ricorso ai
determinanti. Mostreremo nel seguito come i metodi numerici diretti triangolarizzino qualunque sistema utilizzando un numero di operazioni
competitivo rispetto a (n + 1)!.

1.2 METODO DELL ELIMINAZIONE DI GAUSS


Sia dato il sistema lineare Ax = b, dove A e una matrice n n.
Supponiamo quadrata la matrice del sistema, anche se quanto segue e general*
izzabile al caso di sistemi rettangolari.
Lo scopo dell eliminazione di Gauss e quello di trasformare il sistema dato in uno triangolare equivalente ( ossia che abbia la stessa
soluzione).
Prima di formalizzare il metodo, vediamo un semplice esempio.

2x1 + 3x2 + 2x3 = 1


3x1 + 3x2 + 4x3 = 4
(1)

x1 x2 + 2x3 = 4

2 3 2
dove la matrice dei coecienti e A = 3 3 4 .
1 1 2
Lo scopo che ci preggiamo e quello di ottenere un sistema equivalente a questo,
ma con la matrice dei coecienti triangolare superiore ossia tale da presentare
elementi nulli sotto la diagonale principale. Allora come primo passo, calcoliamo
(1)
(1)
m31 = a31 /a11 = 1/2
i seguenti moltiplicatori: m21 = a21 /a11 = 3/2;
(1)
Moltiplichiamo la prima equazione per m21 :

3x1 + 9/2x2 + 3x3 = 3/2


(2)
3x1 + 3x2 + 4x3 = 4

x1 x2 + 2x3 = 4

Nel nuovo sistema, sottraiamo la prima equazione dalla seconda e sostituiamo


con l equazione risultante la seconda, lasciando inalterate le altre:

2x1 + 3x2 + 2x3 = 1


3/2x2 + x3 = 5/2
(3)

x1 x2 + 2x3 = 4
(1)

Proseguendo, moltiplichiamo la prima equazione per m31 :

x1 + 3/2x2 + x3 = 1/2
3/2x2 + x3 = 5/2

x1 x2 + 2x3 = 4

(4)

Nel nuovo sistema, sottraiamo la prima equazione dalla terza:

2x1 + 3x2 + 2x3 = 1


3/2x2 + x3 = 5/2

5/2x2 + x3 = 7/2

(5)

Ed inne sottraiamo la seconda equazione dalla terza:

2x1 + 3x2 + 2x3 = 1


3/2x2 + x3 = 5/2

2/3x3 = 2/3

(7)

Abbiamo cosi ottenuto un sistema equivalente al precedente ma con la matrice


dei coecienti che presenta elementi nulli nella prima colonna sotto la diagonale
principale, come volevamo.
(2)
(2)
(2)
Come secondo passo, calcoliamo il seguente moltiplicatore: m32 = a32 /a22 =
5/3.
(2)
Proseguendo, moltiplichiamo la seconda equazione per m32 :

2x1 + 3x2 + 2x3 = 1


5/2x2 + 5/3x3 = 25/6
(6)

5/2x2 + x3 = 7/2

Abbiamo raggiunto lo scopo che ci eravamo proposti: abbiamo


ottenuto un

2
3
2
1
sistema triangolare dove la matrice dei coecienti e U = 0 3/2
0
0
2/3

1
e dal quale si ottiene facilmente la soluzione x = 1 .
1
Osserviamo che il sistema triangolare nale e equivalemte al sistema
originale perche per passare dall uno all altro sono state impiegate solo op*
erazioni elementari per riga.
Contiamo le operazioni eseguite.
per passare dal sistema (1)al sistema (2) abbiamo compiuto quattro moltipli*
cazioni: una per il calcolo del moltiplicatore e tre per trasformare la prima
equazione, evitando il prodotto (a21 /a11 )a11 perche e noto che poi tale termine
sottratto da a21 da 0.
Inoltre per passare da (2) a (3) abbiamo compiuto tre addizioni, e non quattro,
per il medesimo motivo.
Per passare da (3) a (5) abbiamo ripetuto lo stesso numero di operazioni.
Quindi in tutto per il primo passo abbiamo eseguito 2(4 + 3) = 14
operazioni.
Per il secondo passo, in modo analogo, abbiamo eseguito (3 + 2) = 5 operazioni.
Quindi in tutto occorrono 19 operazioni per trasformare un sistema 3 3 in
forma triangolare. In generale, e necessario il seguente numero di operazioni
oating point:
per la triangolarizzazione di A n n:
addizioni +sottrazioni
n(n 1)(2n 1)/6
moltipl. + divis.
n(n 1)/3
per le modiche del vettore b:
addizioni +sottrazioni n(n 1)/2
moltipl .+ divis.
n(n 1)/2
2 3
1 2
7
Totale
3n + 2n 6n
Dunque il numero di operazioni necessarie per risolvere un sistema lineare 3 3
con il metodo dell eliminazione gaussiana e proporzionale a n3 , o meglio , e
O(n3 ) e si legge "o grande di enne al cubo".
E chiaro che gia per n abbastanza piccolo, diciamo n = 6, la convenienza
di calcolo dell eliminazione gaussiana e evidente, infatti abbiamo 63 = 216,
mentre con luso dei determinanti abbiamo 6! = 720.
Vediamo ora come si puo formalizzare il procedimento dell eliminazione di Gauss esemplicato sopra.

In generale al kesimo passo della triangolarizzazione si ha:


(k)

(k)

(k)

(k)

mik

= aik /akk ,

(k+1)

= aij mik akj , bi


= bi
= k + 1, ..., n; i = k + 1, ..., n

aij

(k)

akk = 0

(k) (k)

(k+1)

(k)

(k) (k)

mik bk

Va notato che per una matrice dei coecienti di ordine n, l eliminazione di


Gauss richiede (n 1) passi.

1.3 METODO DELL ELIMINAZIONE DI GAUSS.CON PIVOT


Appare subito evidente che il metodo di Gauss non funziona quando
(k)
un qualsiasi elemento akk (detto
elemento pivotale) e nullo.

x1 + x2 + x3 = 1
x1 + x2 + 2x3 = 2 .
Vediamo un semplice esempio:

x1 + 2x2 + 2x
3 =1
x1 + x2 + x3 = 1
x3 = 1
Nel primo passo della triangolarizzazione si ha:

x2 + x3 = 0
(2)
Dunque a22 = 0; allora per poter continuare con il metodo di Gauss scambiamo le righe:

x1 + x2 + x3 = 1
x2 + x3 = 0

x3 = 1

A questo punto la triangolarizzazione e gia stata ottenuta.


Questo metodo numerico che prevede lo scambio di righe si dice ELIMINAZIONE DI GAUSS CON PIVOT.
La tecnica dello scambio del pivot puo essere parziale o totale.
Pivot parziale o per riga
(k)
Al passo k si calcola c = maxk i n |aik | ; questo e il massimo degli elementi
nella colonna k della matrice dei coecienti al passo k,cominciando dalla riga
(k)
k e procedendo verso il basso; se |akk | < c, allora si scambia la riga alla quale
appartiene c con la riga k*esima.
Questa strategia fa si che ad ogni passo l elemento sulla diagonale principale
(elemento pivotale) sia il piu possibile lontano da zero.
Osserviamo che usando la tecnica del pivot parziale ogni moltiplicatore soddisfa
|mik | 1, 1 k < i n.
Infatti un elemento pivotale di basso ordine di grandezza creerebbe molti plica*
tori di alto ordine di grandezza con la possibilita di perdita di cifre signicative.
A questo punto ci serve la denizione di matrice a diagonale dominante: se
in una matrice A, per ogni riga lelemento che sta sulla diagonale principale e in
valore assoluto maggiore della somma di tutti gli altri elementi della riga presi
in valore assoluto, allora la matrice A si dice a diagonale dominante.
6

Si dimostra che se A e una matrice a diagonale dominante l eliminazione di


Gauss non richiede pivot.
La tecnica del pivot totale coinvolge lo scambio delle colonne oltre a quello
delle righe, ma si usa assai raramente perche il pivot parziale e del tutto sod*
disfacente in pratica.
ESERCIZIO 1
Risolvere i seguenti sistemi
eliminazione gaussiana senza
di pivot
10 2 0 0
1 9 2 0

0 1 8 2

a) A =
0 0 1 5
0 0 0 1

0 0 0 0
0 0 0 0

1
1/2
b) A =
1/3
1/4

1/2
1/3
1/4
1/5

lineari in forma matriciale Ax = b mediante l


scambio di pivot (quando possibile) e con scambio

1/3
1/4
1/5
1/6

0
0
0
1
6
1
0

0
0
0
0
2
6
1

0
0
0
0
0
2
7

, b =

1/4

1/5
, b =

1/6
1/7

1
2
1
2
1
2
1

1
*1

1
*1

1.4 DETERMINANTE, RANGO E MATRICE INVERSA


La triangolarizzazione di una matrice A n n ore anche la possibilit di
calcolare direttamemente sia il determinante che il rango di A, con un numero
di operazioni nettamente inferiore ai metodi algebrici basati sui determinanti.
Infatti una volta raggiunta la forma triangolare della matrice, il suo determinante e dato da:
det(A) = (1)j ni=1 aii
dove j e il numero totale di scambi di righe (o colonne), avvenuti per il pivot.
Pertanto possiamo aermare che in ogni caso il valore assoluto del determinante
e dato dal prodotto degli elementi che si trovano sulla diagonale principale della
matrice trasformata in triangolare superiore.
OSSERVAZIONE Dalla matrice in forma triangolare si ricava dunque imme
diatamente se la matrice e singolare o no; infatti se almeno un elemento
sulla diagonale principale e nullo, allora la matrice ha il determinante uguale
a zero e dunque e singolare
Inoltre per quanto riguarda il rango della matrice A, rank(A), esso si ottiene
immediatamente dal numero delle numero di righe non nulle che restano nella
matrice triangolare superiore al termine delleliminazione di Gauss.

Ad esempio, la seguente matrice

1
1

1
A=
1

1
1

1 1 1
1
2 3 4
5
3 6 10 15
4 10 20 35
5 15 35 70
6 21 56 126

1
0

0
viene triangolarizzata nella seguente matrice
0

0
0

3
3
3
3
3
3
1
1
0
0
0
0

1
2
1
0
0
0

1
3
3
1
0
0

1
4
6
4
1
0

3
0
0
0
0
0

, da cui si

trae immediatamente che det(A) = 0, e che quindi la matrice e singolare; inoltre


si ha che rank(A) = 5.
Per quanto riguarda la matrice inversa, ricordiamo che data una matrice
quadrata A n n, la sua inversa (se esiste) e la matrice B tale che
AB = I,

BA = I

dove I e la matrice identita di ordine n.


Si dimostra che se A ha un inversa, ne ha una sola. L inversa di A si indica con
A1 .
ESERCIZIO 2

2
Vericare mediante la denizione che data la matrice A = 1
0

3/4 *1/2
1/4
1 *1/2
sua inversa e A1 = *1/2
1/4 *1/2
3/4

1
2
1

0
1 , la
2

Anche per calcolare A1 possiamo usare l eliminazione gaussiana. Per spiegare


operativamente come si procede usiamo come esempio un matrice A 3 3.
Indichiamo con X la matrice inversa che dobbiamo trovare. Allora deve essere
AX = I, ossia

a11 a12 a13


x11 x12 x13
1 0 0
a21 a22 a23 x21 x22 x23 = 0 1 0
a31 a32 a33
x31 x32 x33
0 0 1
Allora la prima colonna dell inversa deve essere tale da soddisfare:

a11 a12 a13


x11
1
a21 a22 a23 x21 = 0
a31 a32 a33
x31
0
8

Analogamente le altre due colonne. Pertanto le colonne dell inversa A1 sono


le soluzioni di tre simultanei sistemi lineari, tutti con la stessa matrice dei co*
ecienti A : dunque l eliminazione gaussiana puo essere usata per risolvere
questi sistemi.
Ad esempio se vogliamo calcolare l inversa di

1 1 *1
A = 1 2 *1
*2 1
1
Costruiamo la matrice orlata per i tre

1 1
A= 1 2
*2 1

sistemi lineari simultaneamente:

*1 1 0 0
*1 0 1 0
1 0 0 1

Eseguiamo la triangolarizzazione su tutta la


il primo passo abbiamo la matrice

1 1 *1
1
0 1 *1 *1
0 3 *1
2

matrice 3 6 cosi ottenuta; dopo


0
1
0

0
0
1

Dopo il secondo (e ultimo) passo abbiamo la matrice

1 1 *1
1
0 0
0 1 *1 *1
1 0
0 0
2
5 *3 1
Usando la sostituzione all indietro possiamo ora risolvere immediatamente i tre
sistemi triangolari:

1 1 *1
x11
1
0 1 *1 x21 = *1
0 0
2
x31
5

1
0
0

1
0
0

1
1
0
1
1
0

*1
*1
2

*1
*1
2


x12
x22 =
x32

x13
x23 =
x33

0
1
*3

0
0
1

Le soluzioni dei tre sistemi forniscono le colonne della matrice inversa

2
*1
0
A1 = 3/2 *1/2 1/2
5/2 *3/2 1/2
9

Questo procedimento puo essere facilmente generalizzato a matrici di ordine


arbitrario n.
OSSERVAZIONE: Il calcolo dell inversa e stato qui presentato come un
esempio di utilizzo dell eliminazione gaussiana, ma l inversa non viene MAI
usata nel calcolo numerico della soluzione di un sistema lineare, perche , a
parte i problemi di stabilita, il calcolo dellinversa di una matrice n n equivale
alla soluzione di n sistemi lineari (come si e visto nell esempio precedente con
n = 3) e dunque non e competitiva con la soluzione dell unico sistema lineare
considerato.

1.5 SOLUZIONE DI SISTEMI DI EQUAZIONI LINEARI:


METODI ITERATIVI
E stato messo in evidenza che leliminazione gaussiana puo essere troppo
costosa in termini di carico computazionale. Come alternativa, sono stati dunque
sviluppati i metodi iterativi. Essi si basano sull idea di calcolare la soluzione
del sistema lineare come limite di una successione (convergente) di vettori. Il
metodo iterativo, dunque, partendo da una approssimazione anche assai lontana
dalla soluzione, la rana no ad ottenere una approssimazione accurata quanto
si vuole.
Considerato Ax = b dove

25x1 + 4x2 x3 = 14
2x1 + 26x2 + 3x3 = 15.5

x1 + x2 + 24x3 = 12

possiamo facilmente vedere che la soluzione e calcolabile nel modo seguente:

x1 = (4x2 + x3 + 14)/25
x = (2x1 3x3 + 15.5)/26
2
x3 = (x1 x2 + 12)/24

Tuttavia e evidente che occorre conoscere x1 , x2 , x3 per calcolare x1 , x2 , x3 e


questo sembra un controsenso; supponiamo allora di partire da un iniziale ap*
prossimazione della soluzione vera e chiamiamo x(0) questa approssimazione;
scegliamo in modo arbitrario x(0) = [0 0 0] , dove l apice indica il vettore
trasposto , secondo la notazione usata dal MATLAB. Allora si ha al primo
passo:

(1)

x1 = (14 4 0 + 0)/25 = 0.56


(1)
x2 = (15.5 2 0 3 0)/26 = 0.60

(1)
x3 = (12 + 0 0)/24 = 0.50
10

dove abbiamo indicato in grassetto gli elementi del vettore iniziale usati per
(1) (1) (1)
calcolare la prima approssimazione x(1) = [x1 x2 x3 ] = [0.56. 0.60 0.50] .
Va messo in evidenza che conveniamo di usare un aritmetica a due cifre.
Proseguendo in modo analogo, il secondo passo fornisce la seguente soluzione
approssimata:

(2)

x1 = (14 4 0.6 + 0.5)/25 = 0.48


(2)
x2 = (15.5 2 0.56 3 0.5)/26 = 0.49

(2)
x3 = (12 + 0.56 0.60)/24 = 0.50

Di nuovo abbiamo indicato in grassetto gli elementi del vettore x(1) usati per
(2) (2) (2)
calcolare la seconda approssimazione x(2) = [x1 x2 x3 ] = [0.48. 0.49 0.50] .
Proseguendo in modo analogo si dimostra che ci si avvicina alla soluzione vera
x = [0.50 0.50 0.50] tanto quanto si vuole; osserviamo comunque che dopo
due passi siamo gia abbastanza vicini alla soluzione.
Il metodo sopra descritto si dice metodo iterativo di Jacobi.
A questo punto e bene denire con esattezza cosa si intende come errore
tra due vettori. Sia x il vettore che approssima il vettore vero x entrambi
di n elementi; allora deniamo lerrore tra i due vettori come il massimo degli
errori tra le componenti
Errore = max |xi xi |
1 i n

Questa denizione usa la denizione piu generale di norma di vettore; sia z un


vettore di ordine n allora deniamo la norma (innito) del vettore z nel modo
seguente
z = max |zi |
1 i n

Dunque l errore tra due vettori x e x puo essere denito anche come x x ,
ossia come la norma del vettore dierenza.
Analogamente si puo denire la norma (innito) di una matrice A n n
n

A = max

1 i n

|aij |
j=1

Si puo dimostrare che le norme soddisfano le seguenti disuguaglianze:


1) x + z x + z
2) A + B A + B
3) AB A B
4) Az A z
dove A e B sono matrici di ordine n n, mentre x e z sono vettori di ordine n.
Ricordiamo che ci sono molte altre denizioni di norme di vettori e matrici, ma
questa data sopra puo bastare per i nostri scopi.
Allora tornando all esempio precedente, vediamo che l errore al primo passo
e E1 = x x(1) = 0.10, mentre al secondo passo e E2 = x x(2) = 0.02;
11

dunque se ci accontentiamo di una sola cifra signicativa, siamo gia arrivati


alla soluzione; in questo caso ovviamente x(2) non e esattamente uguale a x,
ma lo approssima con l accuratezza che abbiamo deciso di avere.
Il problema fondamentale e quello della convergenza della successione dei vettori indipendentemente dal vettore iniziale x(0) .
Per poter stabilire delle condizioni che ci garantiscano la convergenza, riscrivi*
amo il metodo di Jacobi in forma matriciale. Allora scriviamo la matrice A nel
modo seguente:
A =D+L+U
D = diag(A)
L = matrice triangolare inferiore con zeri sulla diagonale principale
U = matrice triangolare superiore con zeri sulla diagonale principale
Il sistema Ax = b dunque diventa Dx = (L + U )x + b
Da cui si ha:
x = D1 (L + U )x + D1 b
= D1 (A D)x + D1 b
= (I D1 A)x + D1 b
Se diciamo B = D1 (L + U) = (I D1 A), e g = D1 b, possiamo scrivere il
metodo iterativo nella forma generale:
x = Bx + g
Allora la generica iterazione kesima e data da:
x(k+1) = Bx(k) + g
Esistono altri metodi iterativi che non vedremo, ma tutti assumono questa forma
generale, dove pero la matrice B viene costruita in forma diversa a seconda dei
metodi.

Teorema Condizione suciente per la convergenza del metodo iterativo,


indipendentemete dal vettore di partenza x , e che B < 1.
Si dimostra che quando A e a diagonale dominante, allora B < 1, e dunque
il metodo di Jacobi converge.
Riasumendo l analisi di un metodo iterativo si conduce esaminando i seguenti
punti:
i) convergenza;
ii) rapidita di convergenza;
iii) maggiorazione dell errore in termini di dierenza tra due iterate
successive.
Mettiamo in evidenza le seguenti considerazioni:

12

Non e detto che la velocita di convergenza si mantenga inalterata da un


passo ad un altro: puo variare anche se rispetta sempre le maggiorazioni
viste prima.
Per una matrice piena n n, ad ogni iterazione si esegue un numero di
operazioni dell ordine di 2n2 , dunque il metodo iterativo e competitivo
con un metodo diretto con la stessa accuratezza se converge in k iterate,
per k < n/3. nel caso di una matrice sparsa, ad esempio di p elementi non
nulli per riga, una iterazione richiede 2pn operazioni; dunque il metodo
iterativo in questo caso e competitivo quando k < n2 /3p.
E sempre possibile ridurre il numero delle iterate necessarie
per raggiungere una certa accuratezza, migliorando la scelta del
vettore iniziale.
ESEMPIO 1
Risolverecon il metodo di Jacobi
il sistema
lineare Ax = b, dove
10
3 1
14
A = 2 10 3 , b = 5
1
3 10
14
La matrice A e a diagonale dominante, dunque il metodo
di Jacobi converge

0 0.3 0.1
0
0.3
senza problemi. La matrice del metodo iterativo e B = 0.2
0.1 0.3
0
La soluzione esatta e x = [1 1 1] .
Per controllare la convergenza, calcoliamo B ; otteniamo B = 0.5.
Prendendo come vettore di partenza x = [0 0 0] si ottengono i seguenti risultati:
k
0
1
2
3
4

x1
0
1.4
1.11
0.929
0.9906

x2
0
0.5
1.20
1.055
0.964

x3
0
1.4
1.11
0.929
0.9906

Prendendo, invece, come vettore di partenza x = [0.8 0.8 0.8] , si ottengono i


seguenti risultati:
k
x1
x2
x3
0
0.8
0.8
0.8
1
1.08
0.9
1.08
2
1.02
1.04
1.02
3
0.986
1.011
0.986
4 0.9981 0.9929 0.9981
13

Questo esempio mostra che la velocita di convergenza (che si valuta in ter*


mini di stabilizzazione di cifre nelle iterate) puo variare da un passo ad un
altro e che varia molto al variare del vettore di partenza ( anche se dal punto di
vista teorico la convergenza non cambia).
OSSERVAZIONI CONCLUSIVE SUI METODI NUMERICI PER RI*
SOLVERE I SISTEMI LINEARI

Abbiamo visto come i metodi numerici per la soluzione dei sistemi lineari si
dividono in due gruppi principali: metodi diretti e metodi iterativi.
I metodi diretti forniscono teoricamente, la soluzione esatta. In generale
i metodi diretti classici sono preferibili per sistemi di ordine non troppo alto
(al di sotto del centinaio di equazioni). Esistono anche metodi diretti costruiti
ad hoc per matrici sparse e questi permettono di trattare con grande ecienza
anche sistemi sparsi di ordine molto piu elevato.
In MATLAB l eliminazione gaussiana con pivot parziale per riga e implemen*
tato direttamente con il comndo "\", che si legge "barra alla rovescia", percio
per risolvere un sistema lineare Ax = b, basta dare il comando x = A\b .
I metodi iterativi dieriscono dai precedenti in modo sostanziale, infatti
ottengono stime della soluzione che si avvicinano progressivamente ai valori
esatti. I metodi iterativi poi si prestano meglio ad essere implementati in versioni
perticolari che tengano conto della sparsita della matrice dei coecienti. Per
questi motivi i metodi iterativi sono preferibili per sistemi di ordine elevato,
come nel caso dei programmi agli elementi niti.

14