4.10 posebni sistemiplestenjak/vaje/nafgg/... · 2004. 2. 29. · 4.10 posebni sistemi 4.10.1...
TRANSCRIPT
-
4.10 Posebni sistemi
4.10.1 Kompleksni sistem
Rešujemo Ax = b, kjer A ∈ Cn×n, x, b ∈ Cn.
• Če računamo v kompleksni aritmetiki, potem lahko uporabimo kar algoritem z LUrazcepom z delnim pivotiranjem.
• Sistem lahko prevedemo na dvakrat večji realni sistem[A1 −A2A2 A1
] [x1x2
]=
[b1b2
],
kjer je A = A1 + iA2, x = x1 + ix2 in b = b1 + ib2.
Če primerjamo število realnih operacij, je prvi način za polovico ceneǰsi.
Bor Plestenjak - Numerična analiza 2004
-
4.10.2 Simetrične pozitivno definitne matrike
A ∈ Rn×n je simetrična pozitivno definitna (s.p.d.), če je A = AT in xTAx > 0 za vsakx 6= 0.
Izrek 1. Velja:
1) Naj bo det Y 6= 0. Potem je A s.p.d. ⇐⇒ Y TAY s.p.d.2) A s.p.d. in H = A(1 : k, 1 : k) poljubna vodilna podmatrika, k ≤ n, =⇒ H s.p.d.3) A s.p.d. in H = A([i1 i2 · · · ik], [i1 i2 · · · ik]) poljubna podmatrika, simetrična
glede na diagonalo =⇒ H s.p.d.4) A s.p.d. ⇐⇒ A = AT in vse lastne vrednosti A so pozitivne.5) A s.p.d. =⇒ aii > 0 za ∀i in maxi,j |aij| = maxi |aii|.6) A s.p.d. =⇒ LU razcep brez pivotiranja se izvede in uii > 0 za ∀i.7) A s.p.d. ⇐⇒ obstaja taka nesingularna spodnja trikotna matrika V s pozitivnimi
elementi na diagonali, da je A = V V T .
Razcep A = V V T imenujemo razcep Choleskega, V pa faktor Choleskega.
Bor Plestenjak - Numerična analiza 2004
-
Razcep Choleskega
Če iz A = V V T zapǐsemo enačbo za ajk, j ≥ k, dobimo
ajk =
k∑i=1
vjivki =
k−1∑i−1
vjivki + vjkvkk,
odtod pa algoritem za razcep Choleskega:
k = 1, . . . , n
vkk =(
akk −∑k−1
i=1 v2ki
)1/2j = k + 1, . . . , n
vjk =1
vkk
(ajk −
∑k−1i=1 vjivki
)
Število operacij jen∑
k=1
(2k + 2(n− k)k) =1
3n
3+O(n2).
Poleg polovice manj operacij porabimo tudi polovico manj prostora kot pri LU razcepu.
Bor Plestenjak - Numerična analiza 2004
-
Zgled za razcep Choleskega
k = 1, . . . , n
vkk =(
akk −∑k−1
i=1 v2ki
)1/2j = k + 1, . . . , n
vjk =1
vkk
(ajk −
∑k−1i=1 vjivki
)
Faktor Choleskega za A =
4 −2 4 −2 4−2 10 1 −5 −54 1 9 −2 1−2 −5 −2 22 74 −5 1 7 14
je
V =
2
−1 32 1 2
−1 −2 1 42 −1 −1 2 2
.Bor Plestenjak - Numerična analiza 2004
-
Če A ni s.p.d., se v algoritmu pod korenom pojavi nepozitivna vrednost. Računanje razcepa
Choleskega je najceneǰsa metoda za ugotavljanje pozitivne definitnosti simetrične matrike.
Reševanje s.p.d. sistema Ax = b:
1) A = V V T ,
2) V y = b,
3) V Tx = y.
Iz analize napak sledi, da izračunana rešitev x̃ zadošča (A + δA)x̃ = b, kjer je
‖δA‖∞ ≤ 3n2�‖A‖∞.
To pomeni, da je reševanje preko razcepa Choleskega numerično stabilno.
Bor Plestenjak - Numerična analiza 2004
-
4.10.3 Simetrične nedefinitne matrike
Pri simetrični matriki ne želimo uporabljati LU razcepa, saj ne ohranja simetrije. Za
nesingularno A obstaja razcep
PAPT
= LDLT,
kjer je L spodnja trikotna matrika z enicami na diagonali, D pa bločno diagonalna matrika
z bloki 1× 1 ali 2× 2. Število operacij za razcep je
n3
3+O(n2).
Zgled za to, da potrebujemo 2× 2 bloke v D je npr. A =[
0 1
1 0
].
Bor Plestenjak - Numerična analiza 2004
-
4.10.4 Tridiagonalne matrike
LU razcep brez pivotiranja tridiagonalne matrike
A =
a1 b1c2 a2 b2
. . . . . . . . .
cn−1 an−1 bn−1cn an
je
L =
1
l2 1. . . . . .
ln 1
in U =
u1 b1. . . . . .
un−1 bn−1un
.Za razcep in nadaljnje reševanje sistema Ax = b potrebujemo O(n) operacij in O(n)prostora, saj shranimo le neničelne diagonale matrik A, L in U .
Bor Plestenjak - Numerična analiza 2004
-
Tridiagonalne matrike in delno pivotiranje
Pri delnem pivotiranju dobimo
U =
u1 v1 w1
. . . . . . . . .
un−2 vn−2 wn−2un−1 vn−1
un
,
pivotna rast pa je omejena z 2. To pomeni, da je reševanje tridiagonalnega sistema preko
LU razcepa z delnim pivotiranjem obratno stabilno.
Podobno velja za pasovne matrike, ki imajo poleg glavne še p diagonal nad in q diagonal
pod glavno diagonalo.
Bor Plestenjak - Numerična analiza 2004
-
4.10.5 Razpřsene matrike
Matrika je razpřsena, če je večina njenih elementov enakih 0, ostali pa nimajo kakšne
posebne strukture. Pri taki matriki shranimo le indekse in vrednosti neničelnih elementov.
Pri LU razcepu razpřsene matrike oz. razcepu Choleskega za s.p.d. razpřseno matriko so
lahko faktorji L, U oziroma V daleč od razpřsenosti.
Pomaga lahko, če stolpce in vrstice predhodno tako preuredimo, da bo pri razcepu nastalo
čim manj novih neničelnih elementov. Obstajajo različni algoritmi in pristopi, ki za različne
tipe matrik dajejo različne rezultate.
Ponavadi se za razpřsene matrike uporablja iterativne metode namesto direktnih.
Bor Plestenjak - Numerična analiza 2004
-
Matlab in posebni sistemi
Razcep Choleskega dobimo z ukazom chol. Uporaba:
• V=chol(A): V je taka zgornja trikotna matrika, da je A = V TV . Če A ni simetričnapozitivno definitna, dobimo sporočilo o napaki.
Za delo z razpřsenimi matrikami imamo na voljo več ukazov, podroben seznam dobimo z
help sparfun, nekaj glavnih ukazov pa je:
• sparse: konstrukcija razpřsene matrike, tako npr. A=sparse(B) naredi razpřsenomatriko A z neničelnimi elementi matrike B, A=sparse(i,j,a,m,n) pa naredirazpřseno matriko velikosti m× n z neničelnimi elementi ak na indeksih (ik, jk).
• B=full(A): iz razpřsene matrike naredi nazaj polno.• spy(A): grafično prikaže strukturo matrike A in število neničelnih elementov.• nz(A): število neničelnih elementov.• normest(A): oceni 2-normo matrike A.
Bor Plestenjak - Numerična analiza 2004
-
5. Linearni problemi najmanǰsih kvadratov
5.1 Predoločeni sistemi
Imamo linearni sistem Ax = b, kjer je A pravokotna matrika m× n in m > n, x ∈ Rnin b ∈ Rm.
A
x =
b
Imamo več enačb kot neznank, zato tak sistem imenujemo predoločen sistem. V
splošnem nima rešitve, lahko pa poǐsčemo x, pri katerem bo napaka Ax − b najmanǰsa.Predpostavimo še, da je rang(A) = n, sicer tak x ni enoličen.
Če ǐsčemo minimum ‖Ax−b‖2, potem govorimo o rešitvi po metodi najmanǰsih kvadratov.
Bor Plestenjak - Numerična analiza 2004
-
Primer 1
Pri statistiki ocenjujemo parametre modela na podlagi opazovanj. Predpostavimo, da je
uspeh b študenta v prvem letniku odvisen od
• a1: uspeha v srednji šoli,• a2: uspeha na maturi,• a3: uspeha na sprejemnem izpitu.
Določiti moramo parametre x1, x2, x3 v linearnem modelu b = x1a1 + x2a2 + x3a3. Če
vzamemo podatke za m študentov, dobimo predoločeni sistema11 a12 a13a21 a22 a23... ...
am1 am2 am3
x1x2
x3
=
b1b2...
bm
.
Bor Plestenjak - Numerična analiza 2004
-
Primer 2 - polinomska aproksimacija
Ǐsčemo polinom p(x) = a0 + a1x + · · · + anxn, ki se najbolje prilega točkam (xi, yi),i = 1, . . . , m.
Dobimo predoločeni sistem
1 x1 · · · xn11 x2 · · · xn2
... ... ...
1 xm · · · xnm
a0a1...
an
=
y1y2
...
ym
.
Bor Plestenjak - Numerična analiza 2004
-
Primer 3 - aproksimacija z nelinearnim modelom
Ǐsčemo krivuljo oblike y = aebx, ki se najbolje prilega točkam (xi, yi), i = 1, . . . , m. V
tem primeru si lahko pomagamo tako, da model lineariziramo:
ln y = ln a + bx.
Tako dobimo predoločeni sistem1 x11 x2... ...
1 xm
[ ln ab]
=
ln y1ln y2
...
ln ym
.
Če nelinearni model dobro opisuje podatke, potem bo rešitev lineariziranega modela zelo
dober približek za rešitev originalnega problema.
Bor Plestenjak - Numerična analiza 2004
-
Primer 4 - geodetske meritve
Imamo mrežo točk v ravnini. Poznamo razdalje med nekaterimi pari točk in pa kote med
nekaterimi trojicami točk. Nekatere točke so znane (fiksne), ostale pa so znane manj
natančno, na podlagi meritev pa bi radi njihovo točnost izbolǰsali.
Vsake toliko časa je potrebno točke iz mreže izračunati natančneje, saj so točke vedno bolj
goste, premikanje tektonskih plošč premika točke, ipd.
Bor Plestenjak - Numerična analiza 2004
-
Tako dobimo enačbe za razdalje:
d2ij = ((xj + δxj)− (xi + δxi))
2+ ((yj + δyj)− (yi + δyi))2
in kote
cos2θjik · d2ijd
2ik =
((z′j − z
′i)
T(z′k − z
′i)
)2.
V enačbah zanemarimo vse kvadratne δ člene in dobimo predoločen sistem za δi. Pri tem
nekatere točke ne premikamo, npr. referenčne točke prvega reda.
V ZDA so npr. leta 1974 reševali sistem s 700000 točkami in to je bil takrat največji
linearni sistem rešen z računalnikom.
Bor Plestenjak - Numerična analiza 2004
-
5.2 Normalni sistem
Če sistem Ax = b z leve pomnožimo z AT , dobimo normalni sistem
ATAx = A
Tb.
To je nesingularen sistem n× n, saj je A polnega ranga.
Lema 2. Rešitev normalnega sistema je rešitev po metodi najmanǰsih kvadratov.
Dokaz. Če definiramo
ϕ(x) = ‖b− Ax‖22 = (b− Ax)T(b− Ax),
potem dobimo gradϕ(x) = 2ATAx − 2ATb. V stacionarni točki mora biti gradientenak 0, torej ATAx = ATb. Da je to res minimum, se vidi iz Hessejeve matrike za ϕ(x),
ki je enaka simetrični pozitivno definitni matriki ATA.
Bor Plestenjak - Numerična analiza 2004
-
Geometrijska razlaga
Za b ∈ Rn ǐsčemo Ax ∈ im(A), da bo razdalja ‖b− Ax‖2 minimalna. To pa pomeni,da v linearnem podprostoru im(A) ǐsčemo najbolǰso aproksimacijo b v normi ‖.‖2. Rešitevje ortogonalna projekcija b na im(A), torej mora biti ostanek b − Ax pravokoten naim(A). Ker pa stolpci A tvorijo bazo za im(A), od tod dobimo normalno enačbo.
b r=b−Ax
y=AxLinA
Bor Plestenjak - Numerična analiza 2004
-
Reševanje normalnega sistema
ATAx = A
Tb
Matrika ATA je s.p.d., zato za reševanje normalnega sistema uporabimo razcep Choleskega.
Število operacij za izračun ATA, razcep Choleskega in reševanje sistema je
n2m +
1
3n
3+O(n2),
ker pa je ponavadi m � n, je najpomembneǰsi člen n2m.
Normalni sistem je najpreprosteǰsi način reševanja predoločenega sistema, ni pa najstabil-
neǰsi.
Bor Plestenjak - Numerična analiza 2004
-
Primer
Denimo, da ǐsčemo polinom p(x) = a0 + a1x + · · · + anxn stopnje n, ki se najboljeprilega točkam (xi, yi), i = 1, . . . , m. Matrika B = A
TA ima elemente
bij =
m∑k=1
xi+j−2k .
Če so točke xi enakomerno porazdeljene po intervalu (0, 1), torej xi = i/(m + 1), velja
bij =
m∑k=1
(k
m + 1
)i+j−2≈ (m + 1)
∫ 10
xi+j−2
dx =m + 1
i + j − 1,
to pa pomeni, da je
B ≈ (m + 1)Hn+1.
Ker so Hilbertove matrike zgled za zelo občutljive matrike, računanje aproksimacijskega
polinoma visoke stopnje preko normalnega sistema ni stabilno.
Bor Plestenjak - Numerična analiza 2004
-
5.3 Teorija motenj
Za matriko A, ki je ranga r, je
κ2(A) = ‖A‖2‖A+‖2 =σ1(A)
σr(A).
Izrek 3. Naj bo A ∈ Rm×n, m ≥ n, rang(A) = n, x = A+b rešitev predoločenegasistema in r = Ax− b. Naj bo x̃ = (A + δA)+(b + δb), kjer je
� = max
(‖δA‖2‖A‖2
,‖δb‖2‖b‖2
)<
1
κ2(A).
Potem je (A + δA) ranga k in velja
‖x̃− x‖2‖x‖2
≤�κ2(A)
1− �κ2(A)
(2 + (κ2(A) + 1)
‖r‖2‖A‖2‖x‖2
).
Bor Plestenjak - Numerična analiza 2004
-
‖x̃− x‖2‖x‖2
≤�κ2(A)
1− �κ2(A)
(2 + (κ2(A) + 1)
‖r‖2‖A‖2‖x‖2
)Povzetek izreka:
• ko je ‖r‖2 majhna, je občutljivost reda O(κ2(A)),• če ‖r‖2 ni zanemarljiva, je občutljivost predoločenega sistema reda O(κ22(A)),• v primeru r = 0 se ocena ujema z oceno občutljivosti linearnega sistema.
Oceno za občutljivost predoločenega sistema moramo združiti z oceno sistema, ki ga na
koncu rešimo, da dobimo rešitev. Pri normalnem sistemu je občutljivost enaka κ22(A),
tako da imamo ne glede na občutljivost predoločenega sistema v oceni vedno κ22(A). Pri
QR razcepu ali singularnem razcepu pa se občutljivost ne poveča in ostane κ2(A), tako
da je celotna ocena odvisna od velikosti ‖r‖2.
Bor Plestenjak - Numerična analiza 2004
-
5.4 QR razcep
Denimo, da poznamo razcep A = QR, kjer je Q matrika m × n z ortonormiranimistolpci, R pa zgornja trikotna matrika n× n. Tak razcep imenujemo QR razcep. Potemiz normalnega sistema dobimo
ATAx = A
Tb
(QR)TQRx = (QR)
Tb
RTRx = R
TQ
Tb
Rx = QTb
Rešitev po metodi najmanǰsih kvadratov torej dobimo, če rešimo zgornje trikotni sistem
Rx = QTb.
Reševanje preko QR razcepa je stabilneǰse od normalnega sistema.
Bor Plestenjak - Numerična analiza 2004
-
Gram-Schmidtova ortogonalizacija
Denimo, da je A = [a1 · · · an] in Q = [q1 · · · qn]. Potem iz A = QR sledi
ak =
k∑i=1
rikqi.
Vektorji q1, . . . , qi so ortonormirani in razpenjajo isti podprostor kot a1, . . . , ai. To
pomeni, da lahko Q in R dobimo z Gram-Schmidtovo ortogonalizacijo stolpcev matrike A:
k = 1, . . . , n
qk = aki = 1, . . . , k − 1
rik = qTi ak (CGS) ali rik = q
Ti qk (MGS)
qk = qk − rikqirkk = ‖qk‖2qk =
qkrkk
CGS je klasična Gram-Schmidtova metoda, MGS pa modificirana Gram-Schmidtova
metoda.
Bor Plestenjak - Numerična analiza 2004
-
Primerjava CGS in MGS
Pri eksaktnem računanju vrneta CGS in MGS identične rezultate, numerično pa je MGS
stabilneǰsi od CGS.
Če vzamemo � = 10−10 in preko CGS in MGS v Matlabu ortogonaliziramo vektorje
x1 =
1 + �11
, x2 = 11 + �
1
, x3 = 11
1 + �
,dobimo pri CGS qT2 q3 ≈ 0.5, kar je zelo narobe, pri MGS pa q
T2 q3 = −1.1 · 10
−16.
Število operacij za QR razcep je približno
2mn2,
kar je približno dvakrat toliko operacij kot pri normalnem sistemu (za m � n).
Bor Plestenjak - Numerična analiza 2004
-
Reševanje predoločenega sistema preko MGS
Pri reševanju predoločenega sistema z MGS moramo paziti na zadnji korak. Nepravilno je
reševati sistem Rx = QTb, saj bomo pri računanju QTb izgubili vso natančnost, ki smo
jo pridobili, ko smo namesto CGS izvajali MGS.
Pravilno je, da najprej z MGS naredimo QR razcep za z vektorjem b razširjeno matrko A:
[ A b ] = [ Q qn+1 ]
[R z
ρ
].
Sedaj dobimo
Ax− b = [ A b ][
x
−1
]= [ Q qn+1 ]
[R z
ρ
] [x
−1
]= Q(Rx− z)− ρqn+1.
Ker je qn+1 ⊥ Q, bo minimum dosežen pri Rx = z.
Bor Plestenjak - Numerična analiza 2004