11.5 Metoda karakteristik za hiperboliˇcne PDEplestenjak/Vaje/NaFgg/Predavanja/FGG_14.pdf ·...

23
11.5 Metoda karakteristik za hiperboliˇ cne PDE Hiperboliˇ cna kvazi linearna PDE ima obliko au xx + bu xy + cu yy = f, (1) kjer so a, b, c, f funkcije x, y, u, u x in u y , ter velja b 2 - 4ac > 0. ˇ Ce predpostavimo, da je u na obmoˇ cju Ω zvezna funkcija x in y , potem za diferencial velja du = ∂u ∂x dx + ∂u ∂y dy. (2) Dve razliˇ cni realni reˇ sitvi karakteristiˇ cne enaˇ cbe a dy dx 2 - b dy dx + c =0 doloˇ cata dve druˇ zini karakteristik dy dx = λ in dy dx = μ. Vzdolˇ z karakteristike drugi parcialni odvodi niso definirani in velja navadna diferencialna enaˇ cba a dy d(u x ) - f dx dy + c dx d(u y )=0. Bor Plestenjak - Numeriˇ cna analiza 2005/06

Transcript of 11.5 Metoda karakteristik za hiperboliˇcne PDEplestenjak/Vaje/NaFgg/Predavanja/FGG_14.pdf ·...

11.5 Metoda karakteristik za hiperbolicne PDE

Hiperbolicna kvazi linearna PDE ima obliko

auxx + buxy + cuyy = f, (1)

kjer so a, b, c, f funkcije x, y, u, ux in uy, ter velja b2 − 4ac > 0.

Ce predpostavimo, da je u na obmocju Ω zvezna funkcija x in y, potem za diferencial velja

du =∂u

∂xdx +

∂u

∂ydy. (2)

Dve razlicni realni resitvi karakteristicne enacbe a(

dydx

)2

− b(

dydx

)+ c = 0 dolocata dve

druzini karakteristikdy

dx= λ in

dy

dx= µ.

Vzdolz karakteristike drugi parcialni odvodi niso definirani in velja navadna diferencialna

enacba

a dy d(ux)− f dx dy + c dx d(uy) = 0.

Bor Plestenjak - Numericna analiza 2005/06

Metoda karakteristik

Vzdolz karakteristik C1 in C2 velja

a λ d(ux)− f dy + c d(uy) = 0, (3)

a µ d(ux)− f dy + c d(uy) = 0. (4)

QP

S

Γ

C1

C2

Zacnemo z vrednosti u, ux in uy na krivulji Γ, ki ni karakteristika. Na njej izberemo dve

tocki P in Q. Iz enacb (2), (3) in (4) izracunamo vrednosti v naslednji tocki S, ki jo

dobimo kot presecisce karakteristik C1 in C2, ki gresta skozi P in Q.

Bor Plestenjak - Numericna analiza 2005/06

Algoritem metode karakteristik v grobem

QP

S

ΓR

T

1. Zacnemo na krivulji Γ, ki ni karakteristika in na kateri poznamo vrednosti u, ux in uy

(bodisi iz zacetnih pogojev ali pa iz prejsnjih racunov). Na krivulji Γ izberemo tocke

P, Q, R, itd.

2. Iz (2) poiscemo koordinate x in y naslednjih tock S(xS, yS), T (xT , yT ), . . ., ki so

presecisca karakteristik C1 in C2 skozi ustrezne pare tock na Γ.

3. Iz (3) in (4) izracunamo vrednosti ux in uy v tockah S, T, . . ., potem pa iz (2)

izracunamo vrednosti u.

4. Ponovimo prejsnje korake z novimi tockami in novo krivuljo Γ, ki gre skoznje.

Bor Plestenjak - Numericna analiza 2005/06

Algoritem metode karakteristik: korak 2

Tocka S(xS, yS) je presecisce C1 karakteristike skozi P in C2 karakteristike skozi Q. velja∫ S

P

dy =

∫ S

P

λdx,

∫ S

Q

dy =

∫ S

Q

µdx.

Ce je PDE linearna, sta λ in µ funkciji samo x in y. V tem primeru je mogoce mozno

integrala analiticno integrirati .

Kadar analiticno integriranje ni mozno, uporabimo kaksno kvadraturno formulo, npr.

trapezno, kjer dobimo:

yS − yP =

(λS + λP

2

)(xS − xP ), (5)

yS − yQ =

(µS + µQ

2

)(xS − xQ). (6)

Dobimo enacbi za xS, yS, uS, (ux)S in (uy)S, saj sta λS in µS odvisna od aS, bS in cS.

Ce sta λ in µ linearni funkciji x, potem po trapeznem pravilu tocno izracunamo xS, yS.

Bor Plestenjak - Numericna analiza 2005/06

Algoritem metode karakteristik: korak 3a

Za (ux)S in (uy)S velja∫ S

P

a λ d(ux)−∫ S

P

f dy +

∫ S

P

c d(uy) = 0,∫ S

Q

a µ d(ux)−∫ S

Q

f dy +

∫ S

Q

c d(uy) = 0.

Ce je PDE linearna, lahko enacbi mogoce analiticno integriramo. Sicer pa spet uporabimo

npr. trapezno pravilo, ki nam da

(aSλS + aPλP ) [(ux)S − (ux)P ] + (cS + cP ) [(uy)S − (uy)P ]

− (fS + fP )(yS − yP ) = 0, (7)

(aSµS + aQµQ) [(ux)S − (ux)Q] + (cS + cQ) [(uy)S − (uy)Q]

− (fS + fQ)(yS − yQ) = 0. (8)

Bor Plestenjak - Numericna analiza 2005/06

Algoritem metode karakteristik: korak 3b

Z integriranjem (2) vzdolz PS dobimo∫ S

Pdu =

∫ S

Puxdx +

∫ S

Puydy. Ce uporabimo

trapezno pravilo, dobimo

uS − uP =

((ux)S + (ux)P

2

)(xS − xP ) +

((uy)S + (uy)P

2

)(yS − yP ). (9)

Vrednost uS lahko dobimo tudi z integriranjem vzdolz QS, kjer dobimo

uS − uQ =

((ux)S + (ux)Q

2

)(xS − xQ) +

((uy)S + (uy)Q

2

)(yS − yQ). (10)

Zgornji enacbi ne vrneta iste vrednosti uS, je pa razlika pri majhni velikosti mreze majhna.

Tako smo dobili nelinearni sistem 5 enacb za neznanke xS, yS, uS, (ux)S in (uy)S. To so

enacbe (5,6,7,8) in (9) (ali (10)). Sistem resimo z eno izmed metod za nelinearne enacbe,

npr. z Newtonovo metodo.

Ce je PDE linearna, lahko iz (5,6) izracunamo xS, yS, potem pa ostanejo se tri enacbe za

tri neznanke. Nadalje, ce so a, b, c in f konstante, najprej resimo enacbi (7,8), potem pa

u izracunamo iz (9).

Bor Plestenjak - Numericna analiza 2005/06

Metoda karakteristik in robni pogoji

P

S

ΓC1

C2δΩ

Kadar naslednja tocka lezi na robu, lahko uporabimo le eno karakteristiko. Na robu se

zgodi, da se karakteristika C1 odbije v C2 in obratno. Denimo, da je S presecisce roba δΩ

in karakteristike C1 iz P .

Korak 2: Poiscemo presecisce karakteristike C1 in roba. To naredimo tako, da resimo

sistem enacbe (5) in enacbe roba.

Korak 3: Vrednost uS dobimo iz robnega pogoja. Z odvajanjem robnega pogoja dobimo

tudi eno izmed vrednosti (ux)S ali (uy)S, drugo pa potem izracunamo iz enacbe (7) .

Bor Plestenjak - Numericna analiza 2005/06

12.1 Iterativne metode za resevanje linearnih sistemov

Sistem Ax = b zapisemo v ekvivalentni obliki x = Rx + c in ga resujemo iterativno

x(r+1)

= Rx(r)

+ c.

Matriko R imenujemo iteracijska matrika. Upamo, da bo pri cim blazjih pogojih zaporedje

x(r) konvergiralo proti resitvi sistema Ax = b.

Izrek 1. Zaporedje x(r+1) = Rx(r) + c, r = 0, 1, . . ., za poljuben x(0) konvergira

natanko tedaj, ko velja ρ(R) < 1 (za vse lastne vrednosti λ matrike R velja |λ| < 1).

Dokaz. Naj bo x tocna resitev. Potem iz x = Rx + c in x(r+1) = Rx(r) + c sledi

x− x(r+1)

= R(x− x(r)

)

in naprej

x− x(r+1)

= R2(x− x

(r−1)) = · · · = R

r+1(x− x

(0)).

Ocitno je potreben in zadosten pogoj za konvergenco limk→∞ Rk = 0, to pa je ekviva-

lentno temu, da je ρ(R) < 1.

Bor Plestenjak - Numericna analiza 2005/06

Posledica 2. Zadosten pogoj za konvergenco zaporedja x(r+1) = Rx(r) + c, r =

0, 1, . . ., za poljuben x(0) je ‖R‖ < 1.

Kako pridemo do R? En nacin je, da sistem Ax = b zapisemo kot Mx = −Nx + b,

kjer je A = M + N in dobimo R := −M−1N . Sistem seveda resujemo v obliki

Mx(r+1)

= −Nx(r)

+ b, r = 0, 1, . . . ,

matriko M pa izberemo tako, da znamo sistem z matriko M resiti hitreje od polnega

sistema.

Iterativne metode pridejo se posebno v postev, ko imamo velike razprsene sisteme, kjer

je veliko elementov enakih 0, nenicelni elementi pa nimajo kaksne posebne oblike (npr.

pasovne). Pri direktnih metodah (LU, razcep Choleskega, QR) se razprsenost ponavadi

izgubi, zato te metode niso primerne.

Bor Plestenjak - Numericna analiza 2005/06

Jacobijeva metoda

Sistem Ax = b lahko pri pogoju aii 6= 0, i = 1, . . . , n, zapisemo kot

x1 =1

a11

(b1 − a12x2 − a13x3 − · · · − a1nxn)

x2 =1

a22

(b2 − a21x1 − a23x3 − · · · − a2nxn)

...

xn =1

ann

(bn − an1x1 − an2xn − · · · − an,n−1xn−1)

Od tod sledi Jacobijeva metoda

x(r+1)k =

1

akk

bk −n∑

i=1, i 6=k

akix(r)i

, k = 1, . . . , n.

Ce zapisemo A = L + D + U , kjer je L spodnji trikotnik matrike A (brez diagonale),

D diagonala, U pa zgornji trikotnik matrike A, potem je M = D in N = L + U .

Jacobijeva iteracijska matrika je RJ = −D−1(L + U).

Bor Plestenjak - Numericna analiza 2005/06

Gauss–Seidlova metoda

Ko po vrsti racunamo x(r+1)1 , . . . , x(r+1)

n , bi lahko pri racunanju x(r+1)k uporabili ze

izracunane vrednosti x(r+1)1 , . . . , x

(r+1)k−1 . Tako dobimo Gauss-Seidlovo metodo

x(r+1)k =

1

akk

bk −k−1∑i=1

akix(r+1)i −

n∑i=k+1

akix(r)i

, k = 1, . . . , n.

Sedaj je M = L + D, N = U in RGS = −(L + D)−1U .

Pri Jacobijevi metodi lahko vse elemente vektorja x(r+1) racunamo hkrati in je zato zelo

primerna za paralelizacijo. Pri Gauss-Seidlovi metodi to ni mozno.

Izrek 3. Ce je A strogo diagonalno dominantna po vrsticah, kar pomeni

|aii| >

n∑j=1,j 6=i

|aij|, i = 1, . . . , n,

potem Jacobijeva in Gauss-Seidlova metoda konvergirata.

Izrek 4. Gauss-Seidlova metoda konvergira za hermitsko pozitivno definitno matriko A.

Bor Plestenjak - Numericna analiza 2005/06

Zgled

Za sistem

12x1 − 3x2 + x3 = 10

−x1 + 9x2 + 2x3 = 10

x1 − x2 + 10x3 = 10

in zacetni priblizek x(0) = [1 0 1]T izracunamo dva koraka po Jacobijevi in Gauss-Seidlovi

metodi. Pri Jacobijevi metodi dobimo

x(1)

=

0.75

1

0.9

, x(2)

=

1.00833..

0.99444..

1.025

,

pri Gauss-Seidlovi metodi pa

x(1)

=

0.75

0.9722..

1.022..

, x(2)

=

0.991203..

0.994084..

1.0002881

,

Tocen rezultat je x = [1 1 1]T .

Bor Plestenjak - Numericna analiza 2005/06

SOR metoda

Pri metodi SOR racunamo

x(r+1)SORk = x

(r)k + ω

(x

(r+1)GSk − x

(r)k

),

kjer je ω relaksacijski parameter, za katerega se izkaze, da mora biti 0 < ω < 2. Pri

ω = 1 je SOR kar Gauss-Seidlova metoda.

Dobimo

x(r+1)k = x

(r)k + ω

1

akk

(bk −

k−1∑i=1

akix(r+1)i −

n∑i=k

akix(r)i

), k = 1, . . . , n.

Gre za pospesitev Gauss-Seidlove metode, ideja pa je, da bo, ce je zaporedje monotono, za

primerni parameter ω > 1 priblizek x(r+1)SOR blizje resitvi kot x(r+1)GS, ce pa zaporedje

alternira, bo boljsi priblizek pri 0 < ω < 1. Optimalni ω je tezko oceniti.

Bor Plestenjak - Numericna analiza 2005/06

Konsistentna urejenost

Definicija 5. Matrika A = L + D + U je konsistentno urejena, ce so lastne vrednosti

matrike

C(α) = −D−1

(1

αL + αU)

neodvisne od α.

Definicija 6. Matrika A ima lastnost A, ce obstaja taka permutacijska matrika P , da je

PAPT

=

[A11 A12

A21 A22

],

kjer sta A11 in A22 diagonalni matriki.

Lastnost A pomeni tudi, da je matrika konsistentno urejena.

Zgled 1. Matrika oblike

A =

T −I

−I T . . .. . . . . . −I

−I T

,

Bor Plestenjak - Numericna analiza 2005/06

kjer je

T =

4 −1

−1 4 . . .. . . . . . −1

−1 4

,

ima lastnost A. Taksno matriko srecamo pri resevanju Poissonove enacbe.

Izrek 7. Ce je A konsistentno urejena in µ = ρ(RJ), potem velja:

1) ρ(RGS) = µ2,

2) ωopt =2

1 +√

1− µ2, ρ(RSOR(ωopt)) = ωopt − 1,

3)

ρ(RSOR(ω)) =

ω − 1, za ωopt ≤ ω < 2

1− ω + 12ω

2µ2 + ωµ√

1− ω + 14ω

2µ2, za 0 < ω ≤ ωopt.

Bor Plestenjak - Numericna analiza 2005/06

Zgled 2. Za matriko A =

4 −1 −1

−1 4 −1 −1

−1 4 −1

−1 4 −1

−1 −1 4 −1

−1 −1 4

velja

ρ(RJ) = 0.6036, ρ(RGS) = 0.3634, ωopt = 1.1128, graf ρ(RSOR(ω)) pa je

Bor Plestenjak - Numericna analiza 2005/06

12.2 Metode podprostorov Krilova

Gre za razred metod za resevanje sistema Ax = b ali za racunanje lastnih vrednosti A, kjer

namesto direktnega dostopa do matrike potrebujemo le podprogram, ki zna za poljuben

vektor x izracunati Ax.

Definicija 8. Za dano matriko A in vektor b je podprostor Krilova

Kk(A, b) = Lin(b, Ab, . . . , Ak−1

b).

Namesto v Rn iscemo priblizke v projekciji problema na Kk(A, b).

Naj bo Qk = [ q1 · · · qk ] matrika z ortonormiranimi stolpci, ki so baza za Kk(A, b).

Potem kot priblizek za resitev Ax = b vzamemo xk = Qkz za nek z ∈ Rk, npr.:

• Vzamemo xk, ki minimizira ‖rk‖2, kjer je rk = b− Axk. Za A 6= AT je to metoda

GMRES, za A = AT pa MINRES.

• Ce je A s.p.d., vzamemo xk, ki minimizira ‖rk‖A−1. To je metoda CG (konjugirani

gradienti)

• Izberemo xk tako, da bo rk ⊥ Kk(A, b). Za A 6= AT je to varianta GMRES, za

A = AT pa SYMMLQ.

Bor Plestenjak - Numericna analiza 2005/06

Arnoldijev algoritem

Ortogonalna podobnostna redukcija A na Hessenbergovo obliko je A = QTHQ, kjer je

Q ortogonalna, H pa zgornja Hessenbergova oblika.

Radi bi izracunali le prvih k stolpcev Q in H. Iz AQ = HQ dobimo

Aqj =

j+1∑i=1

hijqi.

S skalarnim mnozenjem s qi, i = 1, . . . , j, dobimo hij = qTi Aqj. Vektor qj+1 dobimo iz

hj+1,jqj+1 = Aqj −j∑

i=1

hijqi.

Bor Plestenjak - Numericna analiza 2005/06

Arnoldijev algoritem

Vse skupaj lahko zapisemo v obliki algoritma

q1 = b/‖b‖2,

j = 1, 2, . . . , k

z = Aqj

i = 1, . . . , j

hij = qTi z

z = z − hijqi

hj+1,j = ‖z‖2

Prekini, ce je hj+1,j = 0.

qj+1 = z/hj+1,j

V algoritmu se skriva modificirana Gram-Schmidtova ortogonalizacija.

Algoritem se konca pri izbranem k ali pa, ko je hj+1,j = 0.

Bor Plestenjak - Numericna analiza 2005/06

Trditev 9. Arnoldijev algoritem se lahko izvaja do j = k, kjer je k = dimKn(A, b).

Za j = 1, . . . , k velja

AQj = QjHj + hj+1,j[0 · · · 0 qj+1],

kjer je Hj vodilna j × j podmatrika H, stolpci Qj = [q1 · · · qj] pa so ON baza za

Kj(A, b).

Zahtevnost Arnoldijevega algoritma je k mnozenj z matriko in O(k2n) za ostale zadeve,

Mnozenje z matriko je za polno matriko O(n2), za razprseno pa je lahko tudi samo O(n).

Po k korakih Arnoldijeve metode iz

H = QTAQ =

[QT

k AQk QTk AQu

QTuAQk QT

uAQu

]=

[Hk Hku

Huk Hu

],

poznamo Hk in Huk, ki ima same nicle in zgoraj desno hk+1,k.

Velja AQj = Qj+1Hj, kjer Hj dobimo tako, da Hj dodamo se vrstico [0 · · · 0 hj+1,j].

Bor Plestenjak - Numericna analiza 2005/06

Lanczoseva metoda

Ce je A simetricna, je tudi H simetricna, torej tridiagonalna in Arnoldijev algoritem se

obcutno poenostavi. Pisemo H = T in

T =

α1 β1

β1 α2 β2. . . . . . . . .

βn−2 αn−1 βn−1

βn−1 an

.

Sedaj iz AQ = QT dobimo

Aqj = βj−1qj−1 + αjqj + βjqj−1,

kjer je αj = qTj Aqj.

Bor Plestenjak - Numericna analiza 2005/06

Lanczoseva metoda

Vse skupaj lahko zapisemo v obliki Lanczoseve metode

q1 = b/‖b‖2, β0 = 0, q0 = 0

j = 1, 2, . . . , k

z = Aqj

αj = qTj z

z = z − αjqj − βj−1qj−1

βj = ‖z‖2

Prekini, ce je βj = 0.

qj+1 = z/βj

Spet, ce je dimKn(A, b) = k, dobimo βk = 0.

Po k korakih Lanczoseve metode iz

T = QTAQ =

[Tk T T

uk

Tuk Tu

]poznamo Tk in Tuk, ki ima same nicle in zgoraj desno βk.

Bor Plestenjak - Numericna analiza 2005/06

GMRES - posploseni minimalni ostanek

Pri GMRES priblizek xk za Ax = b dobimo iz zacetnega priblizka x0 tako, da xk oblike

xk = x0 + Qkyk minimizira ‖rk‖2 = ‖b − Axk‖2. Denimo, da smo s Arnoldijevim

algoritmom ze dobili Qk in Hk.

Sedaj iscemo ustrezen y ∈ Rk. Ce je q1 = r0/‖r0‖2, velja

‖b−A(x0+Qkyk)‖2 = ‖r0−AQkyk‖2 = ‖r0−Qk+1Hkyk‖2 = ‖‖r0‖2e1−Hkyk‖2.

Algoritme za GMRES v grobem je:

1. izberi x0, doloci dimenzijo k za podprostor Krilova, izracunaj r0 = b− Ax0.

2. naredi k korakov Arnoldijeve metode z zacetnim vektorjem q1 = r0/‖r0‖2, dobimo

Hk in Qk+1.

3. po metodi najmanjsih kvadratov poisci yk, ki minimizira ‖‖r0‖2e1 − Hkyk‖2.

Koncni priblizek je potem xk = x0 + Qkyk.

Varianta GMRES za simetricne matrike, kjer se namesto Arnoldijeve metode uporabi

Lanczoseva, je MINRES.

Bor Plestenjak - Numericna analiza 2005/06