cn_lab4

9
Laborator 4 Triangularizare ortogonal˘ a cu reflectori. Factorizarea QR. Problema celor mai mici p˘ atrate 4.1 Triangularizare ortogonal˘ a cu reflectori. Factorizarea QR 4.1.1 Transform˘ ari Householder Definit ¸ia 4.1 Un reflector elementar (sau transformare Householder) de ordin m este o matrice U R m×m , de forma U = I m - 1 β uu T (4.1) unde u R m este un vector nenul ¸ si β = kuk 2 /2. and u i = 0 pentru i =1: k - 1 reflectorul elementar este numit de indice k. Un reflector elementar U k de ordinul m ¸ si indice k are structura: U k = " I k-1 0 0 ¯ U # , unde ¯ U R (m-k+1)×(m-k+1) este un reflector elementar de ordin m - k + 1. Principalele propriet˘ at ¸i ale transform˘ arilor Housseholder sunt date ˆ ın urm˘ atoarea teorem˘ a. Teorema 4.2 a) Dac˘ a U R m×m este un reflector elementar, atunci U este si- metric˘ si ortogonal˘ a. 1

description

Calcul numeric

Transcript of cn_lab4

Page 1: cn_lab4

Laborator 4

Triangularizare ortogonala cureflectori. Factorizarea QR.Problema celor mai mici patrate

4.1 Triangularizare ortogonala cu reflectori.Factorizarea QR

4.1.1 Transformari Householder

Definitia 4.1 Un reflector elementar (sau transformare Householder) de ordin meste o matrice U ∈ Rm×m, de forma

U = Im −1

βuuT (4.1)

unde u ∈ Rm este un vector nenul si

β = ‖u‖2/2.

Cand ui = 0 pentru i = 1 : k − 1 reflectorul elementar este numit de indice k.

Un reflector elementar Uk de ordinul m si indice k are structura:

Uk =

[Ik−1 0

0 U

],

unde U ∈ R(m−k+1)×(m−k+1) este un reflector elementar de ordin m− k + 1.

Principalele proprietati ale transformarilor Housseholder sunt date ın urmatoareateorema.

Teorema 4.2 a) Daca U ∈ Rm×m este un reflector elementar, atunci U este si-metrica si ortogonala.

1

Page 2: cn_lab4

2 LABORATOR 4. CMMP

b) Fie k ∈ 1 : m− 1 si un vector x ∈ Rm astfel ıncat

σ2 =m∑

i=k

x2i 6= 0. (4.2)

Atunci vectorul uk ∈ Rm dat de

uik ≡ (uk)i =

0, i = 1 : k − 1xk + σ, i = kxi, i = k + 1 : n

(4.3)

defineste un reflector elementar de ordin m si indice k

Uk = Im −1

βkuku

Tk , βk = ‖uk‖2/2, (4.4)

astfel ıncat

(Ukx)i =

xi, i = 1 : k − 1−σ, i = k0, i = k + 1 : n

Proprietatea esentiala a reflectorilor elementari este aceea ca ei pot fi utilizatipentru a introduce zerouri ıntr-un vector.

4.1.2 Triangularizarea ortogonala. Factorizarea QR

Rezolvarea problemei CMMP ıntr-o maniera stabila din punct de vedere numericnecesita o procedura pentru reducerea matricelor la forma triunghiulara prin trans-formari ortogonale.

Teorema 4.3 Fie A ∈ Rm×n; atunci exista o matrice ortogonala U ∈ Rm×m astfelıncat

UA = R (4.5)

este superior triunghiulara, unde U este un produs de reflectori Householder

U = UpUp−1 . . . U2U1, (4.6)

cu p = minm− 1, n.

O aplicatie imediata a teoremei de mai sus este calculul asa numitei factorizariQR a matricei A. Definitia si existenta factorizarii QR este data de urmatoarea

Teorema 4.4 Daca A ∈ Rm×n, are coloanele liniar independente, atunci ea poatefi scrisa unic ın forma

A = QR, (4.7)

unde Q ∈ Rm×n are coloanele ortogonale si R ∈ Rn×n este superior triunghiulara cuelementele diagonale pozitive. Factorizarea matriceala (4.7) este numita factorizareQR.

Page 3: cn_lab4

4.1. TRIANGULARIZARE ORTOGONALA.FACTORIZAREA QR 3

4.1.3 Algoritmi

Algoritm 4.5 (Calculul unui reflector) (Date ıntregul k ∈ 1 : m−1si un vector x m-dimensional, algoritmul returneaza σ, βk si uk astfelıncat [(I − (1/βk)uku

Tk )x]i = 0, pentru i = k + 1 : m. Componentele lui

uk suprascriu cele ale lui x.)

1. σ ← sign(xk) ·√∑m

i=k x2i

2. xk ← ukk = xk + σ(2’. xi ← uik = xi, for i = k + 1 : m)3. βk ← σukk

Pentru triangularizarea ortogonala a matricei A ∈ Rm×n putem folosi urmatoa-rea schema:

1. for k = 1 : min (m− 1, n)1. Se determina Uk astfel ıncat (Ukak)i = 0, pentru i = k + 1 : m2. A← UkA

Schema de calcul de mai sus conduce la urmatorul algoritm.

Algoritm 4.6 (TORT – triangularizare ortogonala cu reflectori)(Data o matrice A ∈ Rm×n, algoritmul suprascrie matricea A cu ma-tricea superior triunghiulara R si calculeaza vectorii uk = U(:, k) siscalarii βk = b(k) care definesc reflectorii elementari Uk, k ∈ 1 : p,p = min (m− 1, n), astfel ıncat R = UnUn−1 . . . U2U1A.)

1. p = min (m− 1, n)2. for k = 1 : p

1. σ ← sign(akk) ·√∑m

i=k a2ik

2. daca σ = 0 atunci b(k)← βk = 0altfel1. U(k, k) = akk + σ2. for i = k + 1 : m

1. U(i, k) = aik3. b(k)← βk = σukk4. akk ← rkk = −σ5. for i = k + 1 : m

1. aik = 06. for j = k + 1 : n

1. τ ← (∑mi=k uikaij) /βk

2. for i = k : m1. aij ← aij − τuik

Page 4: cn_lab4

4 LABORATOR 4. CMMP

Algoritmul poate fi apelat cu sintaxa [R,U, b] = TORT (A). De notat faptul caalgoritmul nu calculeaza explicit matricea ortogonala U astfel ıncat UA este superiortriunghiulara, ci numai memoreaza toate elementele necesare pentru a o face.

Pentru factorizarea QR A = QR a unei matrice A fie UA = R triunghiularizareaortogonala de mai sus a lui A. Atunci A = UTR, deci matricea Q poate fi calculatadin:

Q = UT = (Up . . . U2U1)T = U1U2 . . . Up

folosind urmatoarea schema de calcul:

1. Q = Im2. for k = p : −1 : 1

1. Q← UkQ.

Obtinem urmatorul algoritm pentru factorizarea QR.

Algoritm 4.7 (QR - Factorizarea QR) (Data o matrice A ∈ Rm×n,algoritmul calculeaza matricea ortogonala Q ∈ Rm×m si matricea supe-rior triunghiulara R ∈ Rm×n astfel ıncat A = QR.)

1. [R,U, b] = TORT (A)2. p = min (m− 1, n)3. Q = Im4 . for k = p : −1 : 1

1. for j = k : n1. τ ← (

∑mi=k uikqij) /βk

2. for i = k : m1. qij ← qij − τuik

In cazul m > n, pentru a obtine factorizarea QR A = Q′R′, i.e. a matricei Q ∈Rm×n cu coloanele ortogonale si a matriceiR ∈ Rn×n patrata superior triunghiulara,este suficient sa luam Q′ = Q(:, 1 : n) si R′ = R(1 : n, :) unde Q si R sunt date dealgoritmul de mai sus.

4.2 Problema celor mai mici patrate

Consideram sistemul liniar

Ax = b,

unde A ∈ Rm×n, b ∈ Rm.

In general, un sistem supradeterminat (m > n), i.e. cu mai ecuatii decat ne-cunoscute, nu are solutii si o formulare naturala a rezolvarii sistemului este problemagasirii unui vector x ∈ Rn astfel ıncat vectorul y = Ax sa fie cat mai apropiat posibil

Page 5: cn_lab4

4.2. PROBLEMA CELOR MAI MICI PATRATE 5

de vectorul b. Mai precis, dorim sa determinam un vector x ∈ Rn care minimizeazafunctia:

ρ(x) = ν(b−Ax),

unde ν este o norma vectoriala pe Rm. Cand ν este norma euclidiana, problemaminimizarii normei reziduului r = b−Ax se numeste problema celor mai mici patrate(CMMP).

Problema CMMP este ıntalnita ın multe domenii de aplicatii, cum sunt teoriaaproximarii functiilor si datelor, statistica, etc.

Un sistem subdeterminat (m < n) are, generic, o infinitate de solutii. Un criteriunatural de selectie a unei anumite solutii este de a cere ca ea sa fie de ”lungime”minima, i.e. de a minimiza functia:

τ(x) = µ(x)|Ax=b,

unde µ este o norma vectoriala pe Rn. Cand µ este norma euclidiana, solutiasistemului subdeterminat Ax = b de norma euclidiana minima se numeste solutienormala.

4.2.1 Rezolvarea problemei celor mai mici patrate

Fie problema CMMP a minimizarii normei euclidiane a reziduului sistemului liniarsupradeterminat:

minx∈Rn

‖r‖ = minx∈Rn

‖b−Ax‖, (4.8)

unde A ∈ Rm×n, m > n, si b ∈ Rm sunt date.

Conditiile ın care problema CMMP are o solutie si cand aceasta solutie este unicasunt date de urmatoarea teorema.

Teorema 4.8 Fie date A ∈ Rm×n si b ∈ Rm. Problema celor mai mici patrate(4.8) admite ıntotdeauna o solutie. Solutia este unica daca si numai daca ma-tricea A are coloanele liniar independente. In acest caz solutia CMMP a sistemuluisupradeterminat Ax = b poate fi scrisa ın forma:

x∗ = A+b, (4.9)

unde matriceaA+ = (ATA)−1AT (4.10)

este numita pseudo-inversa sau inversa generalizata Moore-Penrose a lui A.

Un mijloc de calcul numeric stabil a solutiei CMMP consta ın triangularizareaortogonala a matricei sistemului (algoritmul TORT din laboratorul precedent). Intr-adevar, fie matricea ortogonala U astfel ıncat UA = R, unde R este o matricesuperior triunghiulara. Atunci matricea R poate fi scrisa ın forma

R =

[R′

0

],

Page 6: cn_lab4

6 LABORATOR 4. CMMP

cu R′ o matrice patrata n × n superior triunghiulara. Matricea R are coloaneleliniar independente ıntrucat A are aceasta proprietate si, deci, R′ este o matriceanesingulara. Transformarile ortogonale conservand norma euclidiana, avem:

‖b−Ax‖ = ‖U(b−Ax)‖ = ‖d−Rx‖, (4.11)

unde d = Ub. Acum, folosind partitia

d =

[d′

d′′

], (4.12)

unde d′ ∈ Rn si d′′ ∈ Rm−n, relatia (4.11) poate fi scrisa:

‖b−Ax‖ =

∥∥∥∥∥

[d′ −R′x

d′′

]∥∥∥∥∥ =√‖d′ −R′x‖2 + ‖d′′‖2,

care este minima cand d′ − R′x = 0. Deci, solutia CMMP a sistemului suprade-terminat Ax = b poate fi calculata ca solutie a sistemului superior triunghiularnesingular:

R′x = d′.

Reziduul minimal r∗ = b − Ax∗ = b2 are semnificatia de proiectie ortogonala avectorului b pe subspatiul liniar T = S⊥ = (ImA)⊥ = KerAT , ın timp ce vectorulb1 = Ax∗ are semnificatia de proiectie a vectorului b pe subspatiul liniar S = ImA.Cele doua proiectii ortogonale ale vectorului b pe ImA si KerAT se calculeaza celmai bine folosind expresiile:

b1 = U1U2 . . . Un

[d′

0

]b2 = U1U2 . . . Un

[0d′′

].

4.2.2 Rezolvarea sistemelor liniare subderdeterminate

Conditiile pentru existenta si unicitatea solutiei normale sunt date de:

Teorema 4.9 Daca matricea A ∈ Rm×n, m < n, are liniile liniar independente,atunci sistemul Ax = b are o solutie normala unica, i.e. un vector unic x∗ ∈ Rn

astfel ıncat:‖x∗‖ = min

Ax=b‖x‖.

Solutia normala poate fi scrisa ın forma:

x∗ = A#b, (4.13)

undeA# = AT (AAT )−1 (4.14)

se numeste pseudo-inversa normala a lui A.

Page 7: cn_lab4

4.2. PROBLEMA CELOR MAI MICI PATRATE 7

Pentru un calcul fiabil al solutiei normale se poate proceda dupa cum urmeaza.

Fie UAT = R, unde U = Um · · ·U2U1 si R =

[R′

0

]cu R′ superior triunghiulara

nesingulara, triangularizarea ortogonala a matricei AT . Atunci sistemul Ax = b

se poate scrie AUTUx = b sau, notand y = Ux si folosind partitia y =

[y′

y′′

],

[R′T 0

] [ y′

y′′

]= R′T y′ = b. Prin urmare, multimea solutiilor sistemului subde-

terminat Ax = b se scrie sub forma

x = UT y = U1U2 . . . Um

[y′

y′′

]

unde y′ este solutia sistemului inferior triunghiular R′T y′ = b iar y′′ ∈ Rn−m estearbitrar. Evident solutia normala se obtine pentru y′′ = 0.

4.2.3 Algoritmi

Algoritmul dat mai jos este un mijloc foarte stabil de rezolvare a problemei CMMPsi, daca este necesar, de calcul al proiectiilor ortogonale ale unui vector dat pe celedoua subspatii liniare complementare definite de o matrice data.

Algoritm 4.10 (CMMP – problema celor mai mici patrate) (Data omatrice A ∈ Rm×n, m > n, cu coloanele liniar independente, si un vectorb ∈ Rn, acest algoritm calculeaza solutia CMMP a sistemului liniarsupradeterminat Ax = b si proiectiile ortogonale b1 si b2 ale vectorului bpe subspatiile liniare ImA si respectiv KerAT .)

{ Triangularizarea ortogonala a lui A }1. [R,U, beta] = TORT (A)

{ Calculul vectorului d care suprascrie b }2. for k = 1 : n

1. τ ← (∑mi=k uikbi) /βk

2. for i = k : m1. bi ← bi − τuik

{ Calculul solutiei CMMP }3. x = UTRIS(R(1 : n, :), b(1 : n))

{ Calculul proiectiilor }4. b1(1 : n)← b(1 : n); b1(n+ 1 : m)← 05. b2(1 : n)← 0; b2(n+ 1 : m)← b(n+ 1 : m)6. for k = n : −1 : 1

1. τ ← (∑mi=k uikb1i) /βk

2. for i = k : m1. b1i ← b1i − τuik

3. τ ← (∑mi=k uikb2i) /βk

Page 8: cn_lab4

8 LABORATOR 4. CMMP

4. for i = k : m1. b2i ← b2i − τuik

Algoritmul prezentat mai jos este cel mai bun algoritm, din punct de vederenumeric, pentru calculul solutiei normale a unui sistem subdeterminat cu matriceasistemului de rang maximal.

Algoritm 4.11 (SN – rezolvarea sistemelor subdeterminate) (Datao matrice A ∈ Rm×n, m < n, cu liniile liniar independente, si un vectorb ∈ Rn, algoritmul calculeaza solutia normala x ∈ Rn sistemului liniarsubdeterminat Ax = b.)

{ Triangularizarea ortogonala a lui AT }1. [R,U, beta] = TORT (AT )

{ Rezolvarea sistemului inferior triunghiular RT y′ = b, cu y′ suprascriind b }2. b = LTRIS(RT , b)

{ Calculul solutiei normale }3. x(1 : m)← b; x(m+ 1 : n)← 04. for k = m : −1 : 1

1. τ ← (∑ni=k uikxi) /βk

2. for i = k : n1. xi ← xi − τuik

4.3 Sarcini de lucru

4.3.1 A. In laborator

1. Se elaboreaza si editeaza programele MATLAB pentru implementarea algorit-milor de triangularizare ortogonala si de factorizare QR. Se testeaza corecti-tudinea algoritmilor si programelor pentru matrice cu elemente aleatoare dedimensiunii 7× 5 si 20× 7.

2. Se elaboreaza si editeaza programele MATLAB pentru implementarea algorit-milor de rezolvare ın sens CMMP a sistemelor supradeterminate si subdeter-minate.

3. Se testeaza corectitudinea algoritmilor si programelor pentru sisteme suprade-terminate de 20 de ecuatii si 6 necunoscute si sisteme subdeterminate cu 6ecuatii si 20 de necunoscute.

4. Se testeaza ortogonalitatea proiectiilor vectorului b si faptul ca suma proiec-tiilor dau vectorul b.

Observatie. Daca obiectivele de mai sus nu se ating ın laborator atunci se con-tinua acasa.

Page 9: cn_lab4

4.3. SARCINI DE LUCRU 9

4.3.2 B. Acasa

1 Se scriu si testeaza programe MATLAB pentru 1:

a) calculul elementelor definitorii ale unui reflector Uk care anuleaza compo-nentele k + 1 : n ale unui vector x ∈ IRn dat;

b) ınmultirea unei matrice A pe stanga cu un reflector Uk: A← UkA;

c) ınmultirea unei matrice A pe dreapta cu un reflector Uk: A← AUk.

2 Se rescriu algoritmii de triangularizare ortogonala si factorizare QR a uneimatrice cu folosirea procedurilor de mai sus.

3 Fie H ∈ Rm×n (m > n) o matrice superior Hessenberg (hij = 0 for i > j + 1).Scrieti algoritmi eficienti si programe pentru:

a. triangularizarea ortogonala a matricei H.

b. factorizarea QR a matricei H.

4 Fie A ∈ IRm×n, m > n, o matrice monica a carei factorizare QR este cunoscuta(A = QR, Q ∈ Rm×m, R ∈ Rm×n). Fie A = [A z], unde z ∈ Rm. Elaboratiun algoritm si un program pentru calculul factorizarii QR a lui A.

5 Consideram dat vectorul x ∈ Rn, de norma unitara. Scrieti un programde calcul al unei matrice cu coloanele ortogonale Y ∈ Rn×(n−1) astfel ıncatxTY = 0 (i.e. matricea [x Y ] sa fie ortogonala).

6 Fie A ∈ Rm×n o matrice de rang maximal. Elaborati un algoritm si unprogram de calcul al pseudo-inversei lui A pentru ambele situatii ce pot apare:m ≥ n sau m ≤ n.

1Aceste proceduri vor fi utile la laboratorul dedicat calculului valorilor proprii.