cn_lab4
-
Upload
andreea-ion -
Category
Documents
-
view
70 -
download
4
description
Transcript of 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
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.
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
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
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
],
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.
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
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.
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.