12.01.2015 Views

5. Linearni problem najmanjših kvadratov

5. Linearni problem najmanjših kvadratov

5. Linearni problem najmanjših kvadratov

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.10 Posebni sistemi<br />

4.10.1 Kompleksni sistem<br />

Rešujemo Ax = b, kjer A ∈ C n×n , x, b ∈ C n .<br />

• Če računamo v kompleksni aritmetiki, potem lahko uporabimo kar algoritem z LU<br />

razcepom z delnim pivotiranjem.<br />

• Sistem lahko prevedemo na dvakrat večji realni sistem<br />

[ ] [ ]<br />

A1 −A 2 x1<br />

A 2 A 1 x 2<br />

=<br />

[<br />

b1<br />

]<br />

,<br />

b 2<br />

kjer je A = A 1 + iA 2 , x = x 1 + ix 2 in b = b 1 + ib 2 .<br />

Če primerjamo število realnih operacij, je prvi način za polovico cenejši.<br />

Bor Plestenjak - Numerična analiza 2004


4.10.2 Simetrične pozitivno definitne matrike<br />

A ∈ R n×n je simetrična pozitivno definitna (s.p.d.), če je A = A T in x T Ax > 0 za vsak<br />

x ≠ 0.<br />

Izrek 1.<br />

Velja:<br />

1) Naj bo det Y ≠ 0. Potem je A s.p.d. ⇐⇒ Y T AY s.p.d.<br />

2) A s.p.d. in H = A(1 : k, 1 : k) poljubna vodilna podmatrika, k ≤ n, =⇒ H s.p.d.<br />

3) A s.p.d. in H = A([i 1 i 2 · · · i k ], [i 1 i 2 · · · i k ]) poljubna podmatrika, simetrična<br />

glede na diagonalo =⇒ H s.p.d.<br />

4) A s.p.d. ⇐⇒ A = A T in vse lastne vrednosti A so pozitivne.<br />

5) A s.p.d. =⇒ a ii > 0 za ∀i in max i,j |a ij | = max i |a ii |.<br />

6) A s.p.d. =⇒ LU razcep brez pivotiranja se izvede in u ii > 0 za ∀i.<br />

7) A s.p.d. ⇐⇒ obstaja taka nesingularna spodnja trikotna matrika V s pozitivnimi<br />

elementi na diagonali, da je A = V V T .<br />

Razcep A = V V T imenujemo razcep Choleskega, V pa faktor Choleskega.<br />

Bor Plestenjak - Numerična analiza 2004


Razcep Choleskega<br />

Če iz A = V V T zapišemo enačbo za a jk , j ≥ k, dobimo<br />

a jk =<br />

k∑<br />

v ji v ki =<br />

i=1<br />

∑k−1<br />

i−1<br />

v ji v ki + v jk v kk ,<br />

odtod pa algoritem za razcep Choleskega:<br />

k = 1, . . . , n<br />

(<br />

v kk = a kk − ∑ ) 1/2<br />

k−1<br />

i=1 v2 ki<br />

j = k + 1, .(. . , n<br />

v jk = 1<br />

v<br />

a jk − ∑ )<br />

k−1<br />

kk<br />

i=1 v jiv ki<br />

Število operacij je<br />

n∑<br />

(2k + 2(n − k)k) = 1 3 n3 + O(n 2 ).<br />

k=1<br />

Poleg polovice manj operacij porabimo tudi polovico manj prostora kot pri LU razcepu.<br />

Bor Plestenjak - Numerična analiza 2004


Zgled za razcep Choleskega<br />

k = 1, . . . , n<br />

(<br />

v kk = a kk − ∑ ) 1/2<br />

k−1<br />

i=1 v2 ki<br />

j = k + 1, .(. . , n<br />

v jk = 1<br />

v<br />

a jk − ∑ )<br />

k−1<br />

kk<br />

i=1 v jiv ki<br />

⎡<br />

⎤<br />

4 −2 4 −2 4<br />

−2 10 1 −5 −5<br />

Faktor Choleskega za A =<br />

⎢ 4 1 9 −2 1<br />

⎥<br />

⎣ −2 −5 −2 22 7 ⎦ je<br />

4 −5 1 7 14<br />

Bor Plestenjak - Numerična analiza 2004<br />

V =<br />

⎡<br />

2<br />

−1 3<br />

⎢ 2 1 2<br />

⎣ −1 −2 1 4<br />

2 −1 −1 2 2<br />

⎤<br />

⎥<br />

⎦ .


Če A ni s.p.d., se v algoritmu pod korenom pojavi nepozitivna vrednost. Računanje razcepa<br />

Choleskega je najcenejša metoda za ugotavljanje pozitivne definitnosti simetrične matrike.<br />

Reševanje s.p.d. sistema Ax = b:<br />

1) A = V V T ,<br />

2) V y = b,<br />

3) V T x = y.<br />

Iz analize napak sledi, da izračunana rešitev ˜x zadošča (A + δA)˜x = b, kjer je<br />

‖δA‖ ∞ ≤ 3n 2 ɛ‖A‖ ∞ .<br />

To pomeni, da je reševanje preko razcepa Choleskega numerično stabilno.<br />

Bor Plestenjak - Numerična analiza 2004


4.10.3 Simetrične nedefinitne matrike<br />

Pri simetrični matriki ne želimo uporabljati LU razcepa, saj ne ohranja simetrije.<br />

nesingularno A obstaja razcep<br />

P AP T = LDL T ,<br />

kjer je L spodnja trikotna matrika z enicami na diagonali, D pa bločno diagonalna matrika<br />

z bloki 1 × 1 ali 2 × 2. Število operacij za razcep je<br />

n 3<br />

3 + O(n2 ).<br />

Za<br />

Zgled za to, da potrebujemo 2 × 2 bloke v D je npr. A =<br />

[ ] 0 1<br />

.<br />

1 0<br />

Bor Plestenjak - Numerična analiza 2004


4.10.4 Tridiagonalne matrike<br />

LU razcep brez pivotiranja tridiagonalne matrike<br />

A =<br />

⎡<br />

⎢<br />

⎣<br />

a 1 b 1<br />

c 2 a 2<br />

. . .<br />

b 2<br />

. . . . . .<br />

⎤<br />

⎥<br />

c n−1 a n−1 b n−1<br />

⎦<br />

c n a n<br />

je<br />

L =<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

l 2 1<br />

. . . . . .<br />

l n 1<br />

⎤<br />

⎡<br />

⎥<br />

⎦ in U = ⎢<br />

⎣<br />

u 1 b 1<br />

. . . . . .<br />

u n−1<br />

b n−1<br />

u n<br />

⎤<br />

⎥<br />

⎦ .<br />

Za razcep in nadaljnje reševanje sistema Ax = b potrebujemo O(n) operacij in O(n)<br />

prostora, saj shranimo le neničelne diagonale matrik A, L in U.<br />

Bor Plestenjak - Numerična analiza 2004


Tridiagonalne matrike in delno pivotiranje<br />

Pri delnem pivotiranju dobimo<br />

U =<br />

⎡<br />

⎢<br />

⎣<br />

u 1 v 1 w 1<br />

. . . . . . . . .<br />

u n−2 v n−2 w n−2<br />

u n−1 v n−1<br />

u n<br />

⎤<br />

⎥<br />

⎦ ,<br />

pivotna rast pa je omejena z 2. To pomeni, da je reševanje tridiagonalnega sistema preko<br />

LU razcepa z delnim pivotiranjem obratno stabilno.<br />

Podobno velja za pasovne matrike, ki imajo poleg glavne še p diagonal nad in q diagonal<br />

pod glavno diagonalo.<br />

Bor Plestenjak - Numerična analiza 2004


4.10.5 Razpršene matrike<br />

Matrika je razpršena, če je večina njenih elementov enakih 0, ostali pa nimajo kakšne<br />

posebne strukture. Pri taki matriki shranimo le indekse in vrednosti neničelnih elementov.<br />

Pri LU razcepu razpršene matrike oz. razcepu Choleskega za s.p.d. razpršeno matriko so<br />

lahko faktorji L, U oziroma V daleč od razpršenosti.<br />

Pomaga lahko, če stolpce in vrstice predhodno tako preuredimo, da bo pri razcepu nastalo<br />

čim manj novih neničelnih elementov. Obstajajo različni algoritmi in pristopi, ki za različne<br />

tipe matrik dajejo različne rezultate.<br />

Ponavadi se za razpršene matrike uporablja iterativne metode namesto direktnih.<br />

Bor Plestenjak - Numerična analiza 2004


Matlab in posebni sistemi<br />

Razcep Choleskega dobimo z ukazom chol. Uporaba:<br />

• V=chol(A): V je taka zgornja trikotna matrika, da je A = V T V .<br />

pozitivno definitna, dobimo sporočilo o napaki.<br />

Če A ni simetrična<br />

Za delo z razpršenimi matrikami imamo na voljo več ukazov, podroben seznam dobimo z<br />

help sparfun, nekaj glavnih ukazov pa je:<br />

• sparse: konstrukcija razpršene matrike, tako npr. A=sparse(B) naredi razpršeno<br />

matriko A z neničelnimi elementi matrike B, A=sparse(i,j,a,m,n) pa naredi<br />

razpršeno matriko velikosti m × n z neničelnimi elementi a k na indeksih (i k , j k ).<br />

• B=full(A): iz razpršene matrike naredi nazaj polno.<br />

• spy(A): grafično prikaže strukturo matrike A in število neničelnih elementov.<br />

• nz(A): število neničelnih elementov.<br />

• normest(A): oceni 2-normo matrike A.<br />

Bor Plestenjak - Numerična analiza 2004


<strong>5.</strong> <strong>Linearni</strong> <strong>problem</strong>i najmanjših <strong>kvadratov</strong><br />

<strong>5.</strong>1 Predoločeni sistemi<br />

Imamo linearni sistem Ax = b, kjer je A pravokotna matrika m × n in m > n, x ∈ R n<br />

in b ∈ R m .<br />

⎡ ⎤<br />

⎡ ⎤<br />

⎢<br />

⎣ A ⎣<br />

⎥ x ⎦ =<br />

⎦<br />

⎡ ⎤<br />

⎢<br />

⎣ b ⎥<br />

⎦<br />

Imamo več enačb kot neznank, zato tak sistem imenujemo predoločen sistem. V<br />

splošnem nima rešitve, lahko pa poiščemo x, pri katerem bo napaka Ax − b najmanjša.<br />

Predpostavimo še, da je rang(A) = n, sicer tak x ni enoličen.<br />

Če iščemo minimum ‖Ax−b‖ 2 , potem govorimo o rešitvi po metodi najmanjših <strong>kvadratov</strong>.<br />

Bor Plestenjak - Numerična analiza 2004


Primer 1<br />

Pri statistiki ocenjujemo parametre modela na podlagi opazovanj. Predpostavimo, da je<br />

uspeh b študenta v prvem letniku odvisen od<br />

• a 1 : uspeha v srednji šoli,<br />

• a 2 : uspeha na maturi,<br />

• a 3 : uspeha na sprejemnem izpitu.<br />

Določiti moramo parametre x 1 , x 2 , x 3 v linearnem modelu b = x 1 a 1 + x 2 a 2 + x 3 a 3 . Če<br />

vzamemo podatke za m študentov, dobimo predoločeni sistem<br />

⎡<br />

⎤ ⎡ ⎤<br />

a 11 a 12 a 13 ⎡ ⎤ b ⎢ a 21 a 22 a 23<br />

x 1<br />

1<br />

⎥ ⎣<br />

⎣ .<br />

. ⎦ x 2<br />

⎦ = ⎢ b 2<br />

⎥<br />

⎣ . ⎦ .<br />

x<br />

a m1 a m2 a 3<br />

m3 b m<br />

Bor Plestenjak - Numerična analiza 2004


Primer 2 - polinomska aproksimacija<br />

Iščemo polinom p(x) = a 0 + a 1 x + · · · + a n x n , ki se najbolje prilega točkam (x i , y i ),<br />

i = 1, . . . , m.<br />

Dobimo predoločeni sistem<br />

⎡<br />

1 x 1 · · · x n 1<br />

1 x 2 · · · x n 2<br />

⎢ . . .<br />

⎣<br />

1 x m · · · x n m<br />

⎤ ⎡<br />

⎡ ⎤<br />

a 0<br />

⎢ a 1<br />

⎥<br />

⎣<br />

⎥ . ⎦ = ⎢<br />

⎦ a n<br />

⎣<br />

⎤<br />

y 1<br />

y 2<br />

.<br />

⎥<br />

⎦<br />

y m<br />

.<br />

Bor Plestenjak - Numerična analiza 2004


Primer 3 - aproksimacija z nelinearnim modelom<br />

Iščemo krivuljo oblike y = ae bx , ki se najbolje prilega točkam (x i , y i ), i = 1, . . . , m. V<br />

tem primeru si lahko pomagamo tako, da model lineariziramo:<br />

ln y = ln a + bx.<br />

Tako dobimo predoločeni sistem<br />

⎡ ⎤<br />

1 x 1<br />

[ ]<br />

⎢ 1 x 2<br />

⎥ ln a<br />

⎣ . . ⎦ b<br />

1 x m<br />

⎡ ⎤<br />

ln y 1<br />

= ⎢ ln y 2<br />

⎥<br />

⎣ . ⎦ .<br />

ln y m<br />

Če nelinearni model dobro opisuje podatke, potem bo rešitev lineariziranega modela zelo<br />

dober približek za rešitev originalnega <strong>problem</strong>a.<br />

Bor Plestenjak - Numerična analiza 2004


Primer 4 - geodetske meritve<br />

Imamo mrežo točk v ravnini. Poznamo razdalje med nekaterimi pari točk in pa kote med<br />

nekaterimi trojicami točk. Nekatere točke so znane (fiksne), ostale pa so znane manj<br />

natančno, na podlagi meritev pa bi radi njihovo točnost izboljšali.<br />

Vsake toliko časa je potrebno točke iz mreže izračunati natančneje, saj so točke vedno bolj<br />

goste, premikanje tektonskih plošč premika točke, ipd.<br />

Bor Plestenjak - Numerična analiza 2004


Tako dobimo enačbe za razdalje:<br />

in kote<br />

d 2 ij = ((x j + δx j ) − (x i + δx i )) 2 + ((y j + δy j ) − (y i + δy i )) 2<br />

cos 2 θ jik · d 2 ij d2 ik = ((z ′ j − z′ i )T (z ′ k − z′ i ) ) 2<br />

.<br />

V enačbah zanemarimo vse kvadratne δ člene in dobimo predoločen sistem za δ i . Pri tem<br />

nekatere točke ne premikamo, npr. referenčne točke prvega reda.<br />

V ZDA so npr. leta 1974 reševali sistem s 700000 točkami in to je bil takrat največji<br />

linearni sistem rešen z računalnikom.<br />

Bor Plestenjak - Numerična analiza 2004


<strong>5.</strong>2 Normalni sistem<br />

Če sistem Ax = b z leve pomnožimo z A T , dobimo normalni sistem<br />

A T Ax = A T b.<br />

To je nesingularen sistem n × n, saj je A polnega ranga.<br />

Lema 2.<br />

Dokaz.<br />

Rešitev normalnega sistema je rešitev po metodi najmanjših <strong>kvadratov</strong>.<br />

Če definiramo<br />

ϕ(x) = ‖b − Ax‖ 2 2 = (b − Ax)T (b − Ax),<br />

potem dobimo gradϕ(x) = 2A T Ax − 2A T b. V stacionarni točki mora biti gradient<br />

enak 0, torej A T Ax = A T b. Da je to res minimum, se vidi iz Hessejeve matrike za ϕ(x),<br />

ki je enaka simetrični pozitivno definitni matriki A T A.<br />

Bor Plestenjak - Numerična analiza 2004


Geometrijska razlaga<br />

Za b ∈ R n iščemo Ax ∈ im(A), da bo razdalja ‖b − Ax‖ 2 minimalna. To pa pomeni,<br />

da v linearnem podprostoru im(A) iščemo najboljšo aproksimacijo b v normi ‖.‖ 2 . Rešitev<br />

je ortogonalna projekcija b na im(A), torej mora biti ostanek b − Ax pravokoten na<br />

im(A). Ker pa stolpci A tvorijo bazo za im(A), od tod dobimo normalno enačbo.<br />

b<br />

r=b−Ax<br />

Lin A<br />

y=Ax<br />

Bor Plestenjak - Numerična analiza 2004


Reševanje normalnega sistema<br />

A T Ax = A T b<br />

Matrika A T A je s.p.d., zato za reševanje normalnega sistema uporabimo razcep Choleskega.<br />

Število operacij za izračun A T A, razcep Choleskega in reševanje sistema je<br />

n 2 m + 1 3 n3 + O(n 2 ),<br />

ker pa je ponavadi m ≫ n, je najpomembnejši člen n 2 m.<br />

Normalni sistem je najpreprostejši način reševanja predoločenega sistema, ni pa najstabilnejši.<br />

Bor Plestenjak - Numerična analiza 2004


Primer<br />

Denimo, da iščemo polinom p(x) = a 0 + a 1 x + · · · + a n x n stopnje n, ki se najbolje<br />

prilega točkam (x i , y i ), i = 1, . . . , m. Matrika B = A T A ima elemente<br />

b ij =<br />

m∑<br />

k=1<br />

x i+j−2<br />

k<br />

.<br />

Če so točke x i enakomerno porazdeljene po intervalu (0, 1), torej x i = i/(m + 1), velja<br />

b ij =<br />

m∑<br />

( k<br />

k=1<br />

m + 1<br />

) i+j−2<br />

≈ (m + 1)<br />

∫ 1<br />

0<br />

x i+j−2 dx = m + 1<br />

i + j − 1 ,<br />

to pa pomeni, da je<br />

B ≈ (m + 1)H n+1 .<br />

Ker so Hilbertove matrike zgled za zelo občutljive matrike, računanje aproksimacijskega<br />

polinoma visoke stopnje preko normalnega sistema ni stabilno.<br />

Bor Plestenjak - Numerična analiza 2004


<strong>5.</strong>3 Teorija motenj<br />

Za matriko A, ki je ranga r, je<br />

κ 2 (A) = ‖A‖ 2 ‖A + ‖ 2 = σ 1(A)<br />

σ r (A) .<br />

Izrek 3. Naj bo A ∈ R m×n , m ≥ n, rang(A) = n, x = A + b rešitev predoločenega<br />

sistema in r = Ax − b. Naj bo ˜x = (A + δA) + (b + δb), kjer je<br />

ɛ = max<br />

Potem je (A + δA) ranga k in velja<br />

‖˜x − x‖ 2<br />

‖x‖ 2<br />

≤ ɛκ 2(A)<br />

1 − ɛκ 2 (A)<br />

( ‖δA‖2<br />

, ‖δb‖ )<br />

2<br />

‖A‖ 2 ‖b‖ 2<br />

< 1<br />

κ 2 (A) .<br />

(<br />

)<br />

‖r‖ 2<br />

2 + (κ 2 (A) + 1)<br />

.<br />

‖A‖ 2 ‖x‖ 2<br />

Bor Plestenjak - Numerična analiza 2004


Povzetek izreka:<br />

‖˜x − x‖ 2<br />

‖x‖ 2<br />

≤ ɛκ 2(A)<br />

1 − ɛκ 2 (A)<br />

(<br />

)<br />

‖r‖ 2<br />

2 + (κ 2 (A) + 1)<br />

‖A‖ 2 ‖x‖ 2<br />

• ko je ‖r‖ 2 majhna, je občutljivost reda O(κ 2 (A)),<br />

• če ‖r‖ 2 ni zanemarljiva, je občutljivost predoločenega sistema reda O(κ 2 2 (A)),<br />

• v primeru r = 0 se ocena ujema z oceno občutljivosti linearnega sistema.<br />

Oceno za občutljivost predoločenega sistema moramo združiti z oceno sistema, ki ga na<br />

koncu rešimo, da dobimo rešitev. Pri normalnem sistemu je občutljivost enaka κ 2 2 (A),<br />

tako da imamo ne glede na občutljivost predoločenega sistema v oceni vedno κ 2 2<br />

(A). Pri<br />

QR razcepu ali singularnem razcepu pa se občutljivost ne poveča in ostane κ 2 (A), tako<br />

da je celotna ocena odvisna od velikosti ‖r‖ 2 .<br />

Bor Plestenjak - Numerična analiza 2004


<strong>5.</strong>4 QR razcep<br />

Denimo, da poznamo razcep A = QR, kjer je Q matrika m × n z ortonormiranimi<br />

stolpci, R pa zgornja trikotna matrika n × n. Tak razcep imenujemo QR razcep. Potem<br />

iz normalnega sistema dobimo<br />

A T Ax = A T b<br />

(QR) T QRx = (QR) T b<br />

R T Rx = R T Q T b<br />

Rx = Q T b<br />

Rešitev po metodi najmanjših <strong>kvadratov</strong> torej dobimo, če rešimo zgornje trikotni sistem<br />

Rx = Q T b.<br />

Reševanje preko QR razcepa je stabilnejše od normalnega sistema.<br />

Bor Plestenjak - Numerična analiza 2004


Gram-Schmidtova ortogonalizacija<br />

Denimo, da je A = [a 1 · · · a n ] in Q = [q 1 · · · q n ]. Potem iz A = QR sledi<br />

a k =<br />

k∑<br />

r ik q i .<br />

i=1<br />

Vektorji q 1 , . . . , q i so ortonormirani in razpenjajo isti podprostor kot a 1 , . . . , a i . To<br />

pomeni, da lahko Q in R dobimo z Gram-Schmidtovo ortogonalizacijo stolpcev matrike A:<br />

k = 1, . . . , n<br />

q k = a k<br />

i = 1, . . . , k − 1<br />

r ik = q T i a k (CGS) ali r ik = q T i q k (MGS)<br />

q k = q k − r ik q i<br />

r kk = ‖q k ‖ 2<br />

q k = q k<br />

r kk<br />

CGS je klasična Gram-Schmidtova metoda,<br />

metoda.<br />

MGS pa modificirana Gram-Schmidtova<br />

Bor Plestenjak - Numerična analiza 2004


Primerjava CGS in MGS<br />

Pri eksaktnem računanju vrneta CGS in MGS identične rezultate, numerično pa je MGS<br />

stabilnejši od CGS.<br />

Če vzamemo ɛ = 10 −10 in preko CGS in MGS v Matlabu ortogonaliziramo vektorje<br />

x 1 =<br />

⎡<br />

⎣<br />

1 + ɛ<br />

1<br />

1<br />

⎤<br />

⎦ , x 2 =<br />

⎡<br />

⎣<br />

⎤<br />

1<br />

1 + ɛ ⎦ , x 3 =<br />

1<br />

⎡<br />

⎣<br />

⎤<br />

1<br />

1 ⎦ ,<br />

1 + ɛ<br />

dobimo pri CGS q T 2 q 3 ≈ 0.5, kar je zelo narobe, pri MGS pa q T 2 q 3 = −1.1 · 10 −16 .<br />

Število operacij za QR razcep je približno<br />

2mn 2 ,<br />

kar je približno dvakrat toliko operacij kot pri normalnem sistemu (za m ≫ n).<br />

Bor Plestenjak - Numerična analiza 2004


Reševanje predoločenega sistema preko MGS<br />

Pri reševanju predoločenega sistema z MGS moramo paziti na zadnji korak. Nepravilno je<br />

reševati sistem Rx = Q T b, saj bomo pri računanju Q T b izgubili vso natančnost, ki smo<br />

jo pridobili, ko smo namesto CGS izvajali MGS.<br />

Pravilno je, da najprej z MGS naredimo QR razcep za z vektorjem b razširjeno matrko A:<br />

[ ] R z<br />

[ A b ] = [ Q q n+1 ] .<br />

ρ<br />

Sedaj dobimo<br />

[ ] x<br />

Ax − b = [ A b ]<br />

−1<br />

[ ] [ ]<br />

R z x<br />

= [ Q q n+1 ]<br />

ρ −1<br />

= Q(Rx − z) − ρq n+1 .<br />

Ker je q n+1 ⊥ Q, bo minimum dosežen pri Rx = z.<br />

Bor Plestenjak - Numerična analiza 2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!