Metode directe pentru sisteme de ecuaţii liniare

Σχετικά έγγραφα
Metode directe pentru sisteme de ecuaţii liniare

Sisteme liniare - metode directe

Sisteme diferenţiale liniare de ordinul 1

Metode iterative pentru probleme neliniare - contractii

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Esalonul Redus pe Linii (ERL). Subspatii.

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Curs 4 Serii de numere reale

Seminar 5 Analiza stabilității sistemelor liniare

Metode de interpolare bazate pe diferenţe divizate

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

2 Transformări liniare între spaţii finit dimensionale

Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale

Asupra unei inegalităţi date la barajul OBMJ 2006

Curs 1 Şiruri de numere reale

Matrice. Determinanti. Sisteme liniare

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Integrala nedefinită (primitive)

Criptosisteme cu cheie publică III

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

riptografie şi Securitate

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

METODE NUMERICE: Laborator #5 Metode iterative pentru rezolvarea sistemelor: Jacobi, Gauss-Siedel, Suprarelaxare

Cap.2. Sisteme de ecuaţii algebrice liniare - metode directe (II)

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

1. Sisteme de ecuaţii liniare Definiţia 1.1. Fie K un corp comutativ. 1) Prin sistem de m ecuaţii liniare cu n necunoscute X 1,...

1.3 Baza a unui spaţiu vectorial. Dimensiune

MARCAREA REZISTOARELOR

Lucian Maticiuc CURS I II. 1 Matrice şi determinanţi. Sisteme de ecuaţii liniare. 1.1 Matrice şi determinanţi

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

Curs 2 Şiruri de numere reale

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

1.4 Schimbarea bazei unui spaţiu vectorial

Noţiuni introductive

PROBLEME DE VALORI ŞI VECTORI PROPRII

Ecuatii trigonometrice

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Problema celor mai mici pătrate

Subiecte Clasa a VII-a

Seminar Algebra. det(a λi 3 ) = 0

METODE NUMERICE: Laborator #7 Calculul valorilor proprii si vectorilor proprii prin metodele puterii. Metoda Householder

Rezolvarea sistemelor liniare determinate

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

Metode Numerice Curs I Introducere. Ion Necoara

Conice - Câteva proprietǎţi elementare

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

3. Vectori şi valori proprii

I. Noţiuni introductive

5.4. MULTIPLEXOARE A 0 A 1 A 2

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Principiul Inductiei Matematice.

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Examen AG. Student:... Grupa:... ianuarie 2011

, m ecuańii, n necunoscute;

Subiecte Clasa a VIII-a

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

Curs 2 DIODE. CIRCUITE DR

sistemelor de algebrice liniarel

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

III. Reprezentarea informaţiei în sistemele de calcul

Calculul valorilor proprii

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Sisteme de ecuaţii diferenţiale

a) (3p) Sa se calculeze XY A. b) (4p) Sa se calculeze determinantul si rangul matricei A. c) (3p) Sa se calculeze A.

Laborator 6. Integrarea ecuaţiilor diferenţiale

Metode iterative pentru rezolvarea sistemelor de ecuatii liniare

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

Profesor Blaga Mirela-Gabriela DREAPTA

Lectia VII Dreapta si planul

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

Descompunerea valorilor singulare

8 Intervale de încredere

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4

VII.2. PROBLEME REZOLVATE

a. 11 % b. 12 % c. 13 % d. 14 %

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

Nicolae Cotfas ELEMENTE DE EDITURA UNIVERSITĂŢII DIN BUCUREŞTI

CAPITOLUL 4 FUNCŢIONALE LINIARE, BILINIARE ŞI PĂTRATICE

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Lectia III Produsul scalar a doi vectori liberi

z a + c 0 + c 1 (z a)

ELEMENTE DE GEOMETRIA COMPUTAŢIONALĂ A CURBELOR Interpolare cu ajutorul funcţiilor polinomiale

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Transcript:

Metode directe pentru sisteme de ecuaţii liniare Eliminare gaussiană, descompunere LU, Cholesky Radu T. Trîmbiţaş Universitatea Babeş-Bolyai March 27, 206 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 / 59

Rezolvarea sistemelor liniare Rezolvarea sistemelor liniare În notaţie matricială, un sistem se scrie sub forma unde A K n n, b K n. Soluţia x = A b Ax = b În majoritatea problemelor practice inversarea este nenecesară şi nerecomandabilă Exemplu extrem, n = : 7x = 2, cu soluţia x = 2 7 = 3, o operaţie / Rezolvat prin inversare ne dă x = 7 2 = 0.42857 2 = 3.0000002, două operaţii /,* Consideraţii similare se aplică şi la sisteme cu mai multe ecuaţii şi chiar la sisteme cu aceeaşi matrice A şi membri drepţi diferiţi Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 2 / 59

Un exemplu numeric Un exemplu numeric I Considerăm exemplul 0 7 0 3 2 6 5 5 x x 2 x 3 = 0.3E + E 2 E 2, 0.5E + E 3 E 3. Coeficientul 0 al lui x se numeşte pivot, iar cantităţile -0.3 şi 0.5 obţinute prin împărţirea coeficienţilor lui x din celelalte ecuaţii se numesc multiplicatori 0 7 0 0 0. 6 0 2.5 5 x x 2 x 3 = 7 4 6 7 6. 2.5 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 3 / 59

Un exemplu numeric Un exemplu numeric II Pasul 2, eliminarea lui x 2 din a treia ecuaţie. Pivotul, coeficientul lui x 2, -0. este mai mic decât alţi coeficienţi. Din acest motiv ecuaţiile 2 şi 3 trebuie interschimbate, operaţie numită pivotare. În acest caz nu este necesară, dar în general este crucială. 0 7 0 0 2.5 5 0 0. 6 x x 2 x 3 = 7 2.5 6. Pasul 3, 0.04E 2 + E 3 E 3 (Cât ar fi multiplicatorul fără interschimbare?) 0 7 0 0 2.5 5 0 0 6.2 x x 2 x 3 = 7 2.5 6.2 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 4 / 59

Un exemplu numeric Un exemplu numeric III Ultima ecuaţie 6.2x 3 = 6.2 ne dă x 3 =. Înlocuind în a doua ecuaţie 2.5x 2 + 5 = 2.5 = x 2 =. Înlocuind în prima ecuaţie 0x + ( 7)( ) = 7 = x = 0. Soluţia este x = 0 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 5 / 59

Un exemplu numeric Un exemplu numeric IV Verificare 0 7 0 3 2 6 5 5 0 = 7 4 6. Algoritmul poate fi exprimat mai compact în formă matricială, fie 0 0 0 7 0 0 0 L = 0.5 0, U = 0 2.5 5, P = 0 0 0.3 0.04 0 0 6.2 0 0 Matricea L este matricea multiplicatorilor, U este matricea finală, P descrie pivotarea şi LU = PA Matricea originală poate fi exprimată ca produs de matrice cu o structură mai simplă. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 6 / 59

Factorizare LU Factorizare LU Algoritmul folosit aproape universal pentru rezolvarea sistemelor liniare este eliminarea gaussiană. Cercetările din perioada 955-965 au evidenţiat aspecte ale EG netratate până atunci: alegerea pivoţilor şi interpretarea corectă a efectului erorilor de rotunjire EG are două stadii, triunghiularizarea matricei iniţiale şi substituţia inversă Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 7 / 59

Matrice de permutare şi triunghiulare Matrice de permutare şi triunghiulare I O matrice de permutare se obţine din matricea identică prin permutări de linii sau coloane. O astfel de matrice are exact un pe fiecare linie şi coloană şi în rest 0. P = 0 0 0 0 0 0 0 0 0 0 0 0 Efect: PA permutare de linii, AP permutare de coloane MATLAB utilizează şi vectori de permutare ca indici de linie sau coloane; fie p = [ 4 3 2 ], P*A şi A(p,:) sunt echivalente, la fel A*P şi A(:,p). Notaţia vectorială este mai rapidă şi utilizează mai puţină memorie. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 8 / 59

Matrice de permutare şi triunghiulare Matrice de permutare şi triunghiulare II Soluţia sistemului Px = b, P matrice de permutare, este x = P T b, adică o rearanjare a compunentelor lui b. O matrice triunghiulară superior are toate elementele nenule deasupra diagonalei principale sau pe ea, adică a ij = 0 dacă i > j. Analog se definesc şi matricele triunghiulare inferior. La rezolvarea sistemelor liniare sunt importante şi matricele triunghiulare inferior care au toate elementele de pe diagonala principală egale cu unit lower triangular matrices. Sistemele liniare cu matricea triunghiulară sunt uşor de rezolvat în timp Θ(m 2 ). Măsura complexităţii -Numărul de operaţii în virgulă flotantă. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 9 / 59

Matrice de permutare şi triunghiulare Algoritm pentru sistem triunghiular superior function x = backsubst(u,b) %BACKSUBST - backward substitution %U - upper triangular matrix %b - right hand side vector n=length(b); x=zeros(size(b)); for k=n:-: x(k)=(b(k)-u(k,k+:n)*x(k+:n))/u(k,k); end Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 0 / 59

Matrice de permutare şi triunghiulare Algoritm pentru sistem triunghiular inferior function x=forwardsubst(l,b) %FORWARDSUBST - forward substitution %L - lower triangular matrix %b - right hand side vector x=zeros(size(b)); n=length(b); for k=:n x(k)=(b(k)-l(k,:k-)*x(:k-))/l(k,k); end Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 / 59

Descompunerea LU Descompunerea LU Transformă A C m m într-o matrice triunghiulară superior, U scăzând multiplii de linii Fiecare L i introduce zerouri sub diagonală în coloana i: L m... L 2 L }{{} A = U = A = LU unde L = L L 2... Lm L A L 0 0 0 L A Triunghiularizare triunghiulară L 2 0 0 L 2 L A L 3 0 L 3 L 2 L A Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 2 / 59

Matricele L k Matricele L k La pasul k se elimină elementele de sub A kk : x k = [ x x kk x k+,k x mk ] T L k x k = [ x x kk 0 0 ] T Multiplicatorii l jk = x jk /x kk apar in L k : L k =... l k+,k.... l mk Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 3 / 59

Construcţia lui L Construcţia lui L Matricea L conţine toţi multiplicatorii într-o singură matrice (cu semne +) L = L L 2... L m = l 2 l 3 l 32........ l m l m2 l m,m Definim l k = [0,..., 0, l k+,k,..., l m,k ] T. Atunci L k = I l k e k. Avem L k = I + l k ek, deoarece e k l k = 0 şi (I l k ek ) (I + l kek ) = I l kek l kek = I De asemenea, L k L k+ = I + l kek + l k+ek+, deoarece e k l k+ = 0 şi (I + l k ek ) ( I + l k+ ek+) = I + lk ek + l k+ek+ + l kek l k+ek+ Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 4 / 59

Eliminare gaussiană fără pivotare Eliminare gaussiană fără pivotare Se factorizează A C m m în A = LU Eliminare gaussiană fără pivot U := A; L = I ; for k := to m do for j := k + to m do l jk := u jk /u kk ; u j,k:m := u j,k:m l jk u k,k:m ; Ciclul interior poate fi scris utilizând operaţii matriciale în loc de cicluri for Număr de operaţii (complexitatea) m k= 2(m k)(m k) 2 m k= k 2 2 3 m3 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 5 / 59

Eliminare gaussiană cu produs exterior Eliminare gaussiană cu produs exterior Ciclul interior poate fi scris cu operaţii matriciale în loc de for Eliminare gaussiană cu produs exterior for k := to m do rows := k + : m; A rows,k := A rows,k /A k,k ; A rows,rows := A rows,rows A rows,k A k,rows ; A k+:m,k+:m A k+:m,k A k,k+:m se numeşte complement Schur al lui A în raport cu a k,k. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 6 / 59

Stabilitatea EG Necesitatea pivotării I EG aşa cum a fost prezentată este instabilă. Pentru anumite matrice EG poate eşua, datorită tentativei de împărţire la zero [ ] 0 A = Matricea este nesingulară şi bine condiţionată; conda = 3+ 5 2 2.68 Fenomenul este mai general; este evidenţiat de o uşoară perturbaţie a lui A [ ] 0 20 A = Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 7 / 59

Stabilitatea EG Necesitatea pivotării II Acum procesul nu eşuează; se obţine (în aritmetica exactă) [ ] [ ] 0 0 20 L = 0 20, U = 0 0 20 În aritmetica în virgulă flotantă, dublă precizie, 0 20 nu este reprezentabil exact, el se va rotunji la 0 20 Factorii calculaţi ai descompunerii vor fi [ ] [ ] 0 0 20 L = 0 20, Ũ = 0 0 20 Produsul LŨ nu este apropiat de A [ ] [ 0 0 20 LŨ = 0 20 0 0 20 ] = [ 0 20 0 ] Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 8 / 59

Stabilitatea EG Necesitatea pivotării III Rezolvând sistemul se obţine x = [ 0 LŨx = [ 0 ], dar soluţia corectă este x = ] [ Explicaţie: EG nu este nici regresiv stabilă, nici stabilă (ca algoritm de factorizare). Mai mult, matricele triunghiulare obţinute pot fi foarte prost condiţionate, introducându-se astfel o sursă suplimentară de instabilitate. Observaţie: Dacă un pas al unui algoritm nu este regresiv stabil, algoritmul întreg poate fi instabil. ] Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 9 / 59

Pivotare Pivotare La pasul k, am utilizat elementul k, k al matricei ca pivot şi am introdus zerouri în coloana k a liniilor rămase x kk x kk 0 0 0 Dar, orice alt element i k din coloana k poate fi utilizat ca pivot: 0 0 x ik x ik 0 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 20 / 59

Pivotare Pivotare Pivotare De asemenea, se poate utiliza orice altă coloană j k: 0 0 x ij x ij 0 Alegând diferiţi pivoţi ne asigurăm că putem evita pivoţii nuli sau foarte mici În loc să utilizăm pivoţi în poziţii diferite, putem interschimba linii sau coloane şi să utilizăm algoritmul standard (pivotare) O implementare concretă poate face pivotarea indirect, fără a muta fizic datele Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 2 / 59

Pivotare Pivotare parţială Pivotare parţială Alegerea pivoţilor dintre toţi candidaţii valizi este costisitoare(pivotare completă) Considerăm doar pivoţii din coloana k şi interschimbăm liniile(pivotare parţială) x ik Selecţie pivot Cu operaţii matriceale: P x ik Interschimbare linii L L m P m... L 2 P 2 L P A = U x ik 0 0 0 Eliminare Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 22 / 59

Factorizarea PA = LU Factorizarea PA = LU Pentru a combina toţi L k şi toţi P k în forma dorită de noi, rescriem factorizarea precedentă sub forma L m P m... L 2 P 2 L P A = U ( L m L 2L ) (Pm P 2 P ) A = U unde L k = P m P k+ L k P k+ P m Aceasta ne dă factorizare (descompunerea) LU a lui A PA = LU Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 23 / 59

Eliminarea gaussiană cu pivotare parţială Eliminarea gaussiană cu pivotare parţială Factorizează A C m m în PA = LU Eliminare gaussiană cu pivotare parţială U := A; L := I ; P := I ; for k := to m do Alege i k care maximizeaza u ik ; u k,k:m u i,k:m ; {interschimbare} l k,:k l i,:k ; P k,: P i,: ; for j := k + to m do l jk := u jk /u kk ; u j,k:m := u j,k:m l jk u k,k:m ; Algoritmul devine mai eficient dacă se fac toate calculele în situ (în matricea A). Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 24 / 59

Eliminarea gaussiană cu pivotare parţială Cod MATLAB pentru descompunerea LUP function [L,U,P]=lup(A) %LUP - LUP decomposition of A %permute effectively lines [m,n]=size(a); P=zeros(m,n); piv=(:m) ; for i=:m- %pivoting [pm,kp]=max(abs(a(i:m,i))); kp=kp+i-; %line interchange if i~=kp A([i,kp],:)=A([kp,i],:); piv([i,kp])=piv([kp,i]); end %Schur complement lin=i+:m; A(lin,i)=A(lin,i)/A(i,i); A(lin,lin)=A(lin,lin)-... A(lin,i)*A(i,lin); end; for i=:m P(i,piv(i))=; end; U=triu(A); L=tril(A,-)+eye(m); adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 25 / 59

Eliminarea gaussiană cu pivotare parţială Exemplu Exemplu Rezolvaţi sistemul prin descompunere LUP. Soluţie: Avem 2 2 4 2 x = 3 4 8 3 2 4 2 3 2 4 2 2 2 2 2 2 2 2 3 2 4 2 2 3 2 4 2 3 2 4 2 3 2 4 2 2 2 2 2 2 2 2 0 2 0 2. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 26 / 59

Eliminarea gaussiană cu pivotare parţială Exemplu Exemplu (continuare) Deci L = 0 0 2 0 2, U = 2 4 2 0 0 0 Sistemele triunghiulare corespunzătoare sunt 0 0 y = Pb = cu soluţia y = [8, 0, ] T 2 0 2, P = 8 4 3, 0 0 0 0 0 0. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 27 / 59

Eliminarea gaussiană cu pivotare parţială Exemplu Exemplu (continuare) şi 2 4 2 0 0 0 x = 8 0, cu soluţia x = [,, ] T. Verificare PA = LU = 0 0 0 0 0 0 0 0 2 0 2 2 2 4 2 = 2 4 2 0 0 0 2 4 2 2 = 2 4 2 2. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 28 / 59

Pivotare totală Pivotare totală Dacă se selectează pivoţi din coloane diferite, sunt necesare matrice de permutare la stânga Q k : Punem L m P m L 2 P 2 L P AQ Q 2 Q m = U (L m L 2L )(P m P 2 P )A(Q Q 2 Q m ) = U L = (L m L 2L ) P = P m P 2 P Q = Q Q 2 Q m pentru a obţine PAQ = LU Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 29 / 59

Pivotare totală Liu Hui c. 220 c. 280 Matematician chinez, a discutat eliminarea,,gaussiană în comentariile sale asupra lucrării,,cele nouă capitole ale artei matematice 263 AD Carl Friedrich Gauss 777-855 Matematică, astronomie, geodezie, magnetism 809 GE (Ca adolescent în Braunschweig a descoperit teorema binomială, reciprocitatea pătratică, media aritmetico-geometrică... ) 807-855: Universitatea din Göttingen adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 30 / 59

Stabilitatea LU Stabilitatea LU fără pivotare Stabilitatea LU fără pivotare Pentru A = LU calculată fără pivotare: LŨ = A + δa, δa L U = O(eps) Eroare se referă la LŨ, nu la L sau Ũ Notă: la numitor apare L U, nu A L şi U pot fi arbitrar de mari, de exemplu [ ] [ ] [ 0 20 0 0 20 A = = 0 20 0 0 20 Deci, algoritmul este nestabil ] Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 3 / 59

Stabilitatea LU Stabilitatea LU cu pivotare Stabilitatea LU cu pivotare Daca se face pivotare, toate elementele lui L sunt în modul, deci L = O() Pentru a măsura creşterea lui U, se introduce factorul de creştere care implică U = O(ρ A ) ρ = max ij u ij max ij a ij Pentru descompunerea PA = LU calculată cu pivotare: LŨ = PA + δa, δa A = O(ρeps) Dacă ρ = O(), atunci algoritmul este regresiv stabil Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 32 / 59

Stabilitatea LU Factorul de creştere Factorul de creştere I Considerăm matricea = 2 4 8 6 Nu apare nici o pivotare, deci aceasta este o factorizare PA = LU Factorul de creştere ρ = 6 = 2 m (se poate arăta că acesta este cazul cel mai nefavorabil) Deci, ρ = 2 m = O(), uniform, pentru toate matricele de dimensiune m Regresiv stabil conform definiţiei, dar rezultatul poate fi inutil Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 33 / 59

Stabilitatea LU Factorul de creştere Factorul de creştere II Totuşi, nu se ştie exact de ce, factorii de creştere sunt mici în practică Conjectură: factorii de creştere de ordin mai mare ca /2 sunt rari în practică adică, pentru orice α > /2 şi M > 0, probabilitatea evenimentului ρ > m α este mai mică decât m M, pentru m suficient de mare. α > 2 M > 0 m 0, m > m 0 P(ρ > m α ) < m M. Problemă deschisă: conjectura este adevărată sau falsă? Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 34 / 59

Descompunerea Cholesky Matrice SPD Matrice SPD Reamintim: A R m m este simetrică dacă a ij = a ji, sau A = A T A C m m este hermitiană dacă a ij = a ji, sau A = A O matrice hermitiană A este hermitian pozitiv definită dacă x Ax > 0 pentru x = 0 x Ax este întotdeauna real deoarece x Ay = y Ax Simetric pozitiv definită, sau SPD, pentru matrice reale dacă A este m m PD şi X are rang maxim, atunci X AX este PD Deoarece (X AX ) = X AX, şi dacă x = 0 atunci Xx = 0 şi x (X AX )x = (Xx) A(Xx) > 0 Orice submatrice principală a lui A este PD, şi orice element diagonal a ii > 0 matricele PD au valori proprii reale pozitive şi vectori proprii ortonormali Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 35 / 59

Descompunerea Cholesky Factorizarea Cholesky Factorizarea Cholesky Se elimina sub pivot şi la dreapta pivotului (datorită simetriei): [ a w A = ] [ ] [ α 0 α w = ] /α w K w/α I 0 K ww /a [ ] [ ] [ α 0 0 α w = ] /α w/α I 0 K ww = R A /a 0 I R unde α = a K ww /a este o submatrice principală a matricei PD R AR deci elementul ei din stânga sus este pozitiv, Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 36 / 59

Descompunerea Cholesky Factorizarea Cholesky Factorizarea Cholesky Se aplică recursiv şi se obţine A = (R R 2... R m)(r m... R 2 R ) = R R, r ii > 0 Existenţa şi unicitatea: orice matrice HPD are o factorizare Cholesky unică Algoritmul recursiv de pe folia precedentă nu eşuează niciodată Rezultă şi unicitatea, deoarece α = a este determinat unic (dat) la fiecare pas şi la fel, întreaga linie w/α Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 37 / 59

Descompunerea Cholesky Algoritmul de factorizare Cholesky Algoritmul de factorizare Cholesky Factorizează matricea HPD A C m m în A = R R: Factorizare Cholesky R := A; for k := to m do for j := k + to m do R j,j:m := R j,j:m R k,j:m R k,j /R k,k R k,k:m := R k,k:m / R k,k Complexitatea (număr de operaţii) m m k= j=k+ 2(m j) 2 m k k= j= j m k 2 m3 3 k= Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 38 / 59

Descompunerea Cholesky Exemplu Exemplu Să se rezolve sistemul 2 2 5 3 3 3 folosind descompunerea Cholesky. x = Soluţie: Calculând radicalii pivoţilor şi complementele Schur se obţine 2 2 2 B = 5 3 3 2. 4 0 7 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 39 / 59

Descompunerea Cholesky Exemplu Exemplu Sistemele corespunzătoare sunt: 2 y = cu soluţia y = [ 4 2 ] T şi 2 cu soluţia x = [ ] T. x = 4 0 7 4 2, Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 40 / 59

Descompunerea Cholesky Stabilitateatea Stabilitatea Factorul Cholesky calculat R satisface R R = A + δa, δa A = O(eps) algoritmul este regresiv stabil Dar, eroarea în R poate fi mare, R R / R = O(κ(A)eps) Rezolvare Ax = b pentru HPD A şi cu două substituţii Numărul de operaţii Cholesky m 3 /3 Algoritm regresiv stabil: (A + A) x = b, A A = O(eps) Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 4 / 59

Descompunerea Cholesky Stabilitateatea John von Neumann (903-957) André Louis Cholesky (875-98) adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 42 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) 3 Dacă A este simetrică sau hermitiană Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) 3 Dacă A este simetrică sau hermitiană Se verifică dacă toate elementele diagonale sunt pozitive Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) 3 Dacă A este simetrică sau hermitiană Se verifică dacă toate elementele diagonale sunt pozitive Se încearca cu Cholesky; daca se termina cu succes se rezolvă prin substituţie Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) 3 Dacă A este simetrică sau hermitiană Se verifică dacă toate elementele diagonale sunt pozitive Se încearca cu Cholesky; daca se termina cu succes se rezolvă prin substituţie 4 Dacă A este Hessenberg, se reduce la o matrice triunghiulară superior şi apoi se rezolvă prin substituţie inversă Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) 3 Dacă A este simetrică sau hermitiană Se verifică dacă toate elementele diagonale sunt pozitive Se încearca cu Cholesky; daca se termina cu succes se rezolvă prin substituţie 4 Dacă A este Hessenberg, se reduce la o matrice triunghiulară superior şi apoi se rezolvă prin substituţie inversă 5 Dacă A este pătratică, se factorizează PA = LU şi se rezolvă prin substituţie inversă Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Backslash în MATLAB Backslash în MATLAB x=a\b pentru A densă realizează următorii paşi Dacă A este triunghiulară superior sau inferior se rezolvă prin substituţie inversă sau directă 2 Dacă A este o permutare a unei matrice triunghiulare, se rezolvă prin substituţie (utilă pentru [L,U]=lu(A) căci L este permutată) 3 Dacă A este simetrică sau hermitiană Se verifică dacă toate elementele diagonale sunt pozitive Se încearca cu Cholesky; daca se termina cu succes se rezolvă prin substituţie 4 Dacă A este Hessenberg, se reduce la o matrice triunghiulară superior şi apoi se rezolvă prin substituţie inversă 5 Dacă A este pătratică, se factorizează PA = LU şi se rezolvă prin substituţie inversă 6 Dacă A nu este pătratică, se face factorizare QR cu metoda Householder, şi se rezolvă problema de aproximare în sensul celor mai mici pătrate adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 43 / 59

Descompunere QR Descompunere QR Fie A C m n. Se numeşte descompunere QR a lui A perechea de matrice (Q, R) unde Q C m n este unitară, R C n n este triunghiulară superior şi A = QR. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 44 / 59

Descompunere QR Metoda lui Householder Triunghiularizare Householder Metoda lui Householder înmulţeşte cu matrice unitare pentru a transform matricea într-una triunghiulară; de exemplu la primul pas: r 0 Q A = 0...... 0 La sfârşit, am obţinut un produs de matrice ortogonale Triunghiularizare ortogonală Q n... Q 2 Q }{{} A = R Q Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 45 / 59

Introducerea de zerouri Introducerea de zerouri Q k introduce zerouri sub diagonală în coloana k Păstrează zerourile introduse anterior 0 Q 0 Q 2 0 0 0 0 0 A Q A Q 2 Q A Q3 0 0 Q 3 Q 2 Q A Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 46 / 59

Reflectori Householder Reflectori Householder Fie Q k de forma Q k = [ I 0 0 F unde I este (k ) (k ) şi F este (m k + ) (m k + ) Creăm reflectorul Householder F care introduce zerouri: x 0 x =. Fx = ]. 0 = x e Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 47 / 59

Reflectori Householder-Ideea Reflectori Householder-Ideea Ideea: reflectăm în raport cu hiperplanul H, ortogonal pe v = x 2 e x, aplicând matricea unitară F = I 2 vv v v A se compara cu proiectorul P v = I vv v v adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 48 / 59

Reflectori Householder-Ideea Determinarea reflectorului reflexie Householder: P = I 2uu T, u 2 = ; P simetrică şi ortogonală, deoarece P = P T şi ( ) ( ) PP T = I 2uu T I 2uu T = I 4uu T + 4uu T uu T = I Dorim Px = [c, 0,..., 0] T = ce (anulăm toate componentele lui x exceptând prima) Px = x 2u(u T x) = ce = u = 2u T x (x ce ) x 2 = Px 2 = c obţinem u paralel cu ũ = x ± x 2 e, deci u = ũ/ ũ 2. Orice alegere de semn corespunde; vom alege ũ = [x + sign(x ) x 2, x 2,..., x n ] T, u = ũ/ ũ 2. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 49 / 59

Alegerea reflectorului Alegerea reflectorului Putem aplica reflexia oricărui multiplu z al lui x e cu z = Proprietăţi numerice mai bune pentru v mare, de exemplu v = sign(x ) x e + x Notă: sign(0) =, dar în MATLAB, sign(0)==0 adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 50 / 59

Algoritmul lui Householder Algoritmul lui Householder Calculează factorul R al descompunerii QR a matricei m n A (m n) Lasă rezultatul în A, memorând vectorii de reflexie v k pentru utilizare ulterioară Factorizare QR prin metoda Householder for k := to n do x := A k:m,k ; v k := sign(x ) x 2 e + x; v k := v k / v k 2 ; A k:m,k:n = A k:m,k:n 2v k (v k A k:m,k:n) Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 5 / 59

Aplicarea sau obţinerea lui Q Aplicarea sau obţinerea lui Q Calculăm Q b = Q n... Q 2 Q b şi Qx = Q Q 2... Q n x implicit Pentru a crea Q explicit, aplicăm pentru x = I Calculul implicit al lui Q b for k := to n do b k:m = b k:m 2v k (v k b k:m); Calculul implicit al lui Qx for k := n downto do x k:m = x k:m 2v k (v k x k:m); Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 52 / 59

Complexitatea QR-Householder Complexitatea QR-Householder Cea mai mare parte a efortului Operaţii pe iteraţie: A k:m,k:n = A k:m,k:n 2v k (v k A k:m,k:n) 2(m k)(n k) pentru produsele scalare v k A k:m,k:n (m k)(n k) pentru produsul exterior 2v k ( ) (m k)(n k) pentru scăderea A k:m,k:n 4(m k)(n k) total Incluzând ciclul exterior, totalul devine n k= 4(m k)(n k) = 4 n k= ( mn k (m + n) + k 2 ) 4mn 2 4(m + n)n 2 /2 + 4n 3 /3 = 2mn 2 2n 3 /3 Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 53 / 59

Complexitatea QR-Householder Figure: Alston S. Householder (904-993), matematician american. Contribuţii importante: biologie matematică, algebră liniară numerică. Cartea sa The Theory of Matrices in Numerical Analysis a avut un mare impact asupra dezvoltării analizei numerice şi a informaticii. Figure: James Wallace Givens (90-993) Pionier al algebrei liniare numerice şi informaticii adu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 54 / 59

Complexitatea QR-Householder Exemplu Calculaţi descompunerea QR a matricei [ 3 A = 4 Soluţie. Reflexia pentru prima coloană este P = I 2uu T. Vectorul u se determină astfel: [ ] [ ] [ ] x + sign(x ũ = ) x 2 3 + 5 8 = =. 4 4 x 2 ũ = 8 2 + 4 2 = 4 5 ] u = ũ ũ =. [ 2 5 5 5 5 ]. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 55 / 59

Complexitatea QR-Householder Matricea de reflexie este [ 0 P = 0 [ 3 = 5 4 5 4 3 5 5 ] [ 2 5 2 5 5 5 ] = Q T. ] [ 2 5 5 5 5 ] T Se obţine: [ 3 Q = 5 4 ] 5 4 3 5 5 [ R = Q T 3 A = 5 4 5 4 3 5 5 ] [ 3 4 ] = [ 5 7 5 0 5 ]. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 56 / 59

Complexitatea QR-Householder Rotaţii Givens Rotaţii Givens I O rotaţie Givens [ cos θ sin θ R(θ) = sin θ cos θ ] roteşte un vector x R 2 în sens trigonometric cu unghiul θ Rotaţia Givens cu unghiul θ în coordonatele i şi j se obţine cu ajutorul matricei de mai sus, punând elementele ei în liniile şi coloanele i şi j şi în rest elementele matricei unitate. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 57 / 59

Complexitatea QR-Householder Rotaţii Givens Rotaţii Givens II R(i, j, θ) := i j... i cos θ sin θ... j sin θ cos θ... Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 58 / 59

Complexitatea QR-Householder Rotaţii Givens Rotaţii Givens III Dându-se x, i şi j putem anula x j alegând cos θ şi sin θ astfel încât [ ] [ ] cos θ sin θ xi = sin θ cos θ x j [ ] xi 2 + xj 2, 0 adică cos θ = x i x 2 i + x 2 j, sin θ = x j x 2 i + x 2 j. Algoritmul QR bazat pe rotaţii Givens este analog algoritmului bazat pe reflexii Householder, dar când anulăm coloana i se anulează un element la un moment dat. Radu T. Trîmbiţaş (Universitatea Babeş-Bolyai Metode ) directe pentru sisteme de ecuaţii liniare March 27, 206 59 / 59