Documente Academic
Documente Profesional
Documente Cultură
0. Erori
13.5 = 1 2 3 + 1 2 2 + 0 2 + 1 2 0 + 1 2 1 = 1101.1 Reprezentarea numerelor n calculator (reprezentarea intern) se face pe un numr finit de poziii, n , numit lungimea cuvntului, care este fixat la construcia calculatorului. Pentru precizii mai bune, unele calculatoare au posibilitatea reprezentrii numrului pe 2n, 3n , poziii (reprezentare pe dublu cuvnt, triplu cuvnt, ). Pe cele n poziii ale unui cuvnt, un numr poate fi reprezentat n virgul fix (proprie numerelor ntregi sau numerelor subunitare) sau n virgul mobil. Majoritatea tipurilor de calculatoare numerice folosesc pentru calcule tiinifice reprezentarea numerelor n virgul mobil. n aceast reprezentare, poziia virgulei zecimale nu este fix. Orice numr real x se poate scrie sub forma x = a 10b sau x = a 2b cu a < 1 i b Z ; a se numete mantisa numrului real x, iar b exponentul. Reprezentarea n virgul mobil este normalizat dac prima cifr a mantisei este nenul, deci dac a 10 1 , respectiv a 2 1 . n acest caz reprezentarea este unic. Cifrele semnificative ale unui numr sunt cifrele mantisei, nelund n seam zerourile care le preced.
Exemplul Reprezentarea normalizat, n virgul mobil a numrului n baza 10 x = 13.5 este: 0.135 10 2 = 0.13510 2 , indicele 10 artnd c reprezentarea este n baza 10. n acest caz mantisa este a = 0.135, iar exponentul b =2. n baza 2, acelai numr are reprezentarea normalizat n virgul mobil 0.110112100 = 0.11011 2 4 , avnd mantisa a = 0.11011 i exponentul b = 100.
Pentru orice calculator numeric exist numerele fixe t i e care reprezint numrul de cifre ale mantisei, respectiv ale exponentului unui numr real ce poate fi reprezentat n calculatorul respectiv (n = t + e). Numerele t i e determin
Erori
mpreun cu baza de numeraie (10 sau 2) o mulime finit de numere reale F R care pot fi reprezentate exact n calculator.
n general, pentru t fixat, dac x F , rd (x ) se poate determina astfel. Se aduce x la forma normalizat x = a 10b , cu a 10 1 , adic a = 0.1 2 ... i i +1... , 0 i 9 , 1 0 . Se determin
def 0. ... , dac 0 t +1 4 a' = 1 2 t , t 0.1 2 ... t + 10 , dac t +1 5 adic t crete cu 1 dac t +1 5 i se renun la celelalte zecimale ncepnd cu t +1 .
~ rd ( x ) x 5 10 (t +1) 5 10 t . x a ~ Notm eps = 5 10 t . Dac rd ( x ) = x(1 + ) , atunci, din inegalitatea de mai sus
rezult eps . Numrul real eps se numete precizia calculatorului. Pentru rotunjirea n sistemul binar se procedeaz analog. Se aduce x F la forma normal x = a 2b cu 2 1 a < 1 i a = 0.1 2 ... i i +1... cu i = 0 sau 1 i 1 = 1 .
dac t +1 = 0 0.1 2 ... t , ~ , iar rd (x ) = sgn ( x ) a '2 b . n Se determin a' = t 0.1 2 ... t + 2 , dac t +1 = 1
~ ~ n cazul n care rd (x ) F , atunci rd (x ) este chiar rd (x ) . Deoarece numrul poziiilor pentru exponentul e este finit, exist , din pcate, numere ~ x F pentru care rd (x ) F .
Exemplul 2. Considerm t = 4 i e = 2. Atunci ~ a) rd (0.3179410110 ) = 0.317910110 F ~ b) rd (0.999971099 ) = 0.100010100 F ~ c) rd (0.01234510 99 ) = 0.123510 100 F ~ d) rd (0.5432110 110) = 0.543210 110 F n cazurile a) i b) exponentul pozitiv este prea mare ca s poat fi reprezentat pe spaiul alocat (e = 2). n situaiile acestea se spune c avem depire superioar a exponentului. n cazul b) depirea superioar a exponentului apare abia dup rotunjire. n exemplele c) i d) are loc depire de exponent inferioar, adic exponentul negativ este prea mic pentru a putea fi reprezentat pe spaiul alocat. n aceste dou situaii, depirea inferioar a exponentului poate fi prevenit definind rd (0.01234510 99 ) = 0.012310 99 F (reprezentarea nu mai este normalizat) i rd (0.5432110 110 ) = 0 F . Atunci rd nu satisface egalitatea rd (x ) = x(1 + ) , deci eroarea relativ poate fi mai mare ca eps. Situaiile de depire de exponent superioar sau inferioar sunt tratate de calculatoarele numerice ca fiind excepii. ~ n mod obinuit, rd (x ) se definete prin egalitatea rd ( x ) = rd (x ) .
n continuare, innd seama c depirile de exponent superioare i/sau inferioare nu sunt frecvente, vom considera cazul ideal e = i
Erori
x s y
nu fie elemente ale mulimii F, chiar dac operanzii x i y F . Vom nota cu + , , , / operaiile n virgul mobil corespunztoare operaiilor aritmetice care sunt definite astfel:
x + y = rd ( x + y ) , x y = rd ( x y ) , x y = rd ( x y ) , x / y = rd ( x / y ) , deci x + y = ( x + y )(1 + 1 ) , x y = ( x y )(1 + 2 ) , cu i eps, i = 1,4 . x y = ( x y )(1 + 3 ) , x / y = ( x / y )(1 + 4 ) . Aceste operaii n virgul mobil nu au proprietile binecunoscute ale operaiilor aritmetice. De exemplu: eps x , unde x, y F , iar B este baza de 1) x + y = x , dac y < B numeraie. Precizia mainii eps ar putea fi definit ca fiind cel mai mic numr g F pentru care 1 + g > 1 , adic eps = min{ g F 1 + g > 1, g > 0} . 2) Asociativitatea nu se mai pstreaz, aa cum va rezulta din urmtorul exemplu.
Exemplul 3. Fie a = 0.2337125810 4 , b = 0.33678429 10 2 , c = 0.3367781110 2 .
def def def
def
pentru orice x, y F
a + b + c = 0.2337125810 4 + 0.61800000 10 3 =
+ conduce la:
Dac E este o expresie aritmetic, va rezulta din context cum se evalueaz E. Dac este nevoie se pot folosi paranteze care s precizeze ordinea operaiilor. Vom nota cu fl (E ) valoarea expresiei E obinut din calculul n virgul mobil. De exemplu:
fl (x + y ) = x + y
def
fl ( x + ( y + z )) = x + y + z fl ((x + y ) + z ) = x + y + z
def
def
Erori
pentru restul calculelor. Mulimea operand final va consta din rezultatele dorite y1 , y 2 ,..., y m . n concluzie, o operaie corespunde unei transformri a mulimii operand. Scriind mulimile operand consecutive ca vectori coloan x (i ) 1 (i ) (i ) x 2 x = R ni , putem asocia fiecrei operaii elementare o funcie vectorial M (i ) xn i
x (0 ) = x , unde x (i +1) este o reprezentare vectorial a mulimii operand transformate. Fiind dat un algoritm, irul su de operaii elementare d natere unei descompuneri a lui ntr-un ir de funcii elementare (i ) : Di Di +1 , i = 0, r ,
Dj R
nj
( )
, = (r ) o (r 1) o ... o (0 ) , D0 = D , Dr +1 R nr +1 = R m .
Exemplul 1. Pentru (a, b, c ) = a + b + c s evideniem doi algoritmi: a) Fie = a + b i y = c + . Atunci, descompunerea de mai sus este:
(0 ) (a, b, c ) =
a + b (1) (0 ) (1) 2 R , (u , v ) = u + v R , (a, b, c ) = (a, b, c ) . c b) Fie = b + c i y = a + . n acest caz: a (1) (0 ) (1) 2 R , (u , v ) = u + v R , (a, b, c ) = (a, b, c ) . b + c
(0 ) (a, b, c ) =
Un argument pentru alegerea unui algoritm l constituie propagarea erorilor n aritmetica virgulei mobile. S analizm algoritmii a) i b) din exemplul de mai sus pentru intrrile numerice din Exemplul 3 al seciunii precedente. n cazul a) = fl ( a + b) = ( a + b)(1 + 1 ) , ~ y = fl ( + c ) = ( + c )(1 + 2 ) = [( a + b)(1 + 1 ) + c](1 + 2 ) =
a+b = (a + b + c) 1 + 1 (1 + 2 ) + 2 . + + a b c ~ y y + a b = 1 (1 + 2 ) + 2 , sau, dup y , y = Eroarea relativ a lui ~ y a+b+c a+b 1 + 1 2 . renunarea la termenii neliniari n avem y a+b+c
a+b este critic; n funcie de care dintre numerele a + b a+b+c sau b + c este mai mic, este mai bine s se procedeze via (a+b)+c dect a+(b+c) pentru a calcula a+b+c. Metoda de mai sus, de studiu a propagrii erorilor, neglijnd termenii de ordin superior, se poate extinde, conducnd la analiza diferenial a erorilor unui algoritm , pentru a calcula ( x) , dac = (r ) o (r 1) o ... o (0 ) . Pentru aceasta vom investiga cum erorile x asupra datelor de intrare, ca i erorile de rotunjire acumulate de-a lungul algoritmului afecteaz rezultatul final y = (x ) . 1 ( x1 ,..., x n ) m M Fie : D R , ( x) = , D fiind o submulime deschis ( x ,..., x ) n m 1 n a lui R . Presupunem c funciile , i = 1, m , au derivate continue pe D. Fie ~ x o
Factorul
i
valoare aproximativ pentru x. Notm x = ~ x x , x i = ~ xi xi erorile absolute ale lui ~ x i respectiv ~ xi . ~ x i xi , dac xi 0 erorile relative. Fie ~ xi = xi x , obinem ~ nlocuind datele de intrare x cu ~ y = (~ x ) n loc de y = ( x ) . Dezvoltnd n serie Taylor i renunnd la termenii neliniari n xi obinem: n n i (x ) = i (x ) x j , i = 1, m . y i y i = i (~ x ) i (x ) = ~ xj xj yi = ~ x j j =1 j =1 x j
Cantitile
Erori
Dac y i 0, i = 1, m i x j 0, j = 1, n atunci formula pentru propagarea erorilor relative devine: n xj i ( x) yi = xj (1) xj j =1 i ( x) Cantitile
Dac numerele de condiionare au valori (absolute) mari se spune c respectiva problem este ru condiionat, altfel problema este bine condiionat. Pentru problemele ru condiionate, erori relative mici n datele de intrare x, pot cauza erori relative mari n rezultatele y , y = ( x ) .
Exempul 3. Pentru y = (a, b, c) = a + b + c avem: a b c y = a + b + c . a+b+c a+b+c a+b+c Aceast problem este bine condiionat dac termenii a, b, c sunt mici n comparaie cu suma lor a+b+c .
Eroarea relativ (1) pentru cteva operaii elementare, n care operanzii x i y sunt nenuli, este dat n tabelul:
x+y xy x y
y x x + y , dac x + y 0 x+ y x+ y
x y x y , dac x y 0 x y x y x +y
x/ y
x
x y
1 x 2
Se observ c la nmulire, mprire i extragere de rdcin ptrat erorile relative ale operanzilor nu se propag puternic n rezultate. Acelai lucru se ntmpl i n cazul adunrii dac cei doi operanzi au acelai semn. Atunci x y numerele de condiionare sunt n (0,1) i o margine a erorii i x+ y x+ y relative este x + y max{ x , y } .
10
Dac operanzii care se adun au semne diferite, atunci cel puin unul dintre x y este mai mare ca 1 i erorile relative numerele de condiionare , x+ y x+ y
cancelarea rezultatului). Pentru descrierea propagrii erorilor de rotunjire ntr-un algoritm dat , vom apela tot la formula y = D ( x) x .
Presupunem c admite reprezentarea = ( r ) o ( r 1) o .... o ( 0) i c rezultatele calculelor pornind de la vectorul datelor de intrare, x = x (0) sunt date de relaiile:
x (i +1) = [ fl ( ( i ) ( ~ x ( i ) )) ( i ) ( ~ x ( i ) )] + [ ( i ) ( ~ x ( i ) ) ( i ) ( x ( i ) )] .
(i ) ( ~ x ( i ) ) ( i ) ( x ( i ) ) D ( i ) ( x ( i ) ) x ( i )
fl ( (i ) (u )) = rd ( (i ) (u )) ,
(2) (3).
Cum (i ) este o funcie elementar, evaluarea sa n virgul mobil va fi care pe componente devine:
Erori
11
x (1) = D (0) ( x) x + 1 x ( 2) = D (1) ( x1 )[ D (0) ( x) x + 1 ] + 2 . y = x ( r +1) = D ( r ) ...D (0) x + D ( r ) ...D (1)1 + ... + r +1 . Sau dac inem seama de ceea ce am notat cu avem:
(1) (a, b, u ) =
n primul caz avem:
u ( 2) ( 2) (1) (0) ; ( s, t ) = s t , = o o . a b
2 2 a (1) 2 2 a ( 2) a (3) x = x ( 0) = b , x = , x = 2 , x = y = a b , b b
12
(1) (u , v) = u v 2 , ( 2) (u , v ) = u v , D ( x) = ( 2a,2b) ,
D (1) ( x (1) ) = (1, 2b) , D ( 2) ( x ( 2) ) = (1, 1) ,
1 =
1a 2 1 0 , E1 = , 0 0 0
a a a 2 (eroarea de rotunjire n deoarece fl ( (0) ( x (0) )) (0) ( x (0) ) = b b virgul mobil apare doar pe prima poziie). Similar 0 0 0 2 2 2 = b2 , E 2 = 0 , 3 = 3 (a b ) , i eps, i = 1,3. 2 2
a 2 2 2 2 Dac x = b , y = 2aa 2bb + a 1 b 2 + ( a b ) 3 . n cazul algoritmului 2, avem: a (1) a + b ( 2) (1) 2 2 x = x (0) = b a b ,x = , x = y = a b ; (u , v) = u v ,
- n algoritmul 2:
( a 2 b 2 )(1 + 2 + 3 ) 3 a 2 b 2 eps.
Cnd selectm un anumit algoritm de calcul pentru un ( x ) (cu alte cuvinte, o anumit descompunere a lui n funcii elementare), D rmne neschimbat; matricele jacobiene D (i ) care msoar propagarea rotunjirilor vor fi totui diferite, efectul total al erorilor de rotunjire va fi: D (1) 1 + ... + D ( 2) 2 + r +1 . Un algoritm este numeric mai bun dect alt algoritm pentru calculul lui ( x ) , dac pentru o mulime de date x, efectul total al erorilor de rotunjire este mai mic n cazul primului algoritm.
13
14
soluie aproximativ a sistemului un termen x(s) al irului, al crui ordin depinde de precizia impus. O iteraie presupune efectuarea unui numr de operaii aritmetice de ordinul n2. Metodele iterative sunt utilizate la rezolvarea sistemelor mari de ecuaii. Cele mai cunoscute metode iterative sunt: Jacobi, GaussSeidel, metodele de relaxare.
0 0 M M 0 i e = 1 mr = r mr +1,r 0 M M 0 mn , r (elementul 1 din er se afl pe linia r). O matrice de forma Mr = In mrer T, unde erT= (0, ... , 1, ... ,0) , se numete matrice Frobenius. O astfel de matrice are urmtoarea structur: 0 0 L 0 1 O 0 1 0 L Mr = 0 L mr +1,r 1 L 0 M 0 L m 0 L 1 nr De exemplu, dac n = 4 i r = 2 , avem: 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 (0 1 0 0) = = M2 = 0 0 1 0 0 m32 0 0 0 0 1 0 m32 0 0 0 1 0 m 0 0 0 1 m 42 0 0 42 0 0 0 1 1 0 0 0 = 0 m32 1 0 0 m 0 1 42
15
Propoziia 1. Orice matrice Frobenius Mr este inversabil i inversa sa este: Mr1 = In + mr erT. Demonstraie. (In mr erT)( In + mr erT)= In mr erT + mr erT mr (erT mr ) erT. Deoarece erT mr = 0 , rezult: Mr (In + mr erT) = In, i deci Mr1 = In + mr erT. Teorema 1. Fie A o matrice ptrat de ordinul n care satisface condiia: a11 K a1r M 0 pentru orice r = 1, n 1 . (*) det M a r1 K arr Atunci exist o matrice inferior triunghiular MM n(R) astfel nct matricea = MA este superior triunghiular. Demonstraie. Deoarece a110 , putem considera matricea Frobenius 0 K 0 1 a 21 1 0 K 0 a . M 1 = 11 M M a n1 0 K 1 a 11 Dac notm A1 = A i A2 =M1A1 , atunci avem a ( 2 ) a ( 2) K a ( 2) 11 12 1n ( 2) ( 2) 0 a22 K a2 n , A2 = M M M ( 2) 0 ( 2) an 2 K ann
unde, notnd cu j = 1, n ;
( 2) aij
pentru i, j = 1, n , ,
avem:
( 2) (1) a1 j = a1 j
pentru
(1) = aij
pentru orice i, j = 2, n .
Observm c
( 2) a22 = a22
a21a12 a11
1 a11
Dac notm
16
0 K 0 0 K 0 1 K 0 , M M 0 K 1
(3) (3) K a1 a13 n (3) (3) K a2 a23 n (3) (3) , a33 K a3n M M (3) 0 K ann
0 M 0
unde
(3) aij
( 2) = aij
pentru i=1, 2, j = 1, n i
) ai(3 j
ai( 2j )
2) ( 2) ai(2 a2 j ( 2) a22
, i, j = 3, n .
(r ) n general, arr 0 i se poate considera matricea Frobenius: 0 0 L 0 1 O 0 1 0 L (r ) ar +1,r Mr = 0 L 1 L 0 . (r ) arr M (r ) 0 L anr 0 L 1 (r ) arr Dac notm cu Ar+1=MrAr , atunci
17
(r +1) K a1 r (r +1) K a2 r M
(r +1) a1 n (r +1) K a2 n M (r +1) (r +1) K ar r K ar n , (r +1) (r +1) K 0 ar +1, r +1 K ar +1, n . M M M (r +1) (r +1) K 0 an, r +1 K an n
pentru i=1,r , j = 1, n , ai j
( r + 1)
) = ai( r j
) (r ) ai( r a r r j (r ) ar r
i, j = r + 1, n . n final se obine matricea superior triunghiular a ( n) a ( n) K a ( n) 11 12 1n 0 a ( n) K a ( n) 22 2n . U = An = M n1...M 2 M1 A = .M M M 0 ( n) 0 K ann Notm cu M=Mn1 Mn2 ... M2 M1 i demonstraia teoremei este complet.
Exemplu.
5 2 1 8 1 A2 = , 0 18 9 0 5 5 0 0 2 1 1 0 0 1 5 M 2 = 0 1 0 , U = A3 = 0 8 1 , M = M 2 M 1 = 1 1 0 . 7 9 9 9 0 0 1 1 0 4 20 20 20 Considerm sistemul 5 x1 + 2 x2 + x3 = 12 5 x1 6 x2 + 2 x3 = 1 , 4x + 2x + x = 3 1 2 3
2 1 5 A1 = A = 5 6 2 , 4 2 1
1 0 0 1 1 0 M1 = 4 , 0 1 5
18
a crui soluie este x1=1, x2=2, x3=3. Sub form matriceal sistemul se scrie: 12 Ax=b , unde b = 1 . Acest sistem este echivalent cu urmtorul sistem: 3 (M2M1A)x=(M2M1)b . Efectund calculele obinem 5 x1 + 2 x2 + x3 = 12 8 x2 + x3 = 13 . 9 27 x3 = 4 4 Numrul operaiilor pentru determinarea matricei U i a vectorului Mb
2(nr)+3 operaii elementare pentru fiecare linie i, r + 1 i n , i pentru fiecare (n r )[2(n r ) + 3] operaii. n total vor fi etap r vor fi
r =1
[2(n r )2 + 3(n r )] = 3 n3 + 2 n 2 6 n
n
cele n2 operaii pentru rezolvarea sistemului triunghiular, rezult c numrul de 2 3 7 operaii pentru rezolvarea sistemului Ax=b este n3 + n 2 n . 3 2 6
1 . Din Propoziia 1 rezult c Lr este de n continuare notm cu Lr = M r
forma:
K 0 0 1 K M M M O 0 1 0 K (r ) ar +1,r Lr = 0 0 . L (r ) arr M M M (r ) 0 K anr 0 K 1 (r ) arr Dac notm cu L=L1L2...Ln1, atunci L este o matrice inferior triunghiular de tipul urmtor
19
0 1 1 l L = 21 M M l n1 l n 2
0 K 0 .0 K 0 . M M l n3 K 1
1 1 1 Deoarece A = M 1 M 2 ...M n 1U , rezult c: A=LU (3) Aadar, orice matrice ptratic ce ndeplinete condiia (*) din Teorema 1 admite o descompunere unic de forma (3), unde L este inferior triunghiular avnd elementele de pe diagonala principal egale cu 1 i U este superior triunghiular. Descompunerea (3) este cunoscut sub numele de factorizarea LU.
Algoritmul pentru factorizarea LU { Determinarea matricelor U i L cu pstrarea matricei A } Pentru i:=1,n execut Pentru j:=1,n execut uij:=aij ; dac i=j atunci l i i:=1 altfel l i j:=0 ; sfrit pentru j ; sfrit pentru i ; Pentru r:=1,n1 execut Pentru i:=r+1,n execut Pentru j:=r+1,n execut uir u rj ; uij := uij u rr sfrit pentru j ; u lir := ir ; urr sfrit pentru i ; sfrit pentru r ; Pentru i:=2,n execut Pentru j:=1,i1 execut uij:=0 ; sfrit pentru j ; sfrit pentru i . Algoritmul se afl programat n MATLAB i poate fi apelat cu secvena: [L,U ] = lu ( A) { se afieaz cele dou matrice } n exemplul precedent avem:
20
1 L1 = 1 4 5 1 A = LU = 1 4 5
0 0 1 0 0 1 0 , L2 = 0 1 0 , 9 0 1 0 1 20 0 0 5 2 1 5 2 1 1 0 0 8 1 = 5 6 2 9 9 4 2 1 1 0 0 20 4
foarte mic
, adic
(r ) arr << 1 ,
atunci
mpririle la acest pivot produc erori de rotunjire foarte mari, care altereaz soluia. n acest caz se recomand schimbarea pivotului. Se poate alege un nou pivot
(r ) r = a ir = max
sau
r) r = a (jr
{a = max { a
(r ) ij
; r jn
(r ) kl
; r k, l n
} }
Aceasta presupune schimbarea ntre ele a dou linii i eventual i a dou coloane. Algoritmul Gauss pentru rezolvarea sistemelor de ecuaii liniare Pentru r:=1,n1 execut Pentru i:=r+1,n execut Pentru j:=r+1,n execut gsete pivotul conform cu () ; schimb linia i cu linia pivotului i coloana j cu coloana pivotului dac este cazul ; sfrit pentru j sfrit pentru i Pentru i:=r+1,n execut a b bi = bi ir i arr Pentru j:=r+1,n execut air arj ; ; aij = aij arr sfrit pentru j ; sfrit pentru i ; sfrit pentru r ; b xn := n ; ann
21
Pentru i:=n1,1,1 execut s:=0 ; Pentru j:=i+1,n execut s:=s+aijxj ; sfrit pentru j ; (b s ) xi := i ; aii sfrit pentru i .
pentru orice i, j = 1, n .
+ (a21x1 + a22 x2 + ... + a2n xn )x2 + ... + (an1x1 + an 2 x2 + ... + ann xn )xn innd seama c aij = aji , n continuare avem
a11x1 + ... + a1n xn (x ) = x Ax = (x1 ,..., xn ) M = (a11x1 + a12 x2 + ... + a1n xn )x1 + a x + ... + a x nn n n1 1
22
(x ) =
aij xi x j =
i =1 j =1
n n
0 M n particular, pentru x = ei = 1 avem (ei) = aii . Cum este pozitiv definit i M 0 ei 0 , rezult c aii = (ei) > 0 , adic (a). Pentru un numr real oarecare avem (ei+ej)=aii2+2aij+ajj > 0 . (1) Pentru ca inegalitatea (1) s fie adevrat pentru orice R, trebuie ca 2 = 4 aij aii a jj < 0 .
Observaia 2. Condiiile care apar n Propoziia 1 sunt doar necesare nu i suficiente. Exemplu.
3 2 2 Matricea A = 2 3 2 satisface condiiile din Propoziia 1, dar nu este 2 2 3 pozitiv definit. ntradevr, 2 2 2 (x ) = 3 x1 + x2 + x3 + 4(x1 x2 x1 x3 + x2 x3 ) . 1 Dac x = 1 , atunci (x)=912=3<0, deci nu este pozitiv definit. 1
Definiia 1. Spunem c matricea A este tare diagonal dominant dac elementele sale satisfac inegalitile:
(d)
23
Dac inegalitile (d) devin egaliti pentru anumii indici, dar nu pentru toi, matricea se numete slab diagonal dominant.
Teorema 1. Fie A o matrice simetric cu urmtoarele proprieti: (i) A este tare diagonal dominant, (ii) aii > 0 pentru i = 1, n . Atunci A este pozitiv definit. Demonstraie. Din condiia (i) rezult c dac x0 , atunci:
n n
n n
n n
= aij xi xi x j
i =1 j =1 j i
)
)
(x ) > aij x j x j xi .
Adunnd cele dou inegaliti rezult
2 ( x ) > aij xi x j
i =1 j =1 j i
0.
Cel mai simplu exemplu de matrice reductibil este matricea diagonal. Teorema 2. Fie A o matrice simetric avnd urmtoarele proprieti: (i) A este slab diagonal dominant, (ii) A este ireductibil, (iii) aii > 0 pentru orice i = 1, n .
24
( x)
1 n n aij xi x j 2 i =1 j =1
j i
0.
Vom arta c situaia (x)=0 pentru x0 nu poate avea loc. ntradevr, (x) se anuleaz n urmtoarele cazuri: 1) aij = 0 pentru orice ij . Atunci matricea A are forma diagonal i este reductibil. 2) xi = x j = 0 pentru orice i i j.
n n
j =1 j i0
Fie M={1,2, ... , n} i S = i, j M ; xi = x j 0 . Dac S=M, atunci suntem n cazul 2). Dac S= , atunci xi x j pentru orice i i j i evident (x) > 0 pentru
x0. Aadar, putem presupune c SM (incluziune strict). Dac notm cu T=M \ S atunci S i T satisfac condiiile (i)(iv) din Definiia 2, deci A este reductibil. Exemplu. Fie 2 1 0 0 1 2 1 0 . A= 0 1 2 1 0 0 1 2 Matricea A este simetric, slab diagonal dominant, ireductibil i are elementele de pe diagonala principal strict pozitive. Din Teorema 2 rezult c A este pozitiv definit.
25
Oservaia 2. Teorema 2 este util la stabilirea faptului c anumite matrice care apar n rezolvarea numeric a ecuaiilor cu derivate pariale de tip eliptic sunt pozitiv definite.
(x ) = xT Ax = aij xi x j
i =1 j =1
n
n n
Dac notm cu
(1) 1 (x ) = aij xi x j , i =2 j =2 n n
atunci 1 este la rndul su o form ptratic pozitiv definit. z2 ntradevr, s presupunem prin absurd c exist z = M 0 astfel nct z n
1(z) 0.
z1 a1 j z z j i z = 2 . Fie z1 = . j= 2 a11 z n n continuare avem
n
n a 1j ( z ) = a11 z1 + z j + 1 (z ) = 0 + 1 (z ) 0 , j = 2 a11 ceea ce contrazice faptul c este pozitiv definit. Aadar, am demonstrat c 1 este pozitiv definit. n particular, rezult c (1) a22 > 0 . Mai departe procedm cu 1 aa cum am procedat cu i obinem 2
26
n (1) 1 (x ) = a22 x2 + j =3
unde
n
(1 ) a2 j
x j + 2 (x ) (1) a22
( 2) 2 (x ) = aij xi x j i =3 j = 3
este pozitiv definit. n final (x) se reprezint ca o sum de ptrate. Mai precis (x) admite urmtoarea scriere:
(i 1) n aij (i 1) (x ) = aii xi + xj , (i 1) i =1 j =i +1 aii n 2
unde
( 0) aij
= aij i
( p) aij
( p 1) = aij
p 1) ( p 1) a( a pj pi p 1) a( pp
, p = 1, n 1 .
Introducem notaiile:
(i 1) rii = aii , i = 1, n (i 1) aij
rij =
rii
, i< j j<i
(1)
rij = 0,
+ ... + (rnn xn )2 Dac notm cu R urmtoarea matrice superior triunghiular r11 r12 K r1n 0 r22 K r2 n R= , M M M 0 0 K rnn T T T T atunci (x)=(x R )(Rx)=x (R R)x . Pe de alt parte, (x)=xTAx. Se obine astfel urmtoarea descompunere a matricei A (2) A=RTR
27
unde R este o matrice superior triunghiular. Descompunerea (2) poart numele de factorizarea Cholesky a matricei A i are loc pentru matrice simetrice pozitiv definite. Numrul de operaii pentru determinarea matricei R Pentru a calcula elementele liniei a ia a matricei R sunt necesare (ni)(2i1)+2i 2 operaii elementare i o extragere de rdcin ptrat. Pentru toate liniile sunt necesare n n 3 n 2 5n [ (n i)(2i 1) + 2i 2 ] = 3 + 2 6 i =1 operaii elementare plus n extrageri de rdcin ptrat.
Exemplu. S se determine descompunerea Cholesky a matricei 3 2 2 A = 2 3 2 2 2 3
r11 = 3 , r12 =
2 3
, r13 =
2 , r23 = 3
r22
2 15
5 , 3
7 7 ( 2) (1) 2 a33 = a33 r23 = , r33 = 5 5 2 2 3 3 3 5 2 R= 0 . 3 15 7 0 0 5 Se verific imediat c A=RTR . Rezolvarea sistemului Ax=b cu metoda Cholesky, n cazul cnd matricea A este simetric i pozitiv definit, revine la rezolvarea a dou sisteme triunghiulare i anume RT y = b Rx = y Algoritmul Cholesky pentru rezolvarea sistemelor de ecuaii liniare Pentru p:=1,n1 execut
28
rpp: = a pp ; Pentru k:=p+1,n1 execut a pk rpk := ; rpp sfrit pentru k ; Pentru i:=p+1,n execut Pentru j:=i,n execut aij:=aijrpirpj ; sfrit pentru j ; sfrit pentru i ; sfrit pentru p ; { Rezolvarea sistemului RTy=b } b y1 = 1 ; r11 Pentru i:=2,n execut s:=0 ; Pentru j:=1,i execut s:=s+rijyj ; sfrit pentru j ; b s yi := i ; rii sfrit pentru i ; { Rezolvarea sistemului Rx=y } y xn = n ; rnn Pentru i:=n1,1 execut s:=0 ; Pentru j:=i+1,n execut s:=s+rijxj ; sfrit pentru j ; y s xi := i ; rii sfrit pentru i . Algoritmul se afl programat i n MATLAB i se apeleaz cu secvena: R=chol(A); x=R\R'\b { pentru afiarea soluiei }
29
real astfel nct Hx=x2hhTx=e1 ? innd seama de observaia de mai sus, aceasta revine la x2(hTx)h=e1, de unde rezult x e1=2(hTx)h. Aadar, h trebuie s fie colinear cu xe1. Cum h 2 = 1 rezult
x e1 . x e1 2 Pe de alt parte, H fiind ortogonal avem x 2 = Hx 2 = e1 = . h=
(1)
30
x1 + sgn( x1 ) x 2 x1 + x 2 sgn( x1 ) x2 x2 x e1 = = i M M xn xn
(2)
(3)
sgn(x1) = 1 dac x1 = 0.
Teorema 1. Pentru orice matrice AM n(R) nesingular exist o matrice ortogonal H astfel nct matricea R = HA este superior triunghiular. Demonstraie. a11 a21 Fie a1 = , prima coloan a matricei A. Din cele artate mai nainte rezult M a n1 c exist o matrice Householder H1 astfel nct H1a1=e1. Matricea H1 se determin astfel:
n s = a2 j1 j =1
1/ 2
, = (s (s + a11 ))
sgn( a11 ) = 1 daca a11 = 0 , H 1 = I n uu T . Dac notm cu A1 = H1A, atunci A1 are urmtoarea form: sgn(a ) s a (1) K a (1) 11 12 1n (1) (1) 0 K a2 a22 n A1 = M M M (1) (1) 0 a K a nn n2
(4)
31
a (1) 22 (1) = M i determinm o matrice n continuare considerm vectorul a2 (1) an 2 ~ ortogonal H 2 Mn1(R) astfel nct ~ ~, H a (1) = e
unde ~ e1T = (1, 0 , ..., 0) Rn1.
2 2 1
( 2) (1) a1 j = a1 j , j = 1, n .
I2 0 H3 = ~ 0 H M n(R) i cu A3=H3A2. Matricea A3 va avea toate elementele de 3 sub diagonala principal, din primele trei coloane, zero. Procedeul continu ntr-un mod evident. n final, obinem o matrice superior triunghiular An1 = Hn1An2 = =Hn1...H2H1A. Dac notm H=Hn1...H2H1 i cu R=HA, atunci H este ortogonal i R superior triunghiular.
Corolar. Pentru orice matrice nesingular AM n(R) exist o matrice ortogonal Q i o matrice superior triunghiular R astfel nct A= QR.
Algoritmul Householder pentru rezolvarea sistemelor de ecuaii liniare Fie sistemul Ax =b cu AM n(R). Notm cu C=(A|b)=(cij)M n,n+1 (R) matricea extins. Pentru i: = 1,n1 execut
s :=
c2 ji
j =i
dac s = 0 atunci A este singular . Stop! altfel := (s(|cii|+s))1 ; dac cii = 0 atunci sgn(cii): = 1 ; u := (0, ..., 0, (cii + s)sgn(cii), ci+1,i , ..., cni)T ;
32
sfrit pentru i ;
33
0 0 1 H 2 = 0 0.961417354 0.275093933 ; 0 0.275093933 0.961417354 - 8.124038405 3.446561747 1.354006401 0 5.667557862 0.588142797 ; A2 = H 2 A1 = 0 0 1.954675092 5.292934112 b2 = H 2b1 = 9.570687333 ; C = H 2 C = [A2 b2 ] ; 5.864025277 0.615457455 0.615457455 0.492365964 H = H 2 H1 = 0.727158367 0.684384346 0.053467527 ; 0.30406057 0.390935018 0.868744486 8.124038405 3.446561747 1.354006401 R= H A= 0 5.667557862 0.588142797 ; 0 0 1.954675092 Soluia sistemului iniial este x=R1Hb , unde: 0.123091491 0.074854538 0.062742657 1 R = 0 0.176442839 0.053089941 . 0 0 0.511593975 Se obine soluia x1=1 ; x2= 2 ; x3= 3.000000001 .
, 1 p <
cu proprietile:
34
A+ B M A M + B M , AB M A M B M , A, BM n(R). (iv) Un exemplu de norm de matrice este norma euclidian de matrice, care se definete astfel
1/ 2
n n 2 A E = aij . (1) 1 1 i = j = Proprietile (i) i (ii) sunt evidente. Pentru a demonstra proprietile (iii) i (iv) se folosete inegalitatea CauchyBuniakovskiSchwarz pe Rn. Pentru exemplificare demonstrm (iv). Fie C = AB. Atunci
2 cij
n continuare avem
n n n n n n 2 2 2 2 bkj = A 2 B 2 , aik AB E = cij E E i =1 j =1 i =1 k =1 j =1 k =1 de unde rezult AB E A E B E .
vectorial
p dac
Ax p A M
Observaia 1.
Ax 2 A E x 2 , () x.
n n n n 2 2 2 2 Ax 2 = (ai1x1 + ... + ain xn )2 aij x2 = A E x 2 . j i =1 i =1 j =1 j =1
ntradevr,
Observaia 2. Dac este o valoare proprie a matricei A, atunci A M pentru orice norm de matrice compatibil cu o norm vectorial.
ntradevr, fie v un vector propriu al matricei A care corespunde valorii proprii . Atunci avem v = v = Av A M v ,
35
deci
AM.
Dup cum se tie, ntre mulimea M n(R) a matricelor ptratice cu elemente din R i mulimea L(Rn) a aplicaiilor liniare i continue, U : RnRn , exist o coresponden bijectiv. Mai precis, dac A este matricea asociat transformrii liniare U, atunci U(eiT) = (a1i, a2i, ..., ani), unde eiT = (0, ..., 1, ..., 0)Rn i U(xT) = (Ax)T. Pe de alt parte, spaiul L(Rn) este un spaiu normat n raport cu norma operatorial:
U o = sup
{ U (x ) ;
T
xT = 1
(2)
unde cu
U
Se tie de asemenea c:
o
( ) c xT
, () x T R n
(3)
Definiia 3. Se numete norma matricei A subordonat normei vectoriale urmtorul numr: Ax A = sup { Ax ; x = 1 } = sup (4) x0 x
(5)
Ax A x , x R n , deci norma Din relaia (5) rezult n particular c matriceal definit de (4) este compatibil cu norma vectorial creia i este subordonat. Este evident c aplicaia A A definit de (4) satisface proprietile (i)(iii) din definiia 1. De asemenea avem ABx A Bx A B x ,
de unde rezult A B A B . Aadar, formula (4) definete ntradevr o norm de matrice.
Definiia 4. Dac 1, ..., n sunt valorile proprii ale matricei A , atunci se noteaz cu (A)= max i i (A) se numete raza spectral a matricei A (n aceast
1i n
(1)
A = max aij ,
1i n j =1
36
A 1= max aij ,
1 j n i =1
((
))
1 2
Demonstraie.
Ax = max
n
Rezult
astfel nct
n
A~ x = max aij . Pentru aceasta, fie k astfel nct s avem = max aij
1i j =1
1i n j =1 n
akj
j =1
(6)
0 i fie ~ x j = akj a kj
dac dac
akj = 0 akj 0
.
n n
x = 1 i Evident c ~
(1). n continuare avem
n
x 1
de unde rezult
A 1 max aij .
1 j n i =1
37
e j = 1 i
1
Ae j = aij , de
1 i =1
unde rezult
j = 1, n . Aadar,
A 1 max
1 j n i = 1
aij
(7) A 2 = 1
Vom arta n continuare c Bv=1v , deci c v este un vector propriu pentru B i corespunde valorii proprii 1.
z z B i deci ntr-adevr, pentru orice z0 avem: z z 1 2 2
T
z T Bz 1 z 2 = 1z T z (8) Pe de alt parte este evident c relaia (8) este verificat i pentru z=0. Deci relaia (8) are loc pentru orice z. De asemenea avem: (9) vTBv=1vTv Dac notm cu C=B1In , atunci avem: (8') zTCz0 , () z i (9') vTCv=0 Fie z=v+ty , unde tR este oarecare i y este un vector oarecare. Din (8') i din faptul c C este simetric rezult vTCv+2tyT(Cv)+t2yTCy0 . innd seama de (9') avem (10) t 2 y T Cy + 2ty T (Cv ) 0 . T Pentru ca (10) s fie adevrat pentru orice tR trebuie ca y Cv = 0. Cum y a fost arbitrar rezult 0=Cv=(B1In)v=Bv1v.
Aadar, avem Bv=1v, deci 1 este valoare proprie pentru B i n plus 1 = A 2 . Pe de alt parte, fie o alt valoare proprie a matricei B i fie u0, u 2 = 1 , astfel nct Bu=u. n continuare avem
2
1 = A 2 Au
2 2
= u T Bu = u T u = .
Aadar, 1 este cea mai mare valoare proprie a matricei B, deci am demonstrat i afirmaia (3).
38
n particular dac presupunem c matricea A este simetric, rezult c B=A2. Fie 1, 2, ..., n valorile proprii ale matricei A, care n acest caz sunt 2 2 reale. Se tie c 1 sunt valorile proprii ale matricei A2. S , 2 , ..., 2 n
2 presupunem c 1 = max 2 j. 1 j n
i>0
rezult
A 2 = 1 . Dac, n plus, A este pozitiv definit, atunci pentru orice i. S presupunem c: 1 2 ... n . Din cele de mai sus
A 2 = 1 , unde 1 este cea mai mare valoare proprie a matricei simetrice i pozitiv definite A.
39
Notm cu b perturbarea membrului drept i cu x perturbarea care rezult pentru soluie. Avem: A(x+ x )=b + b , de unde rezult A x = b i deci x =A1 b . Pentru orice norm de matrice compatibil avem:
x A 1 b
Pe de alt parte b = Ax A x , de unde rezult:
(2)
A 1 x b
Din relaiile (2) i (3) obinem
(3)
x
x
A A1
b
b
(4)
Aadar, ntre eroarea relativ a membrului drept i eroarea relativ a soluiei sistemului avem urmtoarea inegalitate x b cond ( A) . (5) b x Observm c dac numrul de condiionare al matricei coeficienilor sistemului este mare, atunci la erori relativ mici ale termenilor liberi, pot apare erori relativ mari pentru soluia sistemului. n cazul exemplului (1) avem 10 6 10 7 8 8 25 41 68 17 10 7 5 6 5 1 41 , A = A= 10 17 5 3 8 6 10 9 7 5 9 10 6 10 3 2 i cond2(A) 2984. (Sa folosit norma de matrice 2 ). Dup cum se vede, numrul de condiionare este destul de mare, ceea ce explic instabilitatea soluiei sistemului. Numrul de condiionare are urmtoarele proprieti: (i) cond(In)1 (ii) cond(A)=cond(A1) (iii) cond(A)=cond(A) pentru orice 0 1 , unde 12...n>0 sunt valorile proprii ale matricei (iv) cond 2 ( A) = n B=ATA
40
(v)
max i min i
valorile proprii ale matricei A (vi) Dac A este ortogonal, atunci cond(A)=1 . Pentru a evalua eroarea soluiei sistemului la o perturbare a coeficienilor sistemului, avem nevoie de urmtoarele dou leme.
Lema 1. Dac AM n(R) i A < 1 , atunci: (i) A+In i AIn sunt nesingulare, i 1 1 ( A I n )1 . (ii) A +1 1 A Demonstraie. Prezentm demonstraia pentru A+In . Presupunem prin absurd c A+In este singular. Atunci exist x 0, x = 1 astfel nct (A+In)x = 0. n continuare avem x = Ax, deci x A x .
Rezult A 1 ceea ce contrazice ipoteza Pentru a demonstra (ii) observm c de unde rezult
A < 1.
(I n + A)1
i mai departe
(I n + A)1
1 . 1 A
(i) (ii)
A 1 A 1 ( B A ) k < 1 .
B 1
1 k
41
Cum det(A1B) = det(A1)detB, va rezulta detB 0, deci B este nesingular. Tot din Lema 1 rezult 1 1 1 . B 1 A = I n + A 1 (B A) 1 A 1 (B A) 1 k
B 1 = B 1 A A1 B 1 A A1
1 k
cond( A) 1 cond( A)
A A
A A
Demonstraie. Din egalitile Ax=b i (A+A)(x+x)=b rezult Ax+Ax+Ax=0. n continuare avem x = (A+A)1A x i mai departe x ( A + A)1 A (6) x
i B=A+A, atunci
A 1 (B A) = A1A < 1
i va rezulta B
1
= ( A + A )
A1 1 A1A
A1 1 A1 A
A 1 A
(7)
x
x
A 1 A 1 A
1
1 A
A
A
A
A
innd seama de definiia numrului de condiionare, ultima inegalitate devine x A cond( A) . A A x 1 cond( A) A
42
Observaia 1. Dac presupunem n plus c perturbm i membrul drept al sistemului cu b atunci rezult
x
x
A b . + A A b 1 cond ( A) A cond ( A)
Observaia 2. Rezolvarea sistemului Ax=b, cu metoda Gauss revine la rezolvarea a dou sisteme triunghiulare Uy=b i Lx=y. Rezolvarea fiecrui sistem necesit n2 operaii. Dac unul din aceste sisteme este ru condiionat (ceea ce se poate ntmpla chiar dac sistemul iniial Ax=b este bine condiionat) metoda Gauss conduce la erori mari.
Cu totul altfel stau lucrurile n cazul metodei Householder. Deoarece cond(Q) = 1 i cond(QR) = cond(R), rezult c sistemul Qy = b este bine condiionat i deci c sistemul Ax = b are aceeai condiionare ca sistemul Rx = y. Aadar, algoritmul Householder are proprieti de stabilitate mai bune dect algoritmul Gauss.
Observaia 3. Pentru evaluarea numrului de condiionare cond(A), este suficient
A1 . A1
(LU )1
, deoarece
inversarea matricelor triunghiulare este uoar. S presupunem c (LU )1 = i A LU < k unde 0<k<1. Atunci din Lema 2 rezult . 1 k ntradevr, s alegem n Lema 2 matricea LU n loc de A i matricea A n loc de B. Avem k A1 ( A LU ) A1 A LU = k < 1 .
A1
Atunci rezult
A1
1 k
i deci cond ( A)
A
1 k
43
e ( m ) = B m e ( 0)
(5)
m
e (m ) B m e (0 ) B
e (0 )
.