Sunteți pe pagina 1din 40

Calcul Numeric

Cursul 7

2011-2012



Anca Ignat
1
Metode iterative pentru rezolvarea sistemelor de ecuaii
liniare

= , ,
n n n
Ax b A b

e e (1)

- se presupune cunoscut c A este nesingular, det A 0;
- soluia exact a sistemului (1) se noteaz cu
*
x :

* 1
= x A b

(2)
- n - dimensiunea sistemului este "mare";
- A este matrice rar - cu "puine" elemente 0
ij
a = ;

2
- pentru a aproxima soluia
*
x matricea A nu se schimb
(transform) ci doar se folosesc elementele nenule ale
matricii ;
- se construiete un ir de vectori
( )
{ }
k n
x _ , ir care
n anumite cazuri, converge la
*
x :

( ) *
pentru
k
x x k



3
O schem general de deducere a unei metode iterative

Fie descompunerea:

= , , ,
n n
A B C B C R B

e uor inversabil (3)



Ce nseamn B "uor" inversabil ? Sistemul liniar, avnd ca
matrice a sistemului matricea B:

= Bx f

se rezolv uor (adic repede) ca n cazul sistemelor cu
matrici diagonale sau triunghiulare, de exemplu.
4

* * *
* * * 1 * 1 *
= =
= = =
Ax b Bx Cx b
Bx Cx b x B Cx B b Mx d


+ + +


unde

1 1
:= , :=
n n n
M B C d B b

e e (4)

irul
( )
{ }
k
x se construiete astfel:


( 1) ( ) (0)
:= , = 0,1, 2, ales arbitrar
k k n
x Mx d k x
+
+ e (5)

Vectorul
( 1) k
x
+
poate fi privit i ca soluia sistemului
liniar:

5

( )
= cu :=
k
Bx f f Cx b + (6)

Cunoscnd vectorul
( ) k
x , urmtorul element din ir,
( 1) k
x
+
,
se poate construi fie utiliznd relaia (5) (dac putem construi
matricea M explicit), fie rezolvnd sistemul liniar (6).

Matricea M poart numele de matricea iteraiei iar
vectorul
(0) n
x e se numete iteraia iniial.

Ne punem problema convergenei irului
( ) k
x :

( ) *
,
k
x x k
Se tie c aceast convergen nu are loc pentru orice matrice
B. Avem urmtorul rezultat general de convergen.
6
Teorema de convergen
Fie
n n
A

e o matrice nesingular i
, , det 0
n n
B C B

e = , astfel ca A=B-C. Fie


(0) n
x e un
vector oarecare i
( )
{ }
k
x irul de vectori dat de relaia (5) cu
M i d dai de (4). Atunci:


( ) * (0)
, , ( ) < 1
k
x x k x M (7)

unde
{ }
= | |; ( ) max valoare proprie a matricii M M
este raza spectral a matricii M. Dac exist o norm
matricial natural astfel ca ||M|| < 1 atunci irul
( )
{ }
k
x
converge la soluia
*
x a sistemului (1).

( ) ( ) 0
1 , , .
k
M x x k x
-
< (8)
7
Demonstraie: Scznd relaiile (5) i x Mx d
- -
= + obinem:

( 1) * ( ) *
= ( ) , = 0,1, 2,
k k
x x M x x k
+

Avem:

( ) * ( 1) * 2 ( 2) * (0) *
= ( ) = ( ) = = ( )
p p p p
x x M x x M x x M x x



( ) * (0) *
= ( ) ,
p p
x x M x x p
Prin urmare:
( ) *
, 0 ,
p p
x x p M p

0 , ( ) < 1
p
M p M

8
Dac:
( ) * (0)
|| ||< 1 0 , ,
p p
M M p x x p x


Evaluarea erorii absolute
( ) *
|| ||
k
x x

Presupunem ||M||<1 ( irul
( )
{ }
k
x converge la
*
x ).
Avem din (5):

( ) ( )
( ) ( )
1
1
l l
l l
Mx d
Mx d
x
x
+

= +
= +




( 1) ( ) ( ) ( 1)
= ( )
l l l l
x x M x x l
+

9
Pentru orice k, j, folosind relaiile de mai sus, avem:

( 1) ( ) ( ) ( 1) ( 1) ( )
= ( ) = = ( ) ,
k j k j k j k j j k k
x x M x x M x x k j
+ + + + + +


Aplicnd succesiv relaia precedent obinem:

( ) ( ) ( ) ( 1) ( 1) ( 2)
( 2) ( 1) ( 1) ( )
1
( 1) ( )
=0
=
=
= ( )
k p k k p k p k p k p
k k k k
p
k j k j
j
x x x x x x
x x x x
x x
+ + + + +
+ + +

+ + +
+ + +
+ +

10
1 1
( ) ( ) ( 1) ( ) ( 1) ( )
=0 =0
= ( ) = ( )( )
p p
k p k k j k j j k k
j j
x x x x M x x

+ + + + +




Fcnd p obinem:
* ( ) ( ) ( 1)
=0
= ( ) ( )
k j k k
j
x x M M x x


1
=0
|| ||< 1 = ( )
j
n
j
M M I M


Mai avem i evaluarea:
1
1 1
|| ||< 1 || ( ) ||
1 || || 1 || ||
n
M I M
M M

s s
+


11
Prin urmare:
* ( ) ( ) ( 1)
|| ||
|| || || ||
1 || ||
k k k
M
x x x x
M

s



Aceast relaie ne spune c din punct de vedere practic
putem opri algoritmul atunci cnd diferena dintre dou
iteraii succesive devine suficient de mic, acest lucru
asigurnd apropierea de soluie.
n continuare vom particulariza matricea B.
12
Memorarea matricilor rare

- se memoreaz doar valorile nenule i suficiente informaii
despre indici astfel ca s se poat reconstitui complet
matricea
Pp. c matricea A are NN elemente nenule.

Memorare comprimat pe linii

Se folosesc 3 vectori:
valori vector de numere reale de dimensiune NN
ind_col vector de indici de dimensiune NN
inceput_linii vector de ntregi de dimensiune n+1
13
n vectorul valori se memoreaz elementele nenule ale
matricii A n ordinea liniilor iar n vectorul ind_col se
memoreaz indicii de coloan ai elementelor din valori. n
vectorul inceput_linii se stocheaz indicele/poziia n
vectorul valori / ind_col al/a primului element de pe linia i
memorat n vectorii valori / ind_col.

- inceput_linii(n+1) = NN+1
- inceput_linii(i+1) inceput_linii(i) =
numrul de elemente nenule de pe linia i, i=1,n

14
102.5 0.0 2.5 0.0 0.0
3.5 104.88 1.05 0.0 0.33
0.0 0.0 100.0 0.0 0.0
0.0 1.3 0.0 101.3 0.0
0.73 0.0 0.0 1.5 102.23
A
| |
|
|
| =
|
|
|
\ .



n=5 , NN=12

valori = ( 102.5, 2.5, 0.33, 1.05, 104.88, 3.5, 100.0,
101.3, 1.3, 1.5, 0.73, 102.23 )

ind_col = ( 1, 3, 5, 3, 2, 1, 3, 4, 2, 4, 1, 5)

inceput_linii = (1, 3, 7, 8, 10, 13)
15
Dac se tie c matricea are maxim n_max elemente nenule
pe fiecare linie se pot folosi 2 matrici pentru memorarea rar:

valori matrice de numere reale de dimensiune n x n_max
ind_col matrice de indici de dimensiune n x n_max

n matricea valori se memoreaz pe linia i elementele
nenule de pe linia i a matricii A iar n matricea ind_col se
memoreaz indicii de coloan ai elementelor corespunztoare
din matricea valori.




16
102.5 0.0 2.5 0.0 0.0
0.0 104.88 1.05 0.0 0.33
0.0 0.0 100.0 0.0 0.0
0.0 1.3 0.0 101.3 0.0
0.73 0.0 0.0 1.5 102.23
A
| |
|
|
| =
|
|
|
\ .




102.5 2.5 0 1 3 0
104.88 1.05 0.33 2 3 5
_ 100.0 0 0 3 0 0
101.3 1.3 0 4 2 0
102.23 1.5 0.73 5 4 1
valori ind col
| | | |
| |
| |
| | = =
| |
| |
| |
\ . \ .


17
Diagonalele matricii A:

( )
( )
( )
( )
( )
0 11 22
1 12 23 1
1 21 32 1
2 13 24 2
2 31 42 2
: , , ,
: , , ,
: , , ,
: , , ,
: , , ,
nn
n n
nn
n n
nn
d a a a
d a a a
d a a a
d a a a
d a a a


Pentru matricile care au elementele nenule plasate pe
cteva din diagonalele matricii A (n_d diagonale cu
elemente nenule) se pot folosi pentru memorare o matrice i
un vector:
18

diag matrice cu numere reale de dimensiune n x n_d
diag_no vector de ntregi de dimensiune n_d

n matricea diag se memoreaz pe coloane diagonalele cu
elemente nenule iar n diag_no este specificat numrul
diagonalei care e memorat n coloana j a matricii diag.
_ ( )
( , )
i i diag no j
diag i j a
+
=
20.5 2.0 0.0 0.0 0.0
0.0 40.5 3.0 0.0 0.0
1.0 0.0 100.0 0.0 0.0
0.0 2.3 0.0 101.5 4.0
0.0 0.0 3.0 0.0 102.5
A
| |
|
|
| =
|
|
|
\ .



19

20.5 2.0
40.5 3.0
_ ( 2, 0,1) 1.0 100.0 0.0
2.3 101.5 4.0
3.0 102.5
diag diag no
-
| |
|
-
|
| = =
|
|
|
-
\ .


Alte tipuri de memorri:
http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index
.jsp?topic=%2Fcom.ibm.cluster.essl.v5r1.essl100.doc%2Fa
m501_smstor.html


20
Metoda Jacobi pentru rezolvarea sistemelor liniare

Fie sistemul:
= , ,
n n n
Ax b A b

e e
cu
det 0 , 0 , = 1, 2, ,
ii
A a i n = =
Alegem:

11
22
11 22
0 0
0 0
= diag[ , , , ] =
0 0
nn
nn
a
a
B a a a
a
| |
|
|
|
|
\ .



21
11 22
det = 0
nn
B a a a =

11
1
22
11 22
1
0 0
1
0 0
1 1 1
= diag[ , , , ] =
1
0 0
nn
nn
a
a
B
a a a
a

| |
|
|
|
|
|
|
|
|
|
\ .



Matricea C este:
22
12 13 1
21 23 2
31 32 3
1 2 3
0
0
0 = =
0
n
n
n
n n n
a a a
a a a
a a a C B A
a a a

| |
|

|
|
|
|
|

\ .



daca
= ( ) =
0 daca =
ij
n n
ij ij
a i j
C c c
i j



Matricea iteraiei se poate calcula i are forma:
23
13 1 12
11 11 11
23 2 21
22 22 22
1
31 32 3
33 33 33
1 2 3
0
0
:= =
0
0
n
n
n
n n n
nn nn nn
a a a
a a a
a a a
a a a
M B C a a a
a a a
a a a
a a a

| |

|
|
|

|
|
|

|
|
|
|
|

|
\ .


24
( ) daca
= ( ) =
0 daca =
ij
n n
ii ij ij
a
i j
a M m m
i j



Construim vectorul g:

( ) ( )
1
: , = ( )
k n k n
i i
g Mx Mx g
=
= e

Componentele vectorului g sunt:

( ) ( ) ( )
=1 =1
=1
= = = ( ) / , 1, ,
n n n
ij
k k k
i ij j j ij j ii
j j
j
ii
j i j i
a
g m x x a x a i n
a
= =
=


25
Vectorul d este:
1
1
= = ( ) , = , 1, ,
n n
i
i i i
ii
b
d B b d d i n
a

=
e =
irul
( )
{ }
k n
x _ se construiete folosind formula:

( 1) ( ) ( 1)
= = , = 1, ,
k k k
i i i
x Mx d x g d i n
+ +
+ +

( )
=1
( 1)
= , = 1, ,
n
k
i ij j
j
j i
k
i
ii
b a x
x i n
a
=
+
| |
|

|
|
\ .


26

1
( ) ( )
=1 = 1
( 1)
( )
= , = 1, ,
i n
k k
i ij j ij j
j j i
k
i
ii
b a x a x
x i n
a

+
+



(9)

Formula (9) descrie metoda lui Jacobi de aproximare a
soluiei unui sistem liniar.







27
Condiii suficiente de convergen

Propoziia 1

( ) *
|| ||< 1 ,
k
M x x k .

Demonstraie. Fie
*
x soluia sistemului Ax=b. Din relaia
A=B-C rezult
* *
Bx Cx b = + sau
* *
. x Mx d = +
Procesul iterativ
( 1) ( ) k k
x Mx d
+
= + conduce la relaia:

( ) ( )
( )
( ) ( )
1
1 0 * * * *
k
k k k
x x M x x M x x M x x
+
+
= s s s


28
n continuare vom aplica aceast propoziie pentru diverse
norme.


Din
1
2
2
=1 =1
|| || = ( ) < 1
n n
F ij
i j
M m

deducem:

2
( ) *
=1
=1
< 1 ,
n n
ij
k
j
i
ii
j i
a
x x k
a
=
| |

|
\ .

(10)



29
Din
1
=1
|| || = max{ | |; = 1, , } < 1
n
ij
i
M m j n

deducem:

( ) *
=1
| |
< 1 = 1, , ,
| |
n
ij
k
i
ii
i j
a
j n x x k
a
=
| |

|
\ .

(11)

(Criteriul dominanei diagonalei pe linii)
Din
=1
|| || = max{ | |; = 1, , } < 1
n
ij
j
M m i n


deducem:
( ) *
=1
| |
( ) < 1 = 1, , ,
| |
n
ij
k
j
ii
j i
a
i n x x k
a
=


30

( ) *
=1
lim
| |<| | = 1, , =
n
k
ij ii
j
k
j i
a a i n x x

=
(12)

(Criteriul dominanei diagonalei pe coloane)

( ) *
1
=1
| |<| | = 1, , 1 =
lim
n
k
ij jj
k
i
i j
a a j n M x x

=
<

(13)






31
Metoda Gauss-Seidel pentru rezolvarea sistemelor
liniare

Considerm din nou sistemul liniar:

= , ,
n n n
Ax b A b

e e
cu

det 0 , 0 , = 1, 2, ,
ii
A a i n = =


Putem deduce metoda Gauss-Seidel din metoda lui Jacobi
astfel:

32
1
( 1) ( ) ( )
=1 = 1
1
( 1) ( 1) ( )
=1 = 1
= ( ) / , = 1, , Jacobi
= ( ) / , = 1, , Gauss-Seidel
i n
k k k
i i ij j ij j ii
j j i
i n
k k k
i i ij j ij j ii
j j i
x b a x a x a i n
x b a x a x a i n

+
+

+ +
+






Cnd calculm
( 1) k
i
x
+
cunoatem deja
( 1)
1
k
x
+
,,
( 1)
1
k
i
x
+

i
putem folosi aceste valori n prima sum.
Deducerea metodei Gauss-Seidel din schema general se
face lund:
33
11
21 22
31 32 33
1 2 3
0 0 0
0 0
0 =
n n n nn
a
a a
a a a B
a a a a
| |
|
|
|
|
|
|
\ .



daca
= ( ) =
0 daca >
ij
n n
ij ij
a j i
B b b
j i



Matricea B este nesingular ( 0,
ii
a i = ):

11 22
det = 0
nn
B a a a =
34
Matricea C este:
12 13 1
23 2
3
1
0
0 0
0 0 0
= =
0 0 0
0 0 0 0
n
n
n
n n
a a a
a a
a
C B A
a


| |
|

|
|

|
|
|
|
\ .



daca <
= ( ) =
0 daca
ij
n n
ij ij
a i j
C c c
i j

e

>


n cazul metodei Gauss-Seidel, vectorul
( 1) k
x
+
se obine din
( ) k
x rezolvnd sistemul inferior triunghiular (7) din schema
35
general:

( )
= =
k
Bx Cx b f + (14)

Soluia sistemului (14) este dat de formula:


1 1
=1 =1
= ( ) / = ( ) / , = 1, 2, ,
i i
i i ij j ii i ij j ii
j j
x f b x b f a x a i n




(15)

Vectorul f este:


( )
= ( ) , = 1, 2, ,
k
i i i
f Cx b i n + (16)
36

( ) ( ) ( )
=1 = 1
( ) = = , = 1, ,
n n
k k k
i ij j ij j
j j i
Cx c x a x i n
+


(17)

Folosind formula de rezolvare a sistemelor inferior
triunghiulare (15), relaiile (16) i (17) avem:

1
( ) ( 1)
= 1 =1
( 1)
( )
= , = 1, 2, ,
n i
k k
i ij j ij j
j i j
k
i
ii
b a x a x
x i n
a

+
+
+







37
Condiii suficiente de convergen pentru
metoda Gauss-Seidel

Propoziia 1
Dac matricea A este astfel nct:

2
=1
=1
( ) < 1
n n
ij
j
i
ii
j i
a
a
=



atunci are loc convergena irului construit cu metoda Gauss-
Seidel la soluia sistemului Ax=b:

( ) * (0)
,
k n
x x k x e
38

Propoziia 2 (Criteriul dominanei diagonalei pe linii)

Dac matricea A este astfel nct:


=1
| |<| | = 1, ,
n
ij ii
j
j i
a a i n
=


atunci:
( ) * (0)
,
k n
x x k x e




39

Propoziia 3 (Criteriul dominanei diagonalei pe
coloane)

Dac matricea A este astfel nct:


=1
| | < | | = 1, ,
n
ij jj
i
i j
a a j n
=



atunci metoda Gauss-Seidel converge:

( ) 0 ( ) *
lim
k
k
x x x

= ,