Ecuatii si sisteme de ecuatii neliniare Metoda lui Newton Algorithm Metoda lui Newton pentru ecuaţia f(x) = 0. - Funcţia f - Aproximaţia iniţială x - Eroarea admisă ε - Numărul maxim de iteraţii ITMAX - Ultima aproximaţie calculată x - Numărul de iteraţii efectuate n n = while f(x) > ε şi n IT MAX do x = x f(x) f (x) n = n + end while if n > IT MAX then În ITMAX iteraţii nu a fost realizată aproximarea dorită else Aproximarea obţinută este x end if Exemplul. Pentru ecuaţia: xe x = 0 cu algoritmul descris anterior se obţin rezultatele din tabelul următor, tabel în care ultima coloană conţine
valorile absolute ale funcţiei f(x) = xe x (erorile de aproximare): n x n f(x n ) 0 0, 788884590 0, 6899705857 0, 5545509947 0, 577454477544 0, 08788689 4 0, 56797770 0, 00088905 5 0, 56749650 0, 000000069 6 0, 5674904097 0, 0000000000000 În Algoritmul se aplică metoda lui Newton pentru aproximarea radicalului de ordin p dintr-un număr real pozitiv a, cu o eroare dată ε, într-un număr de iteraţii dat ITMAX. Algorithm Metoda lui Newton pentru p a. - Numărul real, pozitiv a - Ordinul radicalului p - Aproximaţia iniţială x - Eroarea admisă ε - Numărul maxim de iteraţii ITMAX n = - Ultima aproximaţie calculată x - Numărul de iteraţii efectuate n while x p a > ε şi n IT MAX do x = [ (p )x + a ] p x p n = n + end while if n > IT MAX then În ITMAX iteraţii nu a fost realizată aproximarea dorită else Aproximarea obţinută este x end if În tabelul următor sunt date aproximaţiile numerelor şi, luând x 0 =, respectiv x 0 =, calculate cu formula x n+ = [ (p )x n + a ] p x p, n 0. n
n 0, 5, 5, 466666667, 466666667, 445686, 445686 4, 44564, 44564 În Algoritmul se aplică metoda secantei pentru aproximarea soluţiei ecuaţiei f(x) = 0 cu o eroare dată ε, într-un număr de iteraţii dat ITMAX. x n+ = x n f(x n)(x n x n ) f(x n ) f(x n ). Pentru ecuaţia din exemplul. se obţin următoarele rezultate: n x n f(x n ) 0 0, 788884590 0, 678794474 0, 46856946 0, 5049 0, 674007684 4 0, 5786586059 0, 00007486579 5 0, 566548586 0, 006876987 6 0, 567757785 0, 0000580965 7 0, 5674970 0, 0000000079090
Algorithm Metoda secantei pentru ecuaţia f(x) = 0. - Funcţia f - Aproximaţiile iniţiale x 0, x - Eroarea admisă ε - Numărul maxim de iteraţii ITMAX - Ultima aproximaţie calculată x - Numărul de iteraţii efectuate n n = while f(x ) > ε şi n IT MAX do x = x f(x )(x x 0 ) f(x ) f(x 0 ) x 0 = x x = x n = n + end while if n > IT MAX then În ITMAX iteraţii nu a fost realizată aproximarea dorită else Aproximarea obţinută este x end if 4
Metoda aproximaţiilor succesive Algorithm 4 Metoda aproximaţiilor succesive pentru ecuaţia x = f(x). - Funcţia f - Aproximaţia iniţială x - Eroarea admisă ε - Numărul maxim de iteraţii ITMAX - Ultima aproximaţie calculată x - Numărul de iteraţii efectuate n n = while x f(x) > ε şi n IT MAX do x = f(x) n = n + end while if n > IT MAX then În ITMAX iteraţii nu a fost realizată aproximarea dorită else Aproximarea obţinută este x end if Exemplul. Pentru ecuaţia: x = e x în tabelul următor sunt prezentate rezultatele aplicării metodei aproximaţiilor succesive. În ultima coloană sunt valorile absolute ale erorilor de aproximare x n f(x n ), unde f(x) = e x. n x n x n f(x n ) 0 0 5 0, 6064550855 0, 06084774905 0 0, 5648794790 0, 0054977680 5 0, 56776755 0, 000087847 0 0, 567549006 0, 00004058 5 0, 56747480994 0, 0000007765 0 0, 56746554 0, 000000040865 5
Ecuaţii şi sisteme de ecuaţii neliniare Metoda lui Bairstow Exemplul. Pentru ecuaţia: x x + = 0, luând ca aproximaţii iniţiale p 0 = q 0 = 0, şi oprind iteraţiile atunci când: max { R, S } < 0, se obţine descompunerea: x x + = (x +, 8799)(x, 8799x + 0, 509) Rădăcinile ecuaţiei sunt: x =, 8799, x =, 509, x = 0, 470. Exemplul. Pentru ecuaţia: x 4 + x 0x 4x 6 = 0, luând ca aproximaţii iniţiale p 0 = 0,, q 0 = 0 şi oprind iteraţiile atunci când: max { R, S } < 0, se obţine descompunerea: x 4 + x 0x 4x 6 = = ( x, 868x 4, 5806 ) ( x +, 868x + 5, 676 ) Rădăcinile ecuaţiei sunt: x = 4, 0047, x =, 46, x, 4 =, 945 ±, 9i.
Algorithm Metoda lui Bairstow. - Gradul ecuaţiei n - Coeficienţii ecuaţiei: a 0, a,..., a n - Pentru fiecare n aproximaţiile iniţiale p, q şi eroarea ε - Pentru fiecare n rădăcinile ecuaţiei x +px+q = 0, iar în final rădăcinile unei ecuaţii de gradul doi (pentru n = ) sau rădăcina unei ecuaţii de gradul întâi (pentru n = ) while n do repeat b 0 = a 0 b = a pb 0 for i =,,..., n do b i = a i pb i qb i end for c 0 = b 0 c = b pc 0 for i =,,..., n do c i = b i pc i qc i end for δ = c n c n c n + c n b n P = b n c n + b n c n Q = b n c n + b n c n b n p = p P δ q = q Q δ until max { b n, b n + pb n } < ε Rezolvă ecuaţia x + px + q = 0 n = n for i = 0,,..., n do a i = b i end for end while if n = then Rezolvă ecuaţia a 0 x + a x + a = 0 else Rezolvă ecuaţia a 0 x + a = 0 end if
Metoda lui Bernoulli Exemplul. Fie ecuaţia: Pentru acest exemplu se obţin valorile: P (x) = 0, P (x) = x 5 + 5x 4 5. y 0 = 5, y = 5, y = 5, y = 5, y 4 = 65. Procesul iterativ este în acest caz: y i+5 = 5 (y i y i+4 ), i 0. Se obţin rezultatele din următorul tabel: Avem: y k i k = i + 5 y k y k 0 5 00 4, 960000 6 5475 4, 9995 7 7750 4, 999 8 8565 4, 99909 4 9 95000 4, 99896 5 0 9609500 4, 99948 P ( 4, 99948) = 0, 0005. Deci rădăcina reală, maximă în valoare absolută, a ecuaţiei date este aproximativ egală cu 4, 99948.
Algorithm Metoda lui Bernoulli. - Gradul ecuaţiei n - Coeficienţii ecuaţiei: a 0, a,..., a n - Eroarea admisă ε - Numărul maxim de iteraţii ITMAX - Aproximaţiile calculate x pentru rădăcina maximă în valoare absolută - Numărul de iteraţii efectuate m y 0 = n y = a a 0 for i =,,..., n do a a a i y i = y i y i... y a 0 a 0 a 0 end for i = 0 m = 0 repeat a a y n+i = y n+i y n+i a 0 i a i a 0 a n... y i a 0 a 0 x = y n+i y n+i m = m + i = i + until a 0 x n + a x n +... + a n < ε sau m > IT MAX if m > IT MAX then În ITMAX iteraţii nu a fost realizată aproximarea dorită else Aproximarea obţinută este x end if 4
Matrice. Proceduri de triangularizare Triangularizarea superioară a matricei A R n n se realizează într-un număr de etape în care se determină matricele A () = A, A (),..., A (n) de forma: a (k) a (k)... a (k) k a (k) k... a (k) n A (k) = 0 a (k)... a (k) k a (k) k... a (k) n........... 0 0... a (k) k k 0 0... 0 a (k) a (k) k k... a (k) k n kk... a (k) kn........... 0 0... 0 a (k) nk... a (k) nn, k n. Elementele matricei A (k+) se calculează astfel: a (k) ij pentru i k, i j n a (k+) ij = 0 pentru j k, j + i n a (k) ij m ik a (k) kj pentru k + i, j n = a(k) ij a(k) kk a(k) ik a(k) kj a (k) kk Aşadar, matricea A (k) se transformă în matricea A (k+) după următoarele reguli: R. Liniile,,..., k şi coloanele,,..., k, (k > ), nu se modifică. R. Elementele subdiagonale din coloana k se anulează. R. Elementele situate în liniile şi coloanele k +, k +,..., n se transformă după regula dreptunghiului. În Algoritmul se realizează triangularizarea superioară a unei matrice A R n n folosind regulile R R. Calculele se fac în matricea A. Să presupunem acum că în etapa k elementul a (k) kk de pivotare parţială sau totală. 0. Procedura de pivotare parţială. Se caută în coloana k acel element a (k) i k k cu proprietatea: = max a (k) i k k () = 0. În acest caz se folosesc aşa numitele proceduri a (k) ik k i n În Algoritmul se realizează triangularizarea superioară a unei matrice A R n n aplicând în fiecare etapă procedura de pivotare parţială şi regulile R R. Calculele se fac în matricea A. 0. Procedura de pivotare totală. În această procedură se determină elementul a (k) i k j k cu proprietatea: a (k) i k j k =. max a (k) ij k i,j n În Algoritmul se realizează triangularizarea superioară a unei matrice A R n n aplicând în fiecare etapă procedura de pivotare totală şi regulile R R. Calculele se fac în matricea A..
Algoritmul Procedură de triangularizare a unei matrice A (varianta ). - Matricea A = (a ij ) i, j n. - Matricea superior triunghiulară obţinută în A Pentru k =,,..., n execută: Dacă a kk 0 atunci: Pentru i = k +, k +,..., n execută: Pentru j = k +, k +,..., n execută: a ij = a ij a ika kj a kk a ik = 0 altfel: Matricea A nu poate fi triangularizată prin acest algoritm. STOP Algoritmul Procedură de triangularizare a unei matrice A (varianta ). - Matricea A = (a ij ) i, j n. - Matricea superior triunghiulară obţinută în A Pentru k =,,..., n execută: a pk = max k i n a ik Dacă a pk 0 atunci: Dacă p k atunci: Permută liniile p şi k Pentru i = k +, k +,..., n execută: Pentru j = k +, k +,..., n execută: a ij = a ij a ika kj a kk a ik = 0
Algoritmul Procedură de triangularizare a unei matrice A (varianta ). - Matricea A = (a ij ) i, j n. - Matricea superior triunghiulară obţinută în A Pentru k =,,..., n execută: a pq = max k i,j n a ij Dacă a pq 0 atunci: Dacă p k atunci: Permută liniile p şi k Dacă q k atunci: Permută coloanele q şi k Pentru i = k +, k +,..., n execută: Pentru j = k +, k +,..., n execută: a ij = a ij a ika kj a kk a ik = 0 altfel: Matricea A este superior triunghiulară STOP
Exemplul 0. Să se triangularizeze matricea: A = Soluţii. a) În cazul algoritmului obişnuit (metoda lui Gauss), fără pivotare parţială sau totală, se parcurg următoarele etape: Etapa. A () = A, a () =, m =, m =, Etapa. M = M = b) Pivotare parţială. Etapa. Avem: 0 0 0 0 0 0 0 0 0., A () = M A () = a () =, m =,, A () = M A () = A () = A, max a () i i = 0 0 5 a () 0 0 0 Se permută în A () liniile,. Se obţine matricea: P A () =, P = 0 0 0 0. 0 0 Se aplică regulile R R matricei P A (). Rezultă: 0 0 A () = 0 0 7 = M P A (), M = 0. 0 Etapa. Avem: max a () i i = a ()., P = I. Nu sunt necesare permutări de linii. Se aplică regulile R R matricei A (). Rezultă: A () = 0 0 0 = M P A () = M A (), M = 0 0. 0 0 0.. c) Pivotare totală. Etapa. Avem: A () = A, max a () ij i,j = a (). 4
Se permută în A () liniile, şi coloanele,. Se obţine matricea: 0 0 P A () S =, P = 0 0 0 0 Se aplică acum regulile R R matricei P A () S. Rezultă: 5 7 A () = 0 5 = M P A () S, M = 0 Etapa. Avem: max a () ij i,j = a (). = S. 0 0 0 0 Se permută în A () coloanele,. Se obţine matricea: 7 5 P A () S = 0 5, P = I, S = 0 0 0 0 0 0 0 Se aplică acum regulile R R matricei P A () S. Rezultă: 7 5 A () = 0 0 0 6 = M P A () S, M = 0 5 7 7 0 0 0 0... 5
Matrice. Sisteme de ecuaţii liniare Factorizarea LR Exemplul. Rezultă: A = 4 5 6 L = () 0 0 0 0, R = () 0 0 0 0 0. Algoritmul Factorizare LR pentru o matrice A. - Matricea A = (a ij ) i, j n. - Elementele matricelor L şi R obţinute în A Pentru k =,,..., n execută: Dacă a kk 0 atunci: Pentru i = k +, k +,..., n execută: Pentru j = k +, k +,..., n execută: a ij = a ij a ika kj a kk a ik = a ik a kk altfel: Matricea A nu poate fi factorizată LR cu acest algoritm. STOP
Pentru factorizarea Doolittle se obţin formulele: r j = a j, j n l i = a i, i n r Pentru k =,,..., n : r kj = a kj k l kh r hj, k j n l ik = ( r kk r nn = a nn n h= a ik k h= h= l nh r hn l ih r hk ), k + i n () Algoritmul Factorizare LR Doolittle pentru o matrice A. - Matricea A = (a ij ) i, j n - Elementele matricelor L şi R obţinute în A Dacă a = 0 atunci: Matricea A nu poate fi factorizată cu formulele STOP altfel: Pentru i =,,..., n execută: a i = a i a Pentru k =,,..., n execută: Pentru j = k, k +,..., n execută: a kj = a kj k a kh a hj h= Dacă a kk = 0 atunci: Matricea A nu poate fi factorizată cu formulele STOP altfel: Pentru i = k +, k +,..., n execută: a ik = ( ) a ik k a ih a hk a kk a nn = a nn n a nh a hn h= h=
Matrice. Sisteme de ecuaţii liniare Factorizarea QR Exemplul. Să se realizeze o factorizare QR pentru matricea: A = 0 0. 0 Soluţie. Etapa. A () = A, v = +, 0 0 H = I v v t v tv = 0 0 0 A () = H A () = 0 0,. Etapa. v = H = I v v t v tv = 0 + 6, 0 0 6 0 6 0,
Rezultă: A () = H A () = 6 0 0 0 6 6 Q = H H = 6 6 6 0 R = A () = 6 0 0 0 6 6., 6. 6
Algoritmul Factorizare QR a unei matrice A - Matricea A = (a ij ) i,j n - Matricele R = A şi Q Q = I Pentru k =,,..., n execută: n σ = a ik i=k Dacă σ 0 atunci: Dacă a kk < 0 atunci: σ = σ v k = a kk + σ Pentru i =,,..., k execută: v i = 0 Pentru i = k +, k +,..., n execută: v i = a ik β = n vi i=k Pentru i =,,..., n execută: Pentru j =,,..., n execută: Dacă i j atunci: h ij = v iv j β altfel: h ij = v i β A = H A Q = Q H
Metode directe de rezolvare a sistemelor liniare Considerăm sistemul de ecuaţii liniare: unde A R n n, b R n. Ax = b, () Metode directe bazate pe proceduri de triangularizare Exemplul. Să se rezolve sistemul: 5x + x + x = 5x 6x + x = 4x + x + x = Metoda. Vom nota cu B (k) matricea extinsă obţinută în etapa k. Avem: 5 5 B () = (A, b) = 5 6, B () = 0 8, 8 9 6 4 0 5 5 5 B () = 5 0 8 9 7 0 0 4 4 Sistemul corespunzător matricei B () este: 5y + y + y = 8y + y = 9 4 y = 7 4 Soluţia acestui sistem este: y = Deoarece nu s-au efectuat permutări de coloane rezultă S = I şi deci soluţia sistemului dat este: x = y =...
Metoda. Metoda pivotării totale. Fie: B () = 5 6 = 5 4 Aplicând procedura de pivotare totală obţinem: Se permută liniile, şi coloanele,. Obţinem: 6 5 5 4 ( A (), b ()), A () = A, b () = b. max b () ij i,j = 6 = = P (A () S, b ()), P = S = Se aplică regulile R R matricei P ( A () S, b ()). Rezultă: b (). 0 0 0 0 0 0 6 5 0 5 5 B () 0 = 0 7 = M ( P A () S, b ()), 5 8 0 0 0 M =. 0 Aplicăm din nou procedura de pivotare totală. Avem: max b () ij = 0 b i,j = (). Nu sunt necesare permutări de linii sau coloane. Se aplică regulile R R matricei B (). Obţinem: 6 5 0 5 5 B () 0 = 9 7 0 0 4 4 Sistemul corespunzător matricei B () este: 6y + 5y + y = 0 y + 5 y = 5 9 4 y = 7 4 Soluţia acestui sistem este: Soluţia sistemului dat este: 0 0 = M B (), M = 0 0 7 0 0 y = x = Sy = S y =....
Algoritmul Metode directe pentru sisteme liniare bazate pe proceduri de triangularizare. - Matricea sistemului A = (a ij ) i,j n - Termenii liberi a in+ = b i, i n - Matricea R = A, unde A are forma din ultima etapă - Vectorul c de componente: c i = a in+, i n - y = (y i ) i n soluţia sistemului Ry = c - x = Sy, x = (x i ) i n, soluţia sistemului Ax = b S = I Pentru k =,,..., n execută: a pq = max k i,j n a ij Dacă a pq 0 atunci: Dacă p k atunci: Permută liniile p şi k în (A, b) Dacă q k atunci: Permută coloanele q şi k în (A, b) şi S Pentru i = k +, k +,..., n execută: Pentru j = k +, k +,..., n + execută: a ij = a ij a ika kj a kk a ik = 0 altfel: Sistemul Ax = b nu poate fi rezolvat prin acest algoritm STOP y n = a nn+ a nn Pentru i = ( n, n,..., execută: ) y i = a in+ n a ik y k a ii k=i+ Pentru i =,,..., n execută: x i = n k= (S) ik y k
Metode directe bazate pe proceduri de factorizare LR si QR Exemplul. Să se rezolve sistemul: Soluţie. Pentru matricea sistemului: x + x + x = 7 4x + 5x + 6x = 5 x + x + x = 5 A = am realizat factorizarea Doolittle A = LR cu: Sistemul Ly = b, unde b = 7 5 5 Sistemul Rx = y are soluţia: x = L = R = 4 5 6 0 0 0, 0 0 0 0, are soluţia: y =. Rezultă că sistemul dat are soluţia: x = x = x =.. 7. 4
Algoritmul Metode directe de rezolvare a sistemelor liniare bazate pe proceduri de factorizare LR. - Matricea sistemului: A = (a ij ) i,j n - Termenii liberi: b = (b i ) i n - Elementele eventual nenule ale matricei L: l ij = a ij, j < i n, l ii =, i n - Elementele eventual nenule ale matricei R: r ij = a ij, i j n - y = (y i ) i n soluţia sistemului Ly = b - x = (x i ) i n soluţia sistemului Rx = y Aplică algoritmu de factorizare LR a matricei A y = b Pentru i =,,..., n execută: y i = b i i a ik y k k= x n = y n a nn Pentru i = ( n, n,..., ) execută: x i = y i n a ik x k a ii k=i+ 5
Algoritmul Metode directe de rezolvare a sistemelor liniare bazate pe proceduri de factorizare QR. - Matricea sistemului: A = (a ij ) i,j n - Termenii liberi: b = (b i ) i n - Elementele matricei Q: q ij, i, j n - Elementele eventual nenule ale matricei R: r ij = a ij, i j n - y = (y i ) i n soluţia sistemului Qy = b - x = (x i ) i n soluţia sistemului Rx = y Aplică algoritm defactorizare QR a matricei A P rod = n a kk k= Dacă P rod 0 atunci: Pentru i =,,..., n execută: y i = n k= q ki b k x n = y n a nn Pentru i = ( n, n,..., execută: ) x i = y i n a ik x k a ii k=i+ altfel: Sistemul nu poate fi rezolvat prin acest algoritm 6
Metode iterative de rezolvare a sistemelor liniare Metodele Seidel-Gauss şi Jacobi ) Metoda Seidel - Gauss: ( ) t x (0) = x (0) x (0)... x (0) n R n, Pentru k 0 : ( x (k+) i = b i i a ij x (k+) j n a ii j= j=i+ a ij x (k) j ), i n. () ) Metoda Jacobi: x (0) = ( ) t x (0) x (0)... x (0) n R n, Pentru k 0 : x (k+) i = a ii b i n j= j i a ij x (k) j, i n. () Observatie. Oprirea procesului iterativ () sau () se face atunci când: unde ε este precizia impusă pentru aproximarea soluţiei. q k ( q d x (), x (0)) < ε. () Metoda relaxării Exemplul. Să se aproximeze soluţia sistemului: x 0, x 0, x +, = 0 0, x x 0, x +, = 0 0, x 0, x x +, 4 = 0 Soluţie. Considerăm x (0) = (0 0 0) t. Rezultă: R (0) =,, R (0) =,, R (0) =, 4
Algoritmul Metoda Seidel-Gauss. - Matricea sistemului: A = (a ij ) i,j n - Termenii liberi ai sistemului: b = (b i ) i n - Eroarea admisă ε - Aproximaţia iniţială a soluţiei: x = (x i ) i n - Ultima aproximaţie calculată: y = (y i ) i n - Numărul de iteraţii efectuate k Determină: n a ij q = max i n sau: q = max j n j= j i a ii n a ij i= i j a jj Dacă q < atunci: m = Pentru i =,,..., n execută: y i = (b i i a ij y j n a ij x j ) a ii j= j=i+ Determină cel mai mic număr natural k cu proprietatea: Pentru m =,,..., k execută: Pentru i =,,..., n execută: x i = y i Pentru i =,,..., n execută: y i = (b i i a ij y j n a ij x j ) a ii j= j=i+ altfel: Nu este asigurată convergenţa algoritmului STOP q k q max i n x i y i < ε
Algoritmul Metoda Jacobi. - Matricea sistemului: A = (a ij ) i,j n - Termenii liberi ai sistemului: b = (b i ) i n - Eroarea admisibilă ε - Aproximaţia iniţială a soluţiei: x = (x i ) i n - Ultima aproximaţie calculată: y = (y i ) i n - Numărul de iteraţii efectuate k Determină: n a ij q = max i n sau: q = max j n j= j i a ii n a ij i= i j a jj Dacă q < atunci: m = Pentru i =,,..., n execută: y i = (b i n a ij x j ) a ii j= j i Determină cel mai mic număr natural k cu proprietatea: Pentru m =,,..., k execută: Pentru i =,,..., n execută: x i = y i Pentru i =,,..., n execută: y i = (b i n a ij x j ) a ii j= j i altfel: Nu este asigurată convergenţa algoritmului STOP q k q max i n x i y i < ε
Deoarece R (0) = max R (0) i i următoarea aproximaţie a soluţiei va fi: x () = (0 0, 4) t. ş.a.m.d. Efectuând calculele cu două zecimale exacte se obţin rezultatele din tabelul care urmează: Iteraţia x R x R x R 0 0, 0 0, 0 0, 40 0, 4 0, 4, 40, 40 0, 06 0, 6, 40 0 0,, 6, 6 0, 0 0, 94, 6 0, 40 0, 0, 94 0, 94 0, 9 0, 9 0, 94 0, 00, 6 0, 9, 40 0, 4 0, 04 0, 04 0, 4 0, 4 4 0, 94 0, 04, 6 0, 5 0, 98 0, 00 0, 0 0, 5 0, 5 0, 0 5 0, 94 0, 06, 0 0, 00 0, 98 0, 0 0, 06 0, 06 0, 0 0, 0 6, 00 0, 00, 0 0, 0 0, 98 0, 0 0, 00 0, 00 0, 0 0, 0 7, 00 0, 00, 0 0, 0, 00 0, 00 0, 00 0, 0 0, 0 0, 00, 00 0, 00, 00 0, 00, 00 0, 00 Dupa 7 iteraţii s-a obţinut soluţia: x =, x =, x =. 4
Algoritmul Metoda relaxării. - Ecuaţiile sistemului: b i x i + n a ij x j = 0, i n - Eroarea admisibilă ε j= j i - Aproximaţia iniţială a soluţiei: x i, i n - Numărul maxim de iteraţii ITMAX - Ultima aproximaţie calculată: x i, i n - Numărul de iteraţii efectuate m m = Pentru i =,,..., n execută: R i = b i x i + n j= j i a ij x j Cât timp max i n R i ε şi m IT MAX execută: R p = max i n R i x p = x p + R p Pentru q =,,..., n execută: Dacă q p atunci: R q = R q + a qp R p altfel: R q = 0 m = m + Sfârşit Cât timp Dacă m > IT MAX atunci: În ITMAX iteraţii nu este obţinută aproximarea dorită STOP altfel: Aproximarea obţinută este: x i, i n 5
Calculul determinantului si inversei unei matrici Metoda condensarii pivotale pentru calculul determinanţilor Exemplul. Să se calculeze valoarea determinantului: 0 0 d = 0 0 0 0 Soluţie. Permutăm liniile,. Obţinem: 0 0 d = 0 0 0 0 Obţinem succesiv: d = = 0 4 0 0 0 6 4 4 6 5 0 6 5 8 8 9 = 5 8 = 6 6 9 5 9 6 0 7 46 = 8 =
Algoritmul Calculul determinanţilor cu metoda condensării pivotale. - Matricea A = (a ij ) i,j n - Determinantul matricei A: det (A) t = Cât timp n execută: a pq = max i,j n a ij Dacă a pq = 0 atunci: det (A) = 0 STOP altfel: Dacă p atunci: Permută în A liniile şi p t = t Dacă q atunci: Permută în A coloanele şi q t = t Pentru i =, 4,..., n execută: Pentru j =,,..., n execută: a ij = a ij a Pentru i =,,..., n execută: Pentru j =,,..., n execută: b ij = a a i+j+ a i+ a j+ n = n Pentru i =,,..., n execută: Pentru j =,,..., n execută: a ij = b ij Sfârşit Cât timp det (A) = t (a a a a )
Metode pentru inversarea matricelor Exemplul. Pentru matricea: avem: Obţinem: A = B () = (A, I) = B (4) = Inversa matricei A este A = S S C. Rezultă: 0 0 0 0 0 0 0 0 0 B () = 4 0 5 0 0 0 0 5 5 B () = 0 0 5 5 0 0 5 5 0 0 0 0 0 0 5 4 A = 5 4. 0 0 5 5 4 5. = (I, C)
Algoritmul Metoda lui Gauss pentru inversarea matricelor. - Matricea A = (a ij ) i, j n. - Matricea A = (α ij ) i, j n, inversa matricei A Pentru i =,,..., n execută: Pentru j =,,..., n execută: Dacă i j atunci: a in+j = 0 s ij = 0 altfel: a in+j = s ij = Pentru k =,,..., n execută: a pq = max k i,j n a ij Dacă a pq 0 atunci: Dacă p k atunci: Permută în (A, I) liniile p şi k Dacă q k atunci: Permută în (A, I) şi S coloanele q şi k Pentru i =,,..., k, k +,..., n execută: Pentru j = k +, k +,..., n execută: a ij = a ij a ika kj a kk a ik = 0 Pentru j = n, n,..., k execută: a kj = a kj a kk altfel: Matricea A nu este inversabilă STOP 4
Dacă a nn 0 atunci: Pentru i =,,..., n execută: Pentru j = n +, n +,..., n execută: a ij = a ij a ina nj a nn a in = 0 Pentru j = n, n,..., n execută: a nj = a nj a nn altfel: Matricea A nu este inversabilă STOP Pentru i =,,..., n execută: Pentru j =,,..., n execută: α ij = n k= s ik a kn+j 5
Algoritmul Metoda iterativă pentru calculul inversei unei matrice A. - Matricea A = (a ij ) i,j n - A, inversa matricei A a = a Pentru k =,,..., n execută: Pentru i =,,..., k execută: u i = a ik+ v i = a k+i a k+k+ = a k+k+ k k v i a ij u j i= j= Pentru i =,,..., k execută: k a ik+ = a k+k+ a ij u j j= Pentru j =,,..., k execută: k a k+j = a k+k+ v i a ij i= Pentru i =,,..., k execută: Pentru j =,,..., k execută: a ij = a ij + a ik+a k+j a k+k+ 6
Polinom caracteristic. Vectori şi valori proprii. Metoda minorilor diagonali. Fie A = (a ij ) i, j n C n n. unde: Exemplul. Soluţie. p A (λ) = λ n σ λ n + σ λ n σ λ n +... + ( ) n σ n, σ = n M i = n σ = i= i<j n a ii i= M ij =... σ n = M...n = det(a) A = i<j n 0 0 0 0 4 a ii a ij a ji a jj σ = M + M + M + M 4 = + + + = 0 σ = M + M + M 4 + M + M 4 + M 4 = = + 0 + 0 + 0 + 0 + 4 = 6 Se obţine: σ = M + M 4 + M 4 + M 4 = 0 = 0 + 0 0 + σ 4 = M 4 = det (A) = Metoda lui Leverrier. Se calculează A, A,..., A n.. Se calculează s k = tr ( A k), k n. 0 0 4 + p A (λ) = λ 4 0λ + 6λ 0λ +. 0 0 4 = 0
. Coeficienţii polinomului caracteristic: p A (λ) = λ n σ λ n +... + ( ) n σ n se calculează cu formulele lui Newton: σ = s σ k = k [s σ k s σ k +... + ( ) k s k σ + ( ) k+ s k ], k n. () Algoritmul Metoda lui Leverrier. - Matricea A = (a ij ) i,j n - Polinomul caracteristic: p A (λ) = λ n σ λ n +... + ( ) n σ n - Determinantul maticei A B = I Pentru k =,,..., n execută: B = A B s k = n b ii i= σ = s Pentru k =,,..., n execută: σ k = k [k ( ) i+ s i σ k i + ( ) k+ s k ] i= Polinomul caracteristic este: p A (λ) = λ n σ λ n +... + ( ) n σ n Determinantul matricei A este: σ n Exemplul. Pentru A = A = 4 4 8 4 8 s = 5, s = 9, s = 7 σ = s = 5 σ = (s σ s ) = 8 σ = (s σ s σ + s ) = 4 0 0, A = Rezultă: p A (λ) = λ 5λ + 8λ 4. avem: 9 5 0 6 4 0
Metoda lui Fadeev Fie matricea A C n n. Metoda lui Fadeev este descrisă de formulele: A = A, σ = tr (A ), B = σ I A, A k = AB k, σ k = k tr (A k), B k = σ k I A k, k n () Exemplul. Soluţie. Rezultă: A = A, σ = 0, B = A = A = A 4 = A = 6 0 0 8 0 0 6 8 6 9 8 8 0 0 8 0 0 9 7 4 4 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 8 0 0 8 0 0 7 4 7, σ = 6, B =, σ = 0, B =,, σ 4 =, B 4 = O R 4 4. 6 0 0 8 0 0 6 8 6 9 8 0 0 0 0 9 4 4 p A (λ) = λ 4 0λ + 6λ 0λ +, A = B,
Algoritmul Metoda lui Fadeev. - Matricea A = (a ij ) i,j n - Polinomul caracteristic: p A (λ) = λ n σ λ n +... + ( ) n σ n - Determinantul matricei A - Matricea A, inversa matricei A, atunci când A este inversabilă à = A σ = n ã ii i= Pentru i =,,..., n execută: Pentru j =,,..., n execută: Dacă i j atunci: b ij = ã ij altfel: b ij = σ ã ij Pentru k =,,..., n execută: à = A B σ k = n ã ii k i= Pentru i =,,..., n execută: Pentru j =,,..., n execută: Dacă i j atunci: b ij = ã ij altfel: b ij = σ k ã ij à = A B σ n = n ã ii n i= Polinomul caracteristic este: p A (λ) = λ n σ λ n +... + ( ) n σ n Determinantul matricei A este: σ n Dacă σ n 0 atunci: Inversa matricei A este: A = B σ n altfel: Matricea A nu este inversabilă 4
4 Metoda lui Krîlov Algoritmul Metoda lui Krîlov. - Matricea A = (a ij ) i,j n - Polinomul caracteristic: p A (λ) = λ n + c λ n + c λ n +... + c n - Determinantul matricei A Repetă Alege un vector nenul de componente y i0, i n Pentru i =,,..., n execută: Pentru k =,,..., n execută: y ki = n a kj y ji j= Calculează d determinantul matricei Y = (y ij ) i n; 0 j n până când d 0 Rezolvă sistemul de ecuaţii liniare: n i=0 c n i y ki = y kn, k n Polinomul caracteristic este: p A (λ) = λ n + c λ n + c λ n +... + c n Determinantul matricei A este: ( ) n c n Exemplul 4. A = Soluţie. Pentru y (0) = 0 0 rezultă: y () = Ay (0) = y () = A y (0) = Ay () = y () = A y (0) = Ay () = Sistemul are determinantul nul în acest caz. Vom alege un alt vector iniţial y (0). 4 5 5 8 9 9 5
Pentru y (0) = 0 0 rezultă: y () = Sistemul este în acest caz:, y () = 5 6, y () = c + c = 7 5c c = 9 6c + c + c = 0 Acest sistem are soluţia unică: c = 6, c =, c = 6. Deci: p A (λ) = λ 6λ + λ 6. 7 9 0 Ecuaţia p A (λ) = 0 are rădăcinile: λ =, λ =, λ =. Pentru determinarea vectorilor proprii determinăm mai întâi polinoamele: Apoi vectorii proprii sunt: q (λ) = p A (λ) λ λ = λ 5λ + 6 q (λ) = p A (λ) λ λ = λ 4λ + q (λ) = p A (λ) λ λ = λ λ + y () 5y () + 6y (0) = 0, pentru λ = y () 4y () + y (0) =, pentru λ = y () y () + y (0) = 0, pentru λ = 6