Sunteți pe pagina 1din 24

Modelare numerica pentru probleme la limita.

pagina 11

Capitolul 2 Elemente de Algebra Liniara


Problema principala la care se reduc majoritatea metodelor numerice este rezolvarea sistemelor de ecuatii liniare, care sunt produse pentru determinarea necunoscutelor primare. in acest capitol vom revedea cteva elemente importante, concepte si rezultate ale algebrei liniare privitoare la aceasta problema.

2.1 Operatori liniari Operatorul (sau functionala) L cu domeniul de definitie S, este un operator liniar daca pentru oricare u, v ! S si oricare a, b ! R, are loc egalitatea,

L(au + bv ) = a( Lu) + b( Lv),


Exemple de operatori liniari sunt: matricele de dimensiune m"n

(2.1)

"a11, a12 ,..., a1n % $ ' $a21, a22 ,..., a2 n ' , $... ' $ ' #am1, am 2 ,..., amn &
operatorii diferentiali (in coordonate carteziene),

(2.2)

!
gradient,
$# $# $# i+ j+ k, $x $y $z

"# = grad # =

( pentru j functie scalara )

(2.3)

divergenta,
! "u = div u = # u #v #w + + , # x #y #z

(u = ui + vj + wk),

(2.4)

operatorul lui Laplace,


!

Capitolul 2 Elemente de Algebra Liniara. pagina 12

%2 # %2 # %2 # " # = $# = + + , %x 2 %y 2 %z 2
2

( pentru # functie scalara sau vectoriala ) (2.5)

rotor (rot sau curl),

j k' $i &# # #) ! " u = rot u = curl u = & , #x #y #z ) & %u v w ) (


operatorul Cauchy-Rieman (pentru probleme 2-D),

u = iu + jv + kw,

(2.6)

1 $ "# "# ' " # = & + i ), 2 % "x "y (


operatorul lui Schrdinger,

i = *1, ( pentru # functie scalara ),

(2.7)

!
S (") = #" $ %&", #t % ' C, ( pentru " functie scalara ),
(2.8)

operatorul lui d'Alembert,

!
! = !2 ! !t2 " "! , (pentru ! scalar sau vector) (2.9)

operatori integrali (sau transformari integrale), transformata Laplace,


#

F ( p) = F { f ( t )} =

$ f (t ) e
0

" pt

dt , p = % + i& ' C,

( f este functia original ), (2.10)

transformata Laplace inversa (sau transformarea Mellin-Fourier),

! f (t) = 1 # +i$ % F ( p) e pt dp, 2"i # -i$ ( F este imaginea Laplace a lui f ),


(2.11)

Modelare numerica pentru probleme la limita. pagina 13

transformata Mellin,
#

G ( s) = M {g( x )} =

$ g(x) x
0

s"1

dx, s = % + i& ' C,

( g este functia original ),

(2.12)

transformata Mellin inversa,

!
1 g( x ) = G(s) x # sds, & 2"i $# i%
$ + i%

(G este imaginea Mellin a lui g),

(2.13)

transformarea Fourier (continua),


!

g(", #) =

1 2$

2$

& &e
0 0

' i"r cos(('#)

f ( r, () rd(dr,

( f este functia original ),

(2.14)

transformarea Fourier inversa,

! 1 f ( r, ") = 2#
$ 2#

% %e
0 0

& i'r cos("&()

g(', () 'd' d(, (g este imaginea Fourier a lui f),

(2.15)

transformarea Hankel,

!
h ( x ) = H " { f ( x )} =
$

% f (x)J (x#) xdx,


" 0

( f este functia original ,

(2.16)

J " este functia Bessel de primul tip si ordin " ),


transformarea Hankel inversa,

f ( x) =

% h(")J (x") "d",


# 0

(h este imaginea Hankel a lui f),

(2.17)

operatorul de convolutie,

!
t

F (t) =

$ f (t " #)g( #)d#,


0

(g (t ) este o functie data ),

(2.17a)

Capitolul 2 Elemente de Algebra Liniara. pagina 14

2.2 Norme. Produs intern in aplicatiile numerice este necesara "masurarea" unor "obiecte" de tip vectori, matrice sau operatori. Similar cazului marimilor fizice fundamentale (lungime, timp, masa, etc.), este de asteptat ca prin aceasta operatie sa se evalueze "marimile" acestor obiecte prin numere reale, pozitive. "Mijlocul" de masura este construit prin introducerea unei clase de functii scalare (functii sau functionale), simbolizate prin || || si numite norme. Daca S este un spatiu vectorial, finit sau infinit dimensional, si daca |||| este o aplicatie scalara S # R + $ {0} care are proprietatile,

1. || v || " 0, || v || = 0 # v $ 0, % v & S ,
2. || a v || = | a | || v ||, " v # S , a # R ,

( pozitivitate )

(2.18) (2.19) (2.20)

(omotetie )

! 3. || v + w || " || v || + || w ||, # v, w $ S ,
!

( inegalitatea triunghiului )

atunci |||| este o norma a lui S. Proprietatile (2.18) - (2.20) trebuiesc verificate, indiferent ca S

! este un spatiu de vectori, functii sau operatori. De exemplu, daca S este un spatiu vectorial finit
dimensional cu elemente (vectori) de forma v = (v1, v2, ..., vN)T, atunci marimea lui v se poate masura cu norma Euclidiana,
" N 2% = $ ! vi ' # i =1 &
1/2

|| v ||2

(2.21)

Un alt obiect important este produsul scalar (sau intern) al spatiului care, similar normei, produce o valoare reala pozitiva si care, asa cum vom vedea, este generatorul unei norme. in cazul spatiilor vectoriale masurabile in norma euclidiana, produsul intern se calculeaza prin,
N

< v, w > =

! vi wi ,
i =1

(2.22)

unde v, w ! S iar N este dimensiunea spatiului S. Produsul scalar poseda si proprietatile,

1. < v, v > = || v ||2 2,


2. < v, w > " || v ||2 || w ||2 .

(2.23) (Schwarz-Cauchy-Bouniakowski) (2.24)

Modelare numerica pentru probleme la limita. pagina 15

Datorita proprietatii (2.23) aceasta norma este numita si energetica. Specific acestei norme este forma patratica care in unele cazuri are semnificatie, fiind de exemplu energia sistemului. Cele mai uzuale norme folosite pentru masurarea spatiilor S de matrice sau vectori,
"a1,1 a1,2 ... a1,M % $ ' a2,1 a2,2 ... a2,M ' $ A = {ai, j } = , $.... ' $ ' #aN ,1 aN1,2 ... aN ,M &

v = (v1, v 2 ,..., v N ) ,

(2.25)

sunt,
!

pentru matrice norma-max


M

pentru vectori

|| A ||" = max $ | ai, j |,


1# i# N j =1

|| v ||! = max | vi |,
1" i" N

(2.26)

norma-1 !
|| A ||1 = max

N 1! j ! M i =1

" | ai, j |,

|| v ||1 = ! | vi |.
i=1

(2.27)

norma-2 (Euclidiana)
#M N &1/2 2 || A ||2 = % % " " ai, j ( ( , $ i=1 j =1 '

"N % || v ||2 = $ ! v 2 j' # j= 1 &

1/2

(2.28)

norma-p a unui vector, v = (v1, v2, ..., vN)T, !

" N % || v || p = $ ! | vi | p ' # i =1 &

1p

(2.29)

Atunci cnd se compara vectori si matrice, este necesara masurarea lor in norme compatibile, iar ecuatiile (2.26) - (2.28) indica cteva astfel de norme. O teorema importanta a Analizei Functionale este teorema de echivalenta algebrica a normelor. Ea demonstreaza ca in cazul

Capitolul 2 Elemente de Algebra Liniara. pagina 16

spatiilor finit dimensionale toate normele sunt egal indreptatite, sau sunt algebric echivalente. in consecinta, din punct de vedere calculatoriu, este posibil si recomandabil sa se selecteze acele norme a caror evaluare necesita un numar ct mai mic de operatii aritmetice. De exemplu, efortul aritmetic asociat calcularii normei-max, ec. (2.26), este mai mic dect cel necesar calcularii normei-2, ec. (2.28), in care intervin radacini si puteri. in cazul spatiilor functionale, pe baza produsului intern, este definita norma L2,

|| " ||2 L 2 = ", " =

$ w" d#
#

(2.30)

fata de functia w, numita functie pondere. De exemplu, norma Cebsev utilizata in metodele ! spectrale este,

|| ! ||2 L2 =

1 "1

! ( x )2
1" x
2

dx ,

(2.31)

cu ponderea w( x ) = 1 pentru w = 1,

1 ! x 2 . Forma discreta asociata lui (2.30), consistenta cu (2.22), este,

& 1 #N || v ||L2 = $" | v i |2 ' . N % i=1 (

12

(2.32)

! 2.3 Rezolvarea sistemelor de ecuatii algebrice lineare


Un sistem de ecuatii algebrice liniare, compatibil,
a11 x1 + a12 x 2 + ... + a1N x N = b1 a21 x1 + a22 x 2 + ... + a2 N x N = b2 ... aN1 x1 + aN 2 x 2 + ... + aNN x N = bN ,

(2.33)

poate fi scris in forma matriceala ca,


!

Modelare numerica pentru probleme la limita. pagina 17

!a1 1 , a1 2 ,..., a1N $ #a 2 1 , a2 2 ,..., a2 N & #... & #a , a ,..., a & " N1 N 2 NN %

! x1 $ # x2 & #... & = #x & " N%

! b1 $ # b2 & #... & , sau #b & " N%

Ax = b ,

x ,b ' R N , A : R N ( R N . (2.34)

in general, sunt doua clase importante de metode pentru rezolvarea sistemului (2.34), adaptate structurii specifice a matricei A - singularitate, desime, marginire - in functie de tipul metodei numerice folosite in rezolvarea modelului: directe si iterative. in stabilirea metodei de rezolvare se au in vedere cteva criterii: 1 Daca A este (aproape) singulara [adica det(A) % 0], atunci nu exista o solutie unica descompunerea in valori singulare (Singular Value Decomposition, SVD) poate conduce la determinarea unei solutii; 2 Daca A este "plina" (are putine elemente nule), sunt preferate metodele de eliminare, directe, in special daca ordinul matricei, N, este mic; 3 Daca A este rara, sunt mai potrivite metodele iterative. in continuare vor fi analizate metodele directe, de eliminare - din clasa metodelor Gauss - cu accent pe metoda de factorizare LU, respectiv algoritmul Thomas, care este folosit cu precadere in rezolvarea sistemelor tridiagonale de ecuatii. O astfel de structura particulara rezulta, de exemplu, atunci cnd pentru rezolvarea aproximatiei de diferente finite a EDP sunt folosite metode de descompunere (splitting schemes): suprarelaxare succesiva de linie (Line Successive OverRelaxation, LSOR), alternarea directiei (Alternating Direction implicit, ADi). Schemele iterative care apartin familiei iteratiilor de punct fix (fixed point iterations, Picard): Jacobi, Gauss-Seidel si suprarelaxarea succesiva (Successive OverRelaxation, SOR) vor fi discutate ulterior.

2.3.1 Metoda de eliminare directa - matricea A plina in timp ce rezolvarea directa a problemei (2.34) prin inversarea matricei A (x = A&1b) necesita O(N4) operatii, eliminarea Gauss se realizeaza in doar O(N3) operatii, cu un necesar de memorie de ordinul O(N2). Eliminarea Gauss se realizeaza in doua etape: (i) eliminare directa (forward elimination): prin operatii algebrice cu rnduri se modifica structura lui A la o forma triunghiulara (fig. 2.1), (ii) substitutie inversa (backward substitution): se rezolva sistemul astfel rezultat in ordine inversa, pornind de la ultima ecuatie, cea mai simpla (cu o necunoscuta), si eliminnd succesiv, pas cu pas, cte o necunoscuta.

Capitolul 2 Elemente de Algebra Liniara. pagina 18

Figura 2.1 Modificarea structurii matricei A in metoda de eliminare Gauss

in particular, trebuie remarcat ca in procesul de eliminare directa se modifica structura lui b, care devine b', fara insa ca acest fapt sa aiba o semnificatie speciala. Aceasta metoda se poate scrie algoritmic ca,
{ E l imi n a rea d irect a } Do k = 1, N-1 Do i = k+1, N m(i,k) = a(i,k)/a(k,k) b(i) = b(i) - m(i,k)*b(k) Do j = k+1, N a(i,j) = a(i,j) - m(i,k)*a(k,j) EndDo EndDo EndDo {S u b st it u t ia i n v ersa } x(N) = b(N)/a(N,N) Do i = N-1, 1 x(i) = 0. Do j = i+1, N x(i) = x(i) + a(i,j)*x(j) EndDo x(i) = (b(i)-x(i))/a(i,i) EndDo

Este important sa cunoastem conditiile in care eliminarea Gauss poate fi realizata. Aceasta problema poate fi adresata prin analiza erorilor de rotunjire (rounding-off errors), care sunt datorate preciziei de reprezentare finita a numerelor in calculator: pentru reprezentarea unui numar real, sau rational, se poat retine doar un numar finit de cifre semnificative. Acest tip de eroare se acumuleaza cu numarul de operatii aritmetice efectuate, in principal inmultiri si impartiti in virgula mobila (floating point operations), iar metodele care conduc la calcule extensive sunt in mod special vulnerabile. Pentru a evidentia efectul erorii de rotunjire, consideram sistemul,

! #0.0001 1.0$ &! # x1 $ & = ! #1.0 $ &, " 1.0 1.0 % " x2 % " 2.0%

(2.35)

pentru care se cauta solutia cu trei cifre semnificative. Metoda lui Cramer produce x1 = 1.000, x2 = 1.000, in timp ce algoritmul Gauss conduce la, m2,1 = a2,1 / a1,1 = 104 , (a1,1 este numit pivot) (2.36)

Modelare numerica pentru probleme la limita. pagina 19

a2,2* = a2,2 - m2,1 a1,2 = (1.0) - (104) (1.0) = -104 , b2* = b2 - m2,1 b1 = 2.0 - (104) (1.0) = -104 , x2 = b2* / a2,2* = 1.0 , x1 = (b1 - a1,2) / a1,1 = [1.0 - (1.0) (1.0)] / 10-4 = 0.0 ' GRESiT

(2.37) (2.38) (2.39) (2.40)

Un remediu evident este sporirea preciziei reprezentarii prin folosirea mai multor cifre semnificative. Cu toate acestea, algoritmul va esua pe orice masina de precizie finita daca matricea este prost conditionata (ill-behaved, ill-conditioned). in cazul anterior, (2.36) - (2.40), eroarea este produsa de valoarea mica a pivotului a1,1 folosit in secventa de eliminare directa. Acest neajuns poate fi eliminat daca la inceputul fiecarui pas de eliminare ecuatiile se reordoneaza astfel inct elementul de pivotare al pasului sa fie relativ mare. in principal sunt folosite patru strategii: 1. scalare; 2. pivotare pe coloane; 3. pivotare pe rnduri; 4. pivotare completa. Prima strategie este simplu de implementat si este eficienta in multe cazuri, fiind intotdeauna de dorit si recomandabil (din motive fizice) sa se scaleze ecuatiile inainte de rezolvarea sistemului. Cu toate acestea, pentru sistemele slab conditionate beneficiile scalarii se pot pierde dupa doar cteva etape de eliminare directa. A doua strategie nu este dificil de implementat, se reduce la inversari de rnduri si, in consecinta, nu necesita reordonarea vectorului solutie, ca in cazul pivotarii pe rnduri, dar este mai costisitoare din punct de vedere al efortului aritmetic. Cele mai bune rezultate sunt obtinute prin inca mai costisitoarea pivotare completa (4).

2.3.2 Numarul de conditionare pentru sisteme de ecuatii lineare inainte de a rezolva problema (2.34), este util sa se masoare eroarea de rotunjire care ar fi produsa de specificarea cu precizie finita a datelor, respectiv elementele lui A si b. Am vazut anterior (2.2) ca pentru masurarea unor obiecte de tip vectori, matrice, operatori sunt introduse normele - numere reale pozitive. Folosind acest concept, se poate defini o noua marime, numita numarul de conditionare (Condition Number). Pentru matricea A, acesta este notat cond(A) si este un estimator a priori al efectelor erorii de rotunjire si al erorii cu care sunt specificate datele (elementele lui A) asupra solutiei sistemului de ecuatii lineare,

Capitolul 2 Elemente de Algebra Liniara. pagina 20

Ax = b,

unde x, b ! R N , A : R N " R N .

(2.41)

Sa presupunem ca solutia exacta a ec. (2.41) este x si ca A si A&1 sunt cunoscute si reprezentate exact. Notam cu ( b eroarea cu care este cunoscut si reprezentat vectorul b si cu ( x eroare absoluta cu care este calculata si reprezentata solutia x. Atunci,
A(x + !x) = b + !b " !x = A#1!b.

(2.42)

in orice norma, eroarea absoluta a solutiei, ( x, verifica inegalitatea,

|| "x || # || A $1 || || "b ||
ceea ce implica,

si

|| b || # || A || || x ||,

(2.43)

!
|| !x || || b || " || A #1 || || !b || || A || || x ||,
respectiv,
cond( A )
$4 64 47 4 8 || !x || #1 || !b || " || A || || A || . || x || || b ||

(2.44)

(2.45)

Numarul cond(A) exprima amplificarea erorii relative a solutiei x in raport cu eroarea relativa a termenului liber b. Similar, se poate arata ca eroarea relativa indusa de eroarea absoluta ( A in specificarea matricei A este,

|| !x || || !A || " cond( A) . || x || || A ||

(2.46)

in concluzie, inegalitatile (2.45) si (2.46) arata efectul global, cantitativ, al erorilor de rotunjire in specificarea sau reprezentarea matricei si termenului liber asupra solutiei sistemului linear. Referitor la procedura de eliminare LU, aceasta inlocuieste A cu LU +( A si b cu b* +( b unde ( A si ( b sunt produse de erorile de rotunjire, cantitati care sunt dependente de efortul aritmetic, de calcul, specific metodei, O(N3). intruct inversarea lui A este in general dificil de realizat iar aceasta operatie este susceptibila de erori de rotunjire suplimentare, se foloseste de multe ori aproximarea,

Modelare numerica pentru probleme la limita. pagina 21

cond (A) !

|| A ||2 . | det( A) |

(2.47)

echivalenta definitiei lui cond(A) (2.45) in sensul ordinului de marime. Un sistem este considerat prost conditionat sau slab conditionat atunci cnd cond(A) >> 1 si bine conditionat (well-conditioned) cnd cond(A) ~ O(1). Cu toate acestea, slaba conditionare trebuie interpretata in raport cu precizia aritmetica a calculatorului folosit. Numere de conditionare de ordinul O(103) pot fi in mod curent acceptate daca se lucreaza in precizie simpla IBM (cuvinte de 32 biti); in dubla precizie, se pot obtine solutii precise chiar daca cond(A) ~ O(106).

2.3.3 Metoda de eliminare directa. Algoritmul Thomas Discretizarea problemelor la limita pentru ecuatii diferentiale ordinare (EDO), ecuatii diferentiale cu derivate partiale (EDP) cu operatori de derivare de ordinul doi, sau constructia aproximarilor spline cubice conduc la sisteme de ecuatii algebrice cu matrice rare, de tip "banda", fig. 2.2, care au elementele concentrate diagonal, adiacent diagonalei principale. Desi, in general, pentru rezolvarea acestor sisteme rare este recomandabila o metoda iterativa, in unele cazuri se prefera totusi o forma particulara a metodei de eliminare directa.

sau 0 0

Figura 2.2 Structuri speciale pentru matricea A

Una dintre cele mai folosite tehnici de rezolvare pentru sistemele de ecuatii generale cu matrice plina, nesimetrica (nesingulara) apartine clasei de metode Gauss si se bazeaza pe factorizarea LU, introdusa prin teorema urmatoare. Teorema de descompunere (factorizare) LU. Fie Ak minorul principal construit cu primele k

Capitolul 2 Elemente de Algebra Liniara. pagina 22

rnduri si coloane ale matricei patrate N"N, A. Daca det(Ak) ) 0 (Ak nu este singular) pentru oricare k = 1, 2, ..., N&1 atunci exista o matrice inferior triunghiulara unica, L = (li,j) cu l1,1 = l2,2 = ...= lN,N si o matrice superior triunghiulara U = (ui, j) unica, astfel inct LU = A.

A = LU

Ax = b

L( U) x = b

"

#Ly = b $ %Ux = y

(2.48)

O consecinta a factorizarii LU este aceea ca determinantul lui A se calculeaza simplu, ca produs al elementelor diagonalei principale a lui L,
N

det(A) = ! li, i = Trace(L ).


i =1

(2.49)

Doua scheme numerice implementeaza aceasta factorizare: Crout, prin operatii la nivel de rnduri si Doolittle, prin operatii la nivel de coloana. in functie de modul propriu-zis in care opereaza compilatorul se prefera una sau alta dintre aceste variante (de ex. compilatorul FORTRAN adreseaza memoria la nivel de coloana, deci varianta Doolittle este mai eficienta). Factorizarea LU, care este folosita in principal pentru rezolvarea sistemelor generale de ecuatii, are o forma deosebit de simpla, usor de vectorizat, atunci cnd este aplicata la rezolvarea sistemelor cu matrice tridiagonale. Procedura prezentata in continuare este descompunerea LU pentru matrice tridiagonale, iar algoritmul care urmeaza, cunoscut sub numele de algoritmul Thomas, este complet echivalent eliminarii Gauss, din punct de vedere al efortului aritmetic necesar si al stabilitatii numerice. Pentru o matrice tridiagonala, N"N, sunt necesare doar O(N) operatii aritmetice si respectiv O(N) cuvinte de memorie (de fapt, 4N&2 cuvinte sunt necesare pentru stocarea tuturor vectorilor).
"a1, 2 a1, 3 % $a 2 ,1 a2,2 a2,3 ' 0 $ ' . . . $ '= . . . $ ' 0 a N !1,1 aN !1, 2 aN !1, 3 $ ' a a # N ,1 N,2 & " d1 $ c1 d2 $ . $ $ 0 $ # % "1 e1 % ' $ 1 e2 ' 0 0 ' $ ' . . . ' $ '. (2.50) . . . . ' $ ' cN !2 dN !1 0 1 eN !1 ' $ ' cN !1 dN & # 1 &

1.

{Factorizarea LU} Do i = 1, N

Modelare numerica pentru probleme la limita. pagina 23

if (i > 1) then if (i < N) then EndDo 2.

a(i,2) = a(i,2) - a(i,1)*a(i-1,3) a(i,3) = a(i,3) / a(i,2)

{Substitutia directa --> Do i = 1, N if (i = 1) then if (i > 1) then EndDo

Rezolva Ly = b}

b(1) = b(1) / a(1,2) b(i) = (b(i) - a(i,1)*b(i-1)) / a(i,2)

3.

{Substitutia inversa --> x(N) = b(N) Do i = N-1, 1

Rezolva Ux = b}

x(i) = b(i) - a(i,3)*x(i+1) EndDo

in Anexa 1 este prezentat codul MATHEMATICA ce implementeaza acest algoritm. Acest modul este folosit de rutinele ADI, ADI Peaceman-Rachford si LOD.

2.4 Metode iterative pentru rezolvarea sistemelor de ecuatii algebrice liniare Efortul aritmetic necesar rezolvarii sistemelor de ecuatii liniare poate deveni prohibitiv chiar pentru sisteme de ordin N relativ mic, de ex. N ~ O(103). Mai mult, este posibil ca aceasta proprietate sa nu fie utilizabila atunci cnd se aplica o metoda directa daca matricea A este rara. Astfel de cazuri intervin, de exemplu, in aproximatia diferentelor finite (MDF) pentru operatorul 2-D eliptic (Laplace) (fig. 2.3). Rezolvarea EDP cu o retea de discretizare MDF de dimensiuni relativ reduse, N"N = 100"100 = 104, este evident peste limitele hardware ale masinilor de calcul uzuale, atunci cnd este folosita eliminarea directa. metodelor iterative. Drept urmare, este necesara utilizarea

0 0 0 0
Figura 2.3 Structura matricei A produsa de aproximatia MDF in cinci puncte pentru operatorul Laplace

O clasa importanta de metode iterative - metode de aproximare succesiva - se bazeaza pe principiul iteratiilor de punct fix (Picard), sau principiul contractiei. Cu toate deosebirile dintre

Capitolul 2 Elemente de Algebra Liniara. pagina 24

metodele de iterare propriu-zise, efortul aritmetic necesar si proprietatile de convergenta, schemele de acest tip sunt matematic echivalente. Folosind functii de reprezentare specifice (mapping functions) care transforma o aproximatie numerica in alta, mai buna, se pot genera, secvential, solutii aproximative. in continuare sunt revazute cteva concepte, definitii si ipoteze necesare pentru analiza acestui proces, cu referire la spatii metrice complete (spatii pentru care, intre altele, se poate defini o norma).

2.4.1 Iteratii de punct fix Sirul de aproximatii succesive obtinut printr-o procedura iterativa de punct fix ar trebui sa fie convergent la solutia exacta a problemei. Este util sa reamintim c!teva definitii ale Analizei Matematice referitor la convergenta unui sir de elemente (vectori) din spatiul real, N-dimensional, RN, respeciv convergenta unui sir Cauchy. Definitie. Un sir {y m }m= 1 * RN converge la limita y ! R N daca pentru oricare ! > 0, exista un rang (indice) M! (care depinde de !), astfel inct ||ym & y|| < ! pentru orice m + M!. Definitie. Sirul {yn} este numit sir Cauchy daca pentru oricare ! > 0 exista un rang (indice) M! astfel inct ||ym & yn || < ! pentru orice m, n + M!. Se poate demonstra ca orice sir Cauchy definit pe un spatiu metric complet, S, converge la un element din acest spatiu. Spatiul S este complet pentru o norma data, daca limita oricarui sir Cauchy (in acea norma) apartine tot lui S. in particular, RN este un spatiu complet pentru orice N < ,. Aceasta proprietate a sirurilor Cauchy este foarte importanta in algoritmii iterativi, de punct fix, intruct afirma ca este necesar doar sa demonstram ca sirul solutiilor iterative este Cauchy pentru a avea garantia convergentei procesului iterativ. Mai mult, din punct de vedere practic (calculatoriu) este inutil si nerational ca ! sa fie impus mai mic dect precizia normala, absoluta, a aritmeticii in virgula fixa folosita. Uzual,
#e ! "O $ % , 10 &
!

(2.51)

unde e este eroarea acceptabila in rezultat. Pentru siruri bine conditionate numeric (converg monoton), este suficient ca n = m + 1, sau n = m + 2, astfel inct ||ym & ym+1 || < ! (uzual, e ~ 10&3). Limite de forma ! - 10&6 nu sunt accesibile, de exemplu, atunci cnd calculul este

Modelare numerica pentru probleme la limita. pagina 25

efectuat in precizia simpla IBM. in continuare este necesara introducerea unei proceduri (o reprezentare, f) de generare a sirului de solutii aproximative succesive. Presupunnd ca egalitatea, x = f(x), (2.52)

are loc pentru x ! D, si f: D # D * RN, x este un punct fix iar f este numita functie de iteratie. Rezulta imediat ca la limita (in punctul "fix") are loc,

x ! f( x) = 0.

(2.53)

Daca se poate gasi o metoda de calcul a punctelor fixe ale schemei iterative (2.53), atunci pornind de la ea se poate stabili o metoda de rezolvare a sistemelor de ecuatii algebrice. O solutie aproximativa a ec. (2.53) este numeric stabila daca o perturbatie mica (tipic, de ordinul erorii de rotunjire) nu este amplificata, divergent, de procedura iterativa. in fig. 2.4, punctul A este o solutie stabila (punct fix) in timp ce B este o solutie instabila. Vom vedea spre sfrsitul acestei sectiuni cum se poate stabili tipul solutiei (stabila sau instabila). Cea mai simpla metoda care poate fi folosita este metoda aproximatiilor succesive (Successive Approximation Method). Schema de principiu a acestui algoritm este,
{x0 --> valoare de start} x1 = f(x0) x2 = f(x1) ....... xm = f(xm-1) if (||xm+1 - xm||) < epsilon then STOP

f (x ) B

x 2 A 1 x0 x
! valoarea de start

Figura 2.4 Secvente de iteratii de punct fix: convergenta (1) si divergenta (2)

APLICATIA 2.1 O placa de 2 cm grosime cu conductivitatea termica k = 4 Wm&1K&1 si

Capitolul 2 Elemente de Algebra Liniara. pagina 26

emisivitatea suprafetei ! = 0.8 are o fata expusa, prin intermediul vidului, unui perete de tip corpnegru, aflat la TS = 25C. A doua fata are temperatura Ti = 450C. Se cere temperatura suprafetei expuse radiatiei, To, (constanta Stefan-Boltzmann este " = 5.670"10-8 W/m2 K4). Conditia continuitatii fluxului termic la nivelul fetei expuse radiatiei - prin conductie, qcond, in interiorul placii si prin radiatie, qrad, spre peretele corp-negru - se exprima prin ecuatia,

qcond = k

Ti ! To 4 = qrad = "# To4 ! TS , a

(2.54a)

respectiv,
4.41 ! 109 ! (723 " To ) = To4 " 2984 .

(2.54b)

Pornind de la relatia (2.54b) se pot formula cel putin doua scheme iterative: Schema 1 (convergenta la To = 677 K),
m+1 To = 723 ! " Tom #

( )

! 298 4 $ / 4.41 & 109 , %

(2.55a)

Schema 2 (divergenta)
m+1 To = 298 4 + 4.41 ! 109 723 " Tom

)]

1/ 4

(2.55b)

Urmatoarea teorema poate fi utilizata pentru a stabili daca reprezentarea asociata schemei iterative este sau nu este contractiva (produce un sir convergent sau neconvergent de solutii aproximative): (Teorema contractiei) Daca f este o functie continua cu suport compact (D * RN) si daca . (exista) constanta L < 1 astfel inct ||f(y) & f(x)|| - L ||x & y ||, / (oricare) x, y ! D, atunci
! .! (exista un unic) x* ! D astfel inct x* = f(x*), iar sirul {x m }m =0 generat de reprezentarea

xm+1 = f(xm) converge la x* pentru orice valoare de start, x0 ! D. inegalitatea,

Modelare numerica pentru probleme la limita. pagina 27

||f(y) & f(x)|| - L ||x & y|| / x, y ! D,

(2.56)

este numita si conditia Lipschitz, iar L (numar real, pozitiv) este numit constanta Lipschitz. Conditia L < 1 este suficienta si necesara pentru ca reprezentarea f sa fie contractiva. Daca f(x) este o functie scalara neteda, atunci ec. (2.56) poate fi privita ca aproximatia liniara (de ordinul unu) produsa prin dezvoltarea in serie Taylor a lui f(x) in vecinatatea punctului y. in acest caz, intr-o vecinatate suficient de mica a lui y, astfel inct dezvoltarea Taylor sa aibe sens, L poate fi asimilat derivatei de ordinul unu a lui f(x), f '(x), evaluata in punctul y, iar restrictia L < 1 impusa asupra lui L implica, |f '(x)| < 1. (2.56a)

Daca f = {f1, f2,..., fn} este o functie vectoriala definita pe un spatiu vectorial, x ! Rn, atunci conditia de convergenta este impusa asupra modulului determinantului Jacobianului, J(f),
# "f1 % "x % 1 = Det% ... % "f n % $ "x1 "f1 "x 2 ... "f n "x 2 "f1 & "x n ( ( ... ... ( < 1. "f n ( ... "x n ( ' ...

Det{J(f )}

(2.56b)

! 2.4.2 Transformari liniare

O conditie suficienta pentru convergenta unei scheme iterative aplicata pentru rezolvarea sistemelor algebrice de ecuatii liniare de forma,
N

Ax = b

" ai, j x j = bi ,
j =1

i = 1,2,K, N,

(2.57)

este aceea ca matricea A sa fie diagonal-dominanta. Aceasta inseamna ca fiecare element diagonal al lui A este mai mare in valoare absoluta dect suma valorilor absolute ale elementelor de pe aceeasi linie, respectiv
N

| ai,i | !

j =1, j "i

#| ai, j | ,

i = 1, 2,K, N.

(2.58)

Capitolul 2 Elemente de Algebra Liniara. pagina 28

A este strict diagonal-dominanta daca inegalitatea din ec. (2.58) este stricta. In general, orice matrice patrata A poate fi scrisa unic ca o suma algebrica de trei matrice (factori),

A = D ! L ! U,

(2.59)

unde D este matricea diagonala (diagonala principala a lui A), iar &U si &L sunt matricele triunghiulare superior, respectiv inferior, care rezulta prin eliminarea diagonalei principale D. Sistemul (2.57) devine atunci,

(D ! L ! U ) x = b .

(2.60)

Aceasta descompunere reprezinta punctul central, comun, al metodelor iterative clasice pentru reprezentarile liniare bazate pe formule explicite: Jacobi, Gauss-Seidel si SOR. Asupra acestor scheme iterative se va reveni in Capitolul 3.

Schema iterativa Jacobi Daca ec. (2.57) este pusa sub forma,
N

ai,i x i = bi "

$a
j =1, j # i

i, j

xj ,

i = 1,2,K, N ,

(2.61)

atunci rezulta imediat o procedura recursiva, numita metoda iterativa Richardson (a fost insa ! folosita de Jacobi in 1845 si numita ulterior metoda iterativa Jacobi),
% 1 ' = 'bi " ai,i ' & ( * (m) a x $ i, j j * + f i x1( m) , x (2m) ,K, x (Nm) . * j =1 ) j #i
N

x (i m +1)

(2.62)

Conform (2.62), noua aproximatie a lui x, x(m+1), se obtine din cele anterioare, succesiv, pna ce
!

este atinsa o limita de convergenta - tipic, "distanta" dintre doua iteratii succesive, masurata intr-o norma oarecare, sau inca, masura erorii de iteratie, este mai mica dect o valoare (toleranta) prescrisa. Folosind factorizarea (2.60), schema iterativa Jacobi se scrie ca,

Modelare numerica pentru probleme la limita. pagina 29

(m +1 )

( m) -1 !1 ( m) = D (L + U) x + D b = f x ,

(2.63)

unde D&1(L + U) este matricea de iteratie. Este important de stabilit in ce conditii aceasta procedura converge. Raspunsul este dat de principiul contractiei, respectiv de conditia Lipschitz (2.56),
|| f ( x) ! f ( y) || = || D !1( L + U) x + D !1b ! D !1( L + U) y ! D !1b || = = || D !1( L + U)( x ! y) || " || D !1( L + U) || # || x ! y ||,

(2.64)

(2.65)

ceea ce conduce, de exemplu pentru norma ||||,, la,


|| f (x ) ! f ( y) ||" # || D!1 (L + U) ||" < 1. || x ! y ||"

(2.66)

in ec. (2.66) se poate recunoaste constanta Lipschitz, L = || D !1( L + U) ||" . Prin urmare, o conditie suficienta pentru convergenta schemei (2.62) este,
% N ' 1 L = max ' $ | ai, j 1" i " N | a | i, i j =1 ' j#i & ( * |* < 1 , * )

q.e.d.

(2.67)

Este important de remarcat ca inegalitatea (2.67) evidentiaza conditia de convergenta (2.58), ! respectiv diagonal-dominanta matricei A.

Schema iterativa Gauss-Seidel Metoda Gauss-Seidel utilizeaza valorile vectorului solutie actualizate, imediat ce sunt disponibile,
i"1 1 $ &bi " # ai, j x (jm +1) " ai,i & % j =1

x (i m +1) =

' ( m) a x , # i, j j ) ) ( j = i +1
N

i = 1,2K, N .

(2.68)

De obicei, daca schema Jacobi este convergenta, schema Gauss-Seidel converge in aproximativ ! jumatate din numarul de iteratii, fara un efort aritmetic suplimentar.

Capitolul 2 Elemente de Algebra Liniara. pagina 30

Metoda suprarelaxarii succesive (SOR) Una dintre cele mai folosite metode iterative pentru rezolvarea sistemelor cu matrice rare, pe care o vom discuta mai tirziu (3.2), este SOR - o forma atenuata (amortizata) a schemei GaussSeidel - introdusa prin,
( m +1) x (i m +1) = (1- ") x (i m) + " x GS = x (i m) + " x GS , i i # xi

1 < " < 2,

(2.69)

unde xGS este valoarea Gauss-Seidel (2.8) a vectorului de iteratie, iar # este coeficientul de
!

(supra-) relaxare. subrelaxare.

Pentru 0 < # < 1, se obtine o forma a schemei Gauss-Seidel, numita

2.5 Aproximatia diferentelor finite Tehnicile de rezolvare pe care le vom folosi pentru probleme la limita si cu conditii initiale descrise de ecuatii diferentiale cu derivate partiale sunt numerice. O clasa importanta de metode din aceasta categorie sunt dezvoltate pe baza aproximarilor prin diferente finite. Traditional, ideea centrala a acestui tip de metode consta in inlocuirea operatorului diferential continuu, cu un operator discret, definit pe un suport discret, respectiv nodurile unei retele de discretizare (fig. 2.6). Aproximatii de tip diferente finite cele mai frecvent folosite sunt diferentele finite inainte, inapoi si centrale: Diferentele finite inainte (forward) sunt formulate prin,

fi' ( x ) =

fi +1 ! fi , h

(2.78)

si sunt sugerate de definitia derivatei unei functii netede,

fi' ( x ) = lim

h!0

fi +1 " fi . h

(2.79)

Modelare numerica pentru probleme la limita. pagina 31

f (x )

f i -2 x i -2 h

f i -1 x i -1

fi xi

f i +1 x i +1

f i +2 x i +2

Figura 2.6 Operator de diferente finite 1-D, discret

Presupunnd ca f(x) este de doua ori diferentiabila in vecinatatea punctului xi, si folosind dezvoltarea Taylor inainte,

fi +1 = fi + fi' h +
rezulta,

1 '' 2 f h + ... , 2 i

(2.80)

termenul de eroare principal ( datorat discretizarii) #

f i +1 " f i ' = fi + h

6 7 8 1 '' fi h 2

+K

(2.81)

Ecuatia (2.81) arata ca formula aproximativa (2.78), respectiv operatorul discret ce actioneaza in ! punctul xi, este de ordinul unu, in raport cu pasul retelei de discretizare, h, care, tipic, este o cantitate subunitara. Daca membrul drept al ec. (2.78) este atribuit lui f '(xi+1), se obtine aproximarea prin diferente finite inapoi (backward). in general, aceste formule nesimetrice inainte si inapoi sunt folosite pentru discretizarea conditiilor la limita sau a derivatelor de ordinul unu in timp. in acest ultim caz, ele genereaza scheme de integrare numerica in timp, de tip Euler (4.1) explicite, respectiv implicite. Aproximatia prin diferente finite centrale este folosita atunci cnd se urmareste o acuratete sporita. Ea se poate obtine prin combinarea termenilor de eroare pna la ordinul dorit. De exemplu, daca dezvoltarile Taylor inainte,

fi +1 = fi + fi' h +
si inapoi,

1 ' ' 2 1 '' ' 3 1 iv 4 f h + fi h + f h + ... , 2 i 6 24 i

(2.82)

Capitolul 2 Elemente de Algebra Liniara. pagina 32

fi !1 = fi ! fi ' h +
se scad, rezulta,

1 ' ' 2 1 ''' 3 1 iv 4 f h ! fi h + f h ! ... , 2 i 6 24 i

(2.83)

termenul de eroare principal (datorat discretizarii ) #

f "f f i = i +1 i"1 " 2h


'

678 1 ''' 2 fi h 6

+K

(2.84)

ceea ce inseamna ca aproximatia prin diferente finite centrale a derivatei de ordinul unu are o ! acuratete de reprezentare de ordinul doi, in raport cu pasul retelei de discretizare, h. O notatie frecvent folosita pentru forma discreta din ec. (2.84) este,
h) D( 0,x fi =

fi +1 ! fi !1 = f ' ( x) + O h 2 . 2h

( )

(2.85)

Folosind aceasta notatie, aproximatia prin diferente finite centrale pentru derivatei de ordinul doi este,
"1 2 $ D0, x fi = D0,x ( D0, x fi ) = D0 # ( fi+1 / 2 ! fi !1/ 2 )% = h = 1 "1 ( fi+1 ! fi ) ! 1 ( fi ! fi !1 )$ = 12 ( fi!1 ! 2 fi + fi +1 ), % h h #h h

(2.86)

sau, pe scurt,
2 D0, x fi =

fi !1 ! 2 fi + fi +1 . h2

(2.87)

2.6 Acuratetea si testul de calcul pentru convergenta functiilor de retea Eroarea adevarata a solutiei aproximative fata de solutia exacta nu este, in general, cunoscuta. Cu toate acestea, un test de acuratete simplu asupra solutiei aproximative, reprezentata prin functia de retea, testul de convergenta Cauchy, poate si ar trebui sa fie facut intotdeauna. In general sunt disponibile informatii suplimentare, calitative, referitor la functiile de retea. Ele sunt furnizate de metoda de integrare propriu-zisa, si permit evaluarea ratei de convergenta a metodei. De exemplu, dezvoltarea in serie a erorii de trunchiere este aproape intotdeauna

Modelare numerica pentru probleme la limita. pagina 33

disponibila. Astfel, pentru o retea de discretizare uniforma, cu pas h, se poate scrie,

fi h = f ( xi ) + ! 1hq1 = f ( xi ) + O hq1 .

( )

( )

(2.88)

Prin rafinarea retelei (reducerea pasului h) la rh, unde r este un numar rational, subunitar, rezulta,
fi rh = f ( x i ) + ! 1r q1 hq1 ,
( )

(2.89)

iar termenii de eroare principali, din ec. (2.88) si (2.89),


ei h = f ( xi ) ! fi h = "1 hq1 ,
( )

ei rh = f ( xi ) ! fi rh = "1 rq1 hq1 ,

( )

(2.90)

sunt in raportul,
ei rh q1 ( h) = r . ei
( )

(2.91)

Ecuatia (2.91) sugereaza ca pentru o metoda cu o acuratete de ordinul doi (q1 = 2), o reducere a pasului retelei cu un factor 2 (r = 1/2) conduce la o reducere a erorii cu un factor 4, respectiv
2 1 ! 1# =" $ = . 2 4

q1

(2.92)

In concluzie, pentru testarea convergentei unei metode numerice, se poate folosi initial o partitie foarte fina (un pas de retea foarte mic, h) care sa produca o solutie foarte buna, f(xi). Aceasta solutie poate fi utilizata ca referinta in calculul erorii pentru alte doua retele, mai grosiere, cu pasi, h, mai mari, aflati in raportul r intre ei, respectiv cu reteaua mai fina. Daca rata teoretica de acuratete (2.91) nu este atinsa atunci algoritmul sau implementarea sa in schema numerica nu sunt corespunzatoare. In general, doua pot fi cauzele: fie reteaua nu este suficient de fina (h este prea mare), fie algoritmul numeric este incorect, sau ambele. Pentru un h suficient de mic, eroarea de trunchiere se poate calcula prin,

ei h ! ei rh = fi h ! fi rh = 1 ! r q1 " i hq1 ,
unde termenul de eroare (de trunchiere) principal este,

( )

( )

( )

( )

(2.93)

Capitolul 2 Elemente de Algebra Liniara. pagina 34

! ih

q1

fi h " fi rh = . 1 " r q1

( )

( )

(2.94)

S-ar putea să vă placă și