4.10 posebni sistemiplestenjak/vaje/nafgg/... · 2004. 2. 29. · 4.10 posebni sistemi 4.10.1...

26
4.10 Posebni sistemi 4.10.1 Kompleksni sistem Reˇ sujemo Ax = b, kjer A C n×n , x, b C n . ˇ Ce raˇ cunamo v kompleksni aritmetiki, potem lahko uporabimo kar algoritem z LU razcepom z delnim pivotiranjem. Sistem lahko prevedemo na dvakrat veˇ cji realni sistem A 1 -A 2 A 2 A 1 x 1 x 2 = b 1 b 2 , kjer je A = A 1 + iA 2 , x = x 1 + ix 2 in b = b 1 + ib 2 . ˇ Ce primerjamo ˇ stevilo realnih operacij, je prvi naˇ cin za polovico cenejˇ si. Bor Plestenjak - Numeriˇ cna analiza 2004

Upload: others

Post on 04-Feb-2021

0 views

Category:

Documents


0 download

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