11.5 Metoda karakteristik za hiperboliˇcne PDEplestenjak/Vaje/NaFgg/Predavanja/FGG_14.pdf ·...
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