Priblizné a numerické metody 1 1 Parabolické rovnice v jedné ...
Priblizné a numerické metody 1 1 Parabolické rovnice v jedné ...
Priblizné a numerické metody 1 1 Parabolické rovnice v jedné ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Stručný obsah části přednášky<br />
Přibližné a numerické <strong>metody</strong> 1<br />
Petr Knobloch, 2007<br />
1 Parabolické <strong>rovnice</strong> v jedné prostorové dimenzi<br />
1.1 Rovnice vedení tepla v jedné prostorové proměnné<br />
Hledáme funkci u = u(x, t) definovanou pro x ∈ [0, 1] a t ≥ 0 takovou, že<br />
(1)<br />
(2)<br />
(3)<br />
u t = u xx ∀ t > 0, x ∈ (0, 1) ,<br />
u(0, t) = u(1, t) = 0 ∀ t > 0 ,<br />
u(x, 0) = u 0 (x) ∀ x ∈ [0, 1] .<br />
Úlohy tohoto typu popisují šíření tepla v tenké izolované homogenní tyči konečné délky<br />
bez přítomnosti tepelných zdrojů. Úloha typu (1)–(3) též popisuje šíření tepla napříč<br />
nekonečnou deskou, přičemž x je souřadnice kolmá ke stěnám desky, na každé z nichž je<br />
předepsána konstantní teplota.<br />
Poznámka 1 Transformací v(x, t) = u(x, κ t) + α (1 − x) + β x získáme úlohu s tepelnou<br />
difuzivitou κ a nehomogenními Dirichletovými okrajovými podmínkami:<br />
v t = κ v xx ∀ t > 0, x ∈ (0, 1) ,<br />
v(0, t) = α, v(1, t) = β ∀ t > 0 ,<br />
v(x, 0) = v 0 (x) ≡ u 0 (x) + α (1 − x) + β x ∀ x ∈ [0, 1] .<br />
Uvažování κ = 1 a homogenních okrajových podmínek v (1)–(3) tedy nepředstavuje újmu<br />
na obecnosti.<br />
1.2 Řešení úlohy (1)–(3) Fourierovou metodou<br />
Hledejme řešení úlohy (1)–(3) ve tvaru u(x, t) = X(x) T(t). Dosazením do (1) a (2)<br />
snadno zjistíme, že<br />
u(x, t) = a m e −(m π)2 t sin(m π x)<br />
pro nějaké m ∈ N a a m ∈ R. Rovnice (1) a (2) splňuje zřejmě i libovolná lineární<br />
kombinace těchto funkcí. Nabízí se tedy hledat řešení u ve tvaru<br />
(4)<br />
u(x, t) =<br />
∞∑<br />
m=1<br />
a m e −(m π)2 t sin(m π x) .<br />
Z počáteční podmínky (3) plyne<br />
(5)<br />
u 0 (x) =<br />
∞∑<br />
m=1<br />
a m sin(m π x) ,<br />
1
a tudíž koeficienty a m jsou Fourierovy koeficienty funkce u 0 při rozvoji do sinové řady.<br />
Platí<br />
a m = 2<br />
∫ 1<br />
0<br />
u 0 (x) sin(m π x) dx.<br />
Je známo, že pro libovolné u 0 ∈ L 2 (0, 1) řada (5) konverguje v L 2 (0, 1). Součet řady (4)<br />
pak řeší úlohu (1)–(3) alespoň ve smyslu distribucí.<br />
V praxi výsledek (4) umožňuje získat pouze numerickou aproximaci řešení u, nebot’<br />
koeficienty a m jsme obecně schopni určit pouze přibližně a navíc jsme schopni sečíst<br />
pouze konečně mnoho členů řady. Skutečným omezením uvedené <strong>metody</strong> však je, že<br />
ji nelze snadno zobecnit na komplikovanější úlohy. Je proto nutné hledat jiné způsoby<br />
výpočtu přibližného řešení úlohy (1)–(3) a jedním z možných postupů je metoda konečných<br />
diferencí.<br />
1.3 Explicitní schéma pro úlohu (1)–(3)<br />
Základem <strong>metody</strong> konečných diferencí je zavedení sítě (či mříže) na výpočetní oblasti, a<br />
proto se někdy též používá název metoda sítí.<br />
Zvolme J ∈ N a definujme prostorový krok sítě h = 1/J. Dále zvolme časový krok sítě<br />
τ > 0 a definujme body<br />
x j = j h , j = 0, 1, 2, . . ., J , t n = n τ , n = 0, 1, 2, . . . .<br />
Dvojice (x j , t n ) nazýváme uzly sítě a v těchto bodech hledáme aproximaci řešení u, kterou<br />
značíme<br />
U n j ≈ u(x j, t n ) .<br />
Tyto hodnoty získáme tak, že derivace v (1) aproximujeme konečnými diferencemi a<br />
pak evolučně řešíme získané diferenční <strong>rovnice</strong> počínaje n = 0. Nejjednodušší diferenční<br />
schéma v uzlu (x j , t n ) je založeno na aproximacích<br />
u t (x j , t n ) ≈ u(x j, t n+1 ) − u(x j , t n )<br />
,<br />
τ<br />
u xx (x j , t n ) ≈ u(x j+1, t n ) − 2 u(x j , t n ) + u(x j−1 , t n )<br />
.<br />
h 2<br />
To vede k diferenčním rovnicím<br />
(6)<br />
kde<br />
U n+1<br />
j = Uj n + µ (Un j+1 − 2 Un j + Un j−1 ) , j = 1, 2, . . ., J − 1 ,<br />
µ = τ h 2 .<br />
Každou hodnotu na časové hladině t n+1 lze nezávisle spočítat z hodnot na časové hladině<br />
t n , a proto se taková metoda nazývá explicitní diferenční schéma.<br />
K rovnicím (6) musíme ještě přidat počáteční a okrajové podmínky<br />
(7)<br />
(8)<br />
U 0 j = u0 (x j ) , j = 1, 2, . . ., J − 1 ,<br />
U n 0 = U n J = 0 , n = 0, 1, 2, . . . .<br />
Pak je přibližné řešení U n j vztahy (6)–(8) jednoznačně určeno.<br />
2
1.4 Značení pro diference<br />
Dopředné diference:<br />
∆ +t v(x, t) = v(x, t + τ) − v(x, t) , ∆ +x v(x, t) = v(x + h, t) − v(x, t) .<br />
Zpětné diference:<br />
∆ −t v(x, t) = v(x, t) − v(x, t − τ) , ∆ −x v(x, t) = v(x, t) − v(x − h, t) .<br />
Centrální diference:<br />
δ t v(x, t) = v(x, t + 1 τ) − v(x, t − 1τ) , δ 2 2 x v(x, t) = v(x + 1 h, t) − v(x − 1 h, t) .<br />
2 2<br />
Centrální diference s dvojnásobnou délkou intervalu:<br />
∆ 0x v(x, t) = 1 (∆ 2 +x + ∆ −x ) v(x, t) = 1 [v(x + h, t) − v(x − h, t)] .<br />
2<br />
Pro centrální diference druhého řádu platí<br />
δx 2 v(x, t) = δ x (v(x + 1 h, t) − v(x − 1 h, t)) = v(x + h, t) − 2 v(x, t) + v(x − h, t) .<br />
2 2<br />
Snadno též ověříme, že δ 2 x = ∆ +x ∆ −x .<br />
Definujeme chybu diskretizace schématu (6)<br />
ε h,τ (x, t) = ∆ +t u(x, t)<br />
τ<br />
Použitím Taylorova vzorce získáme<br />
− δ2 x u(x, t)<br />
h 2 , x ∈ [h, 1 − h], t ≥ 0 .<br />
ε h,τ (x, t) = 1 2 u tt(x, η) τ − 1 12 u xxxx(ξ, t) h 2 , ξ ∈ (x − h, x + h), η ∈ (t, t + τ) .<br />
Předpokládáme-li, že existují konstanty M 1 a M 2 takové, že |u tt | ≤ M 1 , |u xxxx | ≤ M 2 na<br />
[0, 1] × [0, T], kde T > 0 je pevně zvolený čas, pak<br />
( )<br />
(9) |ε h,τ (x, t)| ≤ 1 M 2 1 τ + 1 M 12 2 h 2 = 1 τ M<br />
2 1 + 1 M 6 µ 2 ∀ x ∈ [h, 1−h]×[0, T −τ] .<br />
Vidíme tedy, že pro pevný poměr µ se ε h,τ chová jako O(τ) pro τ → 0. Říkáme, že<br />
schéma je prvního řádu přesnosti (lze též říci, že schéma je prvního řádu přesnosti v čase<br />
a druhého řádu přesnosti v prostoru).<br />
Poznámka 2 Jelikož u t = u xx , je u tt = u xxt = (u t ) xx = u xxxx , a tudíž<br />
( )<br />
ε h,τ (x, t) = 1 1 − 1 u<br />
2 6 µ xxxx (x, t) τ + O(τ 2 ) .<br />
Pro µ = 1 je tedy schéma druhého řádu přesnosti. Jedná se ale o velmi speciální případ,<br />
6<br />
se kterým se v obecnějších situacích nesetkáme.<br />
3
1.5 Konvergence explicitního schématu<br />
Věta 1 Uvažujme posloupnost (h i , τ i ) → (0, 0) pro i → ∞ a předpokládejme, že µ i ≡<br />
τ i /h 2 i ≤ 1 pro dostatečně velká i. Necht’ T > 0 a |u 2 tt| ≤ M 1 , |u xxxx | ≤ M 2 v [0, 1] ×[0, T].<br />
Pak pro libovolný bod (x, t) ∈ [0, 1]×[0, T] a libovolnou posloupnost (j i , n i ) ∈ N×N takovou,<br />
že j i h i → x, n i τ i → t, konvergují aproximace U n i<br />
j i<br />
generované explicitním schématem (6)–<br />
(8) k řešení u(x, t), přičemž tato konvergence je stejnoměrná v [0, 1] × [0, T].<br />
Důkaz. Uvažujme libovolnou dvojici h, τ (τ < T) a libovolný bod (x j , t n ) ∈ (0, 1)×(0, T).<br />
Definujme chybu aproximace<br />
e n j = Un j − u(x j, t n ).<br />
Pak<br />
e n+1<br />
j = e n j + µ [e n j+1 − 2 e n j + e n j−1] − τ ε n j , kde ε n j = ε h,τ (x j , t n ) .<br />
Definujeme-li ‖e n ‖ ∞ = max l=0,...,J |e n l |, pak<br />
‖e n+1 ‖ ∞ ≤ (|1 − 2 µ| + 2 µ) ‖e n ‖ ∞ + τ ‖ε n ‖ ∞ ≤ ‖e n ‖ ∞ + τ ‖ε n ‖ ∞ .<br />
Jelikož e 0 l = U 0 l − u 0 (x l ) = 0, l = 0, . . .,J, dostáváme<br />
Použitím (9) získáváme<br />
‖e n ‖ ∞ ≤ τ<br />
∑n−1<br />
k=0<br />
‖ε k ‖ ∞ ≤ t n<br />
max<br />
k=0,...,n−1 ‖εk ‖ ∞ .<br />
|U n j − u(x j, t n )| ≤ T ( 1 2 M 1 τ + 1<br />
12 M 2 h 2 ) .<br />
Tvrzení nyní plyne ze spojitosti u na [0, 1] × [0, T].<br />
□<br />
1.6 Fourierova analýza chyby<br />
Víme, že řešení úlohy (1)–(3) lze zapsat ve tvaru Fourierovy řady (4). Ukážeme, že<br />
v podobném tvaru lze zapsat i přibližné řešení splňující (6)–(8). Za tím účelem zapíšeme<br />
řady (4) a (5) pomocí komplexních exponenciel:<br />
(10)<br />
(11)<br />
u(x, t) =<br />
u 0 (x) =<br />
∞∑<br />
m=−∞<br />
∞∑<br />
m=−∞<br />
A m e i m π x−(m π)2 t ,<br />
A m e i m π x .<br />
Položíme-li u 0 (x) = −u 0 (−x) pro x ∈ [−1, 0), pak<br />
A m = 1 2<br />
∫ 1<br />
−1<br />
u 0 (x) e −i m π x dx.<br />
4
Snadno se ověří, že pro m ∈ N je A m = −A −m = −i a m /2. Budeme předpokládat, že<br />
Fourierova řada (11) je absolutně konvergentní, tj.<br />
∞∑<br />
(12)<br />
|A m | < ∞ .<br />
m=−∞<br />
Postačující podmínkou pro to je, aby funkce u 0 byla absolutně spojitá na [0, 1], (u 0 ) ′ ∈<br />
L 2 (0, 1) a u 0 (0) = u 0 (1) = 0 (konzistence s okrajovou podmínkou).<br />
Připomeňme, že funkce e i m π x−(m π)2 t jsou řešeními <strong>rovnice</strong> (1). Uvažujeme-li x = j h<br />
a t = n τ a označíme-li k = m π, můžeme se v analogii k tomu ptát, kdy<br />
U n j = ei k j h λ n<br />
řeší diferenční rovnici (6). Dosazením do (6) získáme<br />
e i k j h λ n+1 = e i k j h λ n [1 + µ (e i k h − 2 + e −i k h )],<br />
a tudíž<br />
(13) λ ≡ λ(k) = 1 − 2 µ [1 − cos(k h)] = 1 − 4 µ sin 2 k h<br />
2 .<br />
Číslo λ(k) se nazývá amplifikační (zesilující) faktor členu Fourierovy řady. Z výše uvedeného<br />
plyne, že přibližné řešení Uj n můžeme zapsat ve tvaru podobném jako u:<br />
(14)<br />
U n j =<br />
∞<br />
∑<br />
m=−∞<br />
A m e i m π j h [λ(m π)] n , j = 0, 1, . . ., J , n ≥ 0 .<br />
To lze ukázat následovně. Jelikož amplifikační faktory jsou omezené a platí (12), konverguje<br />
řada (14) absolutně, a jelikož každý její člen řeší diferenční rovnici (6), řeší i<br />
součet řady (14) rovnici (6). Pro n = 0 se řada (14) redukuje na řadu (11) s x = j h,<br />
a součet řady tudíž splňuje počáteční podmínku (7). Jelikož pro každé m ∈ N platí<br />
A m [λ(m π)] n = −A −m [λ(−m π)] n , je pro j = 0 a j = J součtem řady 0, a jsou tedy<br />
splněny i okrajové podmínky (8).<br />
Členy řady (14) s nízkými frekvencemi aproximují dobře odpovídající členy řady (10),<br />
nebot’<br />
e −k2 τ<br />
= 1 − k 2 τ + 1 2 k4 τ 2 − . . .<br />
λ(k) = 1 − 2 µ [ 1 2 (k h)2 − 1 24 (k h)4 + . . .] = 1 − k 2 τ + 1<br />
12 k4 τ h 2 − . . . .<br />
Tyto rozvoje představují alternativní prostředek pro vyšetřování chyby diskretizace, kterou<br />
nyní můžeme zapsat ve tvaru<br />
∞∑ e −(m π)2 τ − λ(m π)<br />
ε h,τ (x j , t n ) =<br />
A m e i m π x j−(m π) 2 t n<br />
.<br />
τ<br />
m=−∞<br />
Vidíme tedy, že máme alespoň přesnost prvního řádu, ale pro h 2 = 6 τ budeme mít<br />
přesnost druhého řádu (srv. pozn. 2). Snadno zjistíme, že<br />
(15)<br />
kde C(µ) závisí pouze na µ.<br />
|λ(k) − e −k2τ | ≤ C(µ) k 4 τ 2 ∀ k, τ > 0 ,<br />
5
Věta 2 Chyba U n j −u(x j , t n ) zůstává při pevných h a τ pro libovolnou počáteční podmínku<br />
u 0 splňující (12) omezená pro n → ∞ právě tehdy, když |λ(m π)| ≤ 1 ∀ m ∈ N.<br />
Důkaz. Jelikož řešení u je omezené pro t → ∞, je omezenost chyby ekvivalentní omezenosti<br />
U n j pro n → ∞. Je-li |λ(m π)| ≤ 1 ∀ m ∈ N, pak dle (14) a (12) je<br />
|U n j | ≤ ∞<br />
∑<br />
m=−∞<br />
|A m | |λ(m π)| n ≤<br />
∞∑<br />
m=−∞<br />
|A m | < ∞ .<br />
Naopak, necht’ existuje m 1 ∈ N tak, že |λ(m π)| > 1. Bud’ u 0 (x) = sin(m 1 πx). Pak<br />
Uj n = sin(m 1πjh) [λ(m 1 π)] n , a tudíž |Uj n | → ∞ pro n → ∞ a pro každé j ∈ {1, . . ., J −1}<br />
takové, že sin(m 1 πjh) ≠ 0.<br />
□<br />
Nyní vidíme význam podmínky µ ≤ 1 . Je-li tato podmínka splněna, pak |λ(m π)| ≤ 1<br />
2<br />
∀ m ∈ N, a řešení tudíž zůstává omezené. Je-li µ > 1 , pak pro některá m ∈ N je<br />
2<br />
λ(m π) < −1 a velikost příslušných členů v (14) s postupujícím časem roste nade všechny<br />
meze. Všimněme si, že λ(m π) < −1 pro m = (1 + 2 l) J, l ∈ Z, nebot’ pak λ(m π) =<br />
1 − 4 µ sin 2 ( π + l π) = 1 − 4 µ. Teoreticky je možné zvolit počáteční podmínku tak,<br />
2<br />
aby A m = 0, kdykoli λ(m π) < −1. Avšak to je velmi speciální situace a vpraxi by<br />
vlivem zaokrouhlovacích chyb vznikly malé nenulové koeficienty u všech takovýchto členů<br />
a s postupujícím časem by tyto členy opět neomezeně rostly. Schéma (6) je tedy stabilní<br />
pouze při splnění podmínky µ ≤ 1 . Říkáme, že schéma (6) je podmíněně stabilní.<br />
2<br />
Fourierovu metodu můžeme použít též k důkazu konvergence. Její výhoda spočívá<br />
v tom, že nemusíme předpokládat dostatečnou hladkost řešení u a stejnoměrnou omezenost<br />
u xxxx a u tt . Naším jediným předpokladem o úloze (1)–(3) nyní bude absolutní konvergence<br />
řady (11) pro počáteční podmínku u 0 . Počáteční podmínka tedy nemusí být<br />
hladká. Budeme předpokládat, že µ je pevné a µ ≤ 1 . Chybu aproximace můžeme<br />
2<br />
vyjádřit ve tvaru<br />
∞∑<br />
}<br />
e n j = Un j − u(x j, t n ) = A m e i m π x j<br />
{[λ(m π)] n − e −(m π)2 t n<br />
.<br />
m=−∞<br />
Bud’ ε > 0 libovolné a necht’ m 0 ∈ N je takové, že<br />
∑<br />
|m|>m 0<br />
|A m | ≤ ε 4 .<br />
Pak<br />
|e n j | ≤ ε 2 + ∑<br />
|m|≤m 0<br />
n |A m | |λ(m π) − e −(m π)2 τ |<br />
kde jsem vyuužili toho, že pro libovolná čísla λ 1 , λ 2 ∈ [−1, 1] platí |λ n 1 −λn 2 | ≤ n |λ 1 −λ 2 |.<br />
Z nerovnosti (15) plyne<br />
|e n j | ≤ ε 2 + n τ2 C(µ) π 4 ∑<br />
|m|≤m 0<br />
|A m | m 4<br />
Vidíme tedy, že pro τ dostatečně malé je |e n j | ≤ ε ∀ (x j, t n ) ∈ [0, 1]×[0, T], nebot’ n τ ≤ T.<br />
6
Při aplikaci Fourierovy <strong>metody</strong> jsme reprezentovali přibližné řešení pomocí nekonečné<br />
řady (14), nebot’ ji bylo možné snadno srovnávat s řadou pro přesné řešení. Jelikož však<br />
na uvažované prostorové síti s J + 1 uzly lze reprezentovat jen konečně mnoho různých<br />
frekvencí, lze přibližné řešení vyjádřit jako lineární kombinaci 2 J po sobě jdoucích funkcí<br />
(16)<br />
e i m π j h [λ(m π)] n .<br />
Snadno ověříme, že tyto funkce se skutečně nezmění, nahradíme-li m hodnotou m + 2 J.<br />
Můžeme tedy např. uvažovat U n j jakožto lineární kombinaci funkcí (16) odpovídajících<br />
m = −(J − 1), −(J − 2), . . ., −1, 0, 1, . . ., J .<br />
Nejvyšší frekvence, která se může na síti vyskytnout odpovídá m = J. Příslušná prostorová<br />
funkce je e i π j ; tato funkce střídá hodnoty ±1 v po sobě jdoucích uzlech. Z (13)<br />
vidíme, že se jedná o nejméně stabilní člen se zesilujícím faktorem λ(J π) = 1−4 µ. Tento<br />
člen při µ > 1 roste nejrychleji a může převládnout nad všemi ostatními členy v rozvoji<br />
2<br />
řešení.<br />
1.7 Implicitní metoda pro úlohu (1)–(3)<br />
Podmínka stability τ ≤ h 2 /2 plynoucí z věty 2 pro explicitní schéma (6) je velmi vážné<br />
omezení, které implikuje, že bude třeba velmi mnoho časových kroků. Navíc, budeme-li<br />
muset zmenšit h pro zvýšení přesnosti, velmi se zvýší celková výpočetní náročnost, nebot’<br />
budeme muset též podstatně zmenšit τ. Ukážeme nyní, že zmíněných omezení se můžeme<br />
zbavit použitím zpětné diference pro diskretizaci časové derivace v (1), tj. použitím<br />
schématu<br />
U n+1<br />
j<br />
− Uj<br />
n<br />
τ<br />
Toto schéma lze přepsat do tvaru<br />
= Un+1 j+1 − 2 Un+1 j + U n+1<br />
j−1<br />
.<br />
h 2<br />
(17)<br />
−µ U n+1<br />
j−1<br />
+ (1 + 2 µ) Un+1 j − µ U n+1<br />
j+1 = Un j , j = 1, 2, . . ., J − 1 , n ≥ 0 .<br />
Jedná se o příklad implicitní <strong>metody</strong>. Danou hodnotu U n+1<br />
j nyní nelze určit nezávisle na<br />
ostatních hodnotách na časové hladině t n+1 , nýbrž všechny tyto hodnoty získáme současně<br />
vyřešením soustavy J − 1 lineárních rovnic pro J − 1 neznámých.<br />
Stabilitu schématu (17) s počátečními a okrajovými podmínkami (7) a (8) můžeme<br />
vyšetřovat Fourierovou metodou analogicky jako pro schéma (6). Snadno zjistíme, že<br />
funkce Uj n = ei k j h λ n splňuje (17) právě tehdy, když<br />
λ ≡ λ(k) =<br />
1<br />
.<br />
1 + 4 µ sin 2 k h<br />
2<br />
Tedy λ(k) ∈ (0, 1) pro libovolné µ > 0 a libovolné k ∈ R.<br />
nepodmíněně stabilní.<br />
Říkáme, že metoda je<br />
7
1.8 Thomasův algoritmus<br />
Soustava (17) je tridiagonální a můžeme ji zapsat ve tvaru<br />
−a j U j−1 + b j U j − c j U j+1 = d j , j = 1, 2, . . ., J − 1 ,<br />
kde<br />
Budeme předpokládat, že<br />
U 0 = U J = 0 .<br />
(18)<br />
a j > 0 , b j > 0 , c j > 0 , b j > a j + c j ,<br />
což splňuje (17). Soustavu rovnic nejprve převedeme na soustavu s horní trojúhelníkovou<br />
maticí tvaru<br />
(19)<br />
U j − e j U j+1 = f j , j = 1, 2, . . ., J − 1 .<br />
Máme-li v tomto tvaru k–tou rovnici a chceme-li upravit k + 1–vou rovnici, tj.<br />
−a k+1 U k + b k+1 U k+1 − c k+1 U k+2 = d k+1 ,<br />
pak k této rovnici přičteme rovnici (19) s j = k přenásobenou a k+1 , čímž získáme<br />
Algoritmus je tedy následující<br />
(b k+1 − a k+1 e k ) U k+1 − c k+1 U k+2 = d k+1 + a k+1 f k .<br />
e 1 := c 1 /b 1 , f 1 := d 1 /b 1<br />
for j = 2, . . ., J − 2 do<br />
e j := c j /(b j − a j e j−1 )<br />
f j := (d j + a j f j−1 )/(b j − a j e j−1 )<br />
enddo<br />
f J−1 := (d J−1 + a J−1 f J−2 )/(b J−1 − a J−1 e J−2 )<br />
Řešení U j pak jednoduše určíme z rovnic (19).<br />
Snadno lze ověřit, že e j ∈ (0, 1), j = 1, 2, . . ., J − 2. Algoritmus lze tedy vždy provést<br />
a je numericky stabilní (nevede ke vzrůstajícím chybám).<br />
Uvedený algoritmus potřebuje pro vyřešení soustavy (17) na jeden uzel tři sčítání, tři<br />
násobení a dvě dělení, zatímco explicitní schéma (6) vyžaduje tři sčítání a dvě násobení<br />
(popř. čtyři sčítání a jedno násobení). Výpočetní náročnost implicitního schématu je tedy<br />
asi dvojnásobná oproti explicitnímu schématu. Důležité však je, že lze volit mnohem delší<br />
časové kroky (aniž by se zhoršila přesnost), nebot’ nyní není žádná podmínka stability<br />
omezující volbu τ. Proto je celková výpočetní náročnost implicitní <strong>metody</strong> pro dosažení<br />
zvoleného času T mnohem menší než u explicitní <strong>metody</strong>.<br />
8
1.9 Dvoukrokové <strong>metody</strong><br />
Výše uvažované <strong>metody</strong> pro řešení úlohy (1)–(3) jsou druhého řádu přesnosti v prostoru,<br />
avšak obecně pouze prvního řádu přesnosti v čase. Nabízí se proto uvažovat pro<br />
diskretizaci časové derivace místo jednostranné diference centrální diferenci. To vede<br />
v nejjednodušším případě ke schématu<br />
(20)<br />
U n+1<br />
j<br />
− U n−1<br />
j<br />
2 τ<br />
= Un j+1 − 2 Un j + Un j−1<br />
h 2 , j = 1, 2, . . ., J − 1 , n ≥ 1 .<br />
Snadno zjistíme, že chyba diskretizace je v tomto případě druhého řádu v čase i v prostoru.<br />
Uvedené schéma je příkladem dvoukrokového schématu, nebot’ k určení hodnot U n+1<br />
j<br />
nestačí znát hodnoty Uj n , ale potřebujeme též hodnoty Un−1 j . Přibližné řešení tedy závisí<br />
nejen na počáteční podmínce, ale též na hodnotách v čase t 1 . Tyto hodnoty bud’ musíme<br />
předepsat, a nebo musíme stanovit postup, jak je určit. Obvykle se pro určení hodnot Uj<br />
1<br />
použije nějaké jednokrokové schéma. Metody, které zahrnují více než dvě časové hladiny,<br />
se souhrnně nazývají vícekroková schémata.<br />
Hodnoty přibližného řešení v čase t 1 zapíšeme ve tvaru<br />
(21)<br />
U 1 j =<br />
∞<br />
∑<br />
m=−∞<br />
B m e i m π j h , j = 0, 1, . . ., J ,<br />
a opět předpokládáme, že řada konverguje absolutně a že B m = −B −m ∀ m ∈ Z. Podobně<br />
jako v odstavci 1.6 hledejme nejprve řešení diferenčního schématu ve tvaru se ”separovanými<br />
proměnnými”, tj. položme<br />
U n j = e i k j h Û n (k) ,<br />
kde k = m π, m ∈ Z. Dosazením do (20) získáme<br />
(22)<br />
Û n+1 (k) + 2 q(k) Ûn (k) − Ûn−1 (k) = 0 , n ≥ 1 , kde q(k) = 4 τ<br />
h 2 sin2 k h<br />
2 .<br />
Charakteristický polynom λ 2 +2 q(k) λ−1 této soustavy diferenčních rovnic má dva různé<br />
reálné kořeny λ ± = −q(k) ± √ q(k) 2 + 1, a tudíž obecné řešení soustavy (22) je<br />
(23)<br />
Û n (k) = α + (k) λ + (k) n + α − (k) λ − (k) n ,<br />
kde koeficienty α ± jsou libovolná komplexní čísla. Tato čísla určíme tak, aby platilo<br />
Û 0 (m π) = A m a Û1 (m π) = B m . Z toho plyne<br />
(24)<br />
α + (m π) = B m − A m λ − (m π)<br />
λ + (m π) − λ − (m π) ,<br />
α −(m π) = A m λ + (m π) − B m<br />
λ + (m π) − λ − (m π) .<br />
Řešení diskrétního problému (20), (7), (8), (21) je pak dáno řadou<br />
(25)<br />
U n j =<br />
∞<br />
∑<br />
m=−∞<br />
e i m π j h Û n (m π) , j = 0, 1, . . ., J , n ≥ 0 .<br />
9
Bohužel složky řešení odpovídající kořenu λ − jsou nestabilní, nebot’ λ − (k) < −1, kdykoli<br />
sin( 1 k h) ≠ 0. Schéma (20) je tedy bezcenné, nebot’ je pro libovolnou volbu h a τ<br />
2<br />
nestabilní.<br />
Poznamenejme, že pokud charakteristický polynom soustavy diferenčních rovnic odpovídajících<br />
dvoukrokovému schématu má pro dané k jeden dvojnásobný kořen, tj. λ + (k) =<br />
λ − (k) ≡ λ(k), má obecné řešení soustavy diferenčních rovnic tvar<br />
Û n (k) = α(k) λ(k) n + β(k) n λ(k) n−1 ,<br />
kde α(k), β(k) ∈ C. V tomto případě tedy je<br />
(26)<br />
Û n (m π) = A m λ(m π) n + [B m − A m λ(m π)] n λ(m π) n−1 .<br />
Pokud je koeficient u druhého členu nenulový, je ke stabilitě nutné, aby |λ(m π)| < 1,<br />
nebot’ jinak Ûn poroste lineárně v n.<br />
Uvedená analýza schématu (20) samozřejmě neznamená, že každé dvoukrokové explicitní<br />
schéma je vždy nestabilní. Uvažujme např. schéma<br />
(27)<br />
U n+1<br />
j<br />
− U n−1<br />
j<br />
2 τ<br />
= δ2 x Un j + δ2 x Un−1 j<br />
, j = 1, 2, . . ., J − 1 , n ≥ 1 .<br />
2 h 2<br />
V tomto případě získáme soustavu diferenčních rovnic<br />
(28)<br />
Û n+1 (k) + q(k) Ûn (k) + (q(k) − 1) Ûn−1 (k) = 0 , n ≥ 1 ,<br />
jejíž charakteristický polynom má kořeny λ + (k) = 1 − q(k) a λ − (k) = −1. Je-li q(k) ≠ 2,<br />
jsou oba kořeny různé a Ûn (k) je opět dáno vztahy (23) a (24). Zřejmě je |λ ± (k)| ≤ 1 právě<br />
tehdy, když q(k) ∈ [0, 2), z čehož plyne podmínka stability τ ≤ h 2 /2. Je-li q(k) = 2, je<br />
λ + (k) = λ − (k) a Ûn (k) je dáno vztahem (26) s λ(k) = −1. Případ q(m π) = 2 za uvedené<br />
podmínky stability může nastat pouze tehdy, je-li m = (2 l + 1)J, kde l ∈ Z. Členy<br />
s m = (2 l + 1)J se však v řešení neprojeví, nebot’ řadu (25) můžeme díky vlastnosti<br />
Û n (m π) = −Ûn (−m π) ∀ m ∈ Z zapsat ve tvaru<br />
U n j = 2 i<br />
∞∑<br />
m=1<br />
sin(m π j h) Ûn (m π) , j = 0, 1, . . ., J , n ≥ 0 .<br />
Schéma (27) je tedy pro τ ≤ h 2 /2 stabilní.<br />
Stabilita <strong>metody</strong> však nemusí znamenat, že diskrétní řešení bude bez oscilací. Jak<br />
jsme viděli, platí v případě q(k) ≠ 2<br />
Označíme-li<br />
V n<br />
j =<br />
∞∑<br />
m=−∞<br />
q(mπ)
můžeme psát<br />
Uj n = V j n + (−1) n W j , j = 0, 1, . . ., J , n ≥ 0 .<br />
Sít’ová funkce W j nezávisí na čase, a pokud je nenulová, bude pro velké n představovat<br />
dominantní složku řešení, nebot’ Vj<br />
n → 0 pro n → ∞. Obvykle se projeví ve formě<br />
oscilací, jejichž velikost může být i větší než jsou hodnoty počáteční podmínky, jelikož<br />
velikost α + (m π) a α − (m π) může být podstatně větší než |A m |. Ze stability <strong>metody</strong> však<br />
plyne, že tyto oscilace nebudou pro n → ∞ narůstat. Navíc se jejich velikost zmenší,<br />
pokud zjemníme sít’.<br />
Časově nezávislá oscilující složka nebude v řešení schématu (27) přítomna, pokud<br />
řešení v čase t 1 určíme pomocí schématu (6). Podle (14) a (13) je pak totiž B m =<br />
A m (1 − q(m π)) = A m λ + (m π), a tudíž α − (m π) = 0 pro každé m ∈ Z.<br />
1.10 Disipace<br />
Z diskuse v předchozím odstavci plyne, že je žádoucí, aby diferenční schéma vedlo v každém<br />
časovém kroku k poklesu amplitud vysokofrekvenčních složek řešení, tj. aby velikost<br />
příslušných amplifikačních faktorů byla menší než 1. Tento pokles vysokofrekvenčních<br />
oscilací se nazývá disipace a je charakterizován v následující definici.<br />
Definice 1 Diferenční schéma je disipativní řádu 2 r (má disipaci řádu 2 r), jestliže existuje<br />
kladná konstanta C nezávislá na h a τ taková, že každý amplifikační faktor λ j (k)<br />
splňuje<br />
(29) |λ j (k)| ≤ 1 − C sin 2r k h<br />
2 .<br />
Poznamenejme, že pro každé k uvažujeme obecně více amplifikačních faktorů, abychom<br />
do definice zahrnuli i vícekroková schémata. Pro ověřování platnosti podmínky (29) může<br />
být užitečné si všimnout, že (29) je ekvivalentní podmínce<br />
|λ j (k)| 2 ≤ 1 − C ′ sin 2r k h<br />
2<br />
s konstantou C ′ nezávislou na h a τ. Disipativnost schématu je případě parabolických<br />
rovnic velmi přirozeným požadavkem, nebot’ pak dochází v průběhu času ke zhlazování<br />
diskrétního řešení, stejně jako je tomu u řešení aproximované diferenciální <strong>rovnice</strong>.<br />
Použitím vztahu (13) snadno zjistíme, že explicitní schéma (6) je disipativní řádu 2<br />
pro µ ∈ [µ 0 , µ 1 ] ⊂ (0, 1), kde µ 2 0 a µ 1 jsou konstanty nezávislé na h a τ. Proto se obvykle<br />
nepoužívá volba µ = 1 , při níž je schéma (6) ještě stabilní. Implicitní schéma (17) je<br />
2<br />
disipativní řádu 2 , je-li µ ≥ µ 0 > 0, kde µ 0 je konstanta nezávislá na h a τ. Schéma (27)<br />
samozřejmě disipativní není.<br />
1.11 θ–metoda (θ–schéma, metoda váženého průměru)<br />
Uvažujeme-li vážený průměr explicitního schématu (6) a implicitního schématu (17),<br />
získáme šestibodové schéma<br />
Uj<br />
n+1<br />
(30) − Uj n = µ [θ δ2 x Un+1 j + (1 − θ) δx 2 Un j ] , j = 1, 2, . . ., J − 1 , n ≥ 0 .<br />
11
Budeme předpokládat, že θ ∈ [0, 1]. Pro θ = 0 získáváme explicitní schéma (6) a pro<br />
θ = 1 plně implicitní schéma (17). Pro libovolné θ ∈ (0, 1] je k určení hodnot přibližného<br />
řešení v čase t n+1 nutno vyřešit tridiagonální soustavu lineárních rovnic<br />
−θ µ U n+1<br />
j−1<br />
+ (1 + 2 θ µ) Un+1 j − θ µ U n+1<br />
j+1 = [1 + (1 − θ) µ δ2 x ] Un j<br />
, j = 1, 2, . . ., J − 1 .<br />
Koeficienty splňují nerovnosti (18), a můžeme tedy použít Thomasův algoritmus.<br />
Stabilitu vyšetříme opět pomocí Fourierovy <strong>metody</strong>. Dosazením Uj<br />
n = e i k j h λ n do<br />
(30) získáme<br />
k h<br />
1 − 4 (1 − θ) µ sin2<br />
2<br />
λ = .<br />
1 + 4 θ µ sin 2 k h<br />
2<br />
Zřejmě λ < 1. Nestabilita se může objevit pouze pokud λ < −1, což nastane právě tehdy,<br />
když<br />
4 (1 − 2 θ) µ sin 2 k h<br />
2 > 2 .<br />
Z toho plyne, že<br />
⎧<br />
⎪⎨ Je-li θ ∈ [0, 1 ), pak (30) je stabilní ⇐⇒ µ ≤ 1<br />
2<br />
(31)<br />
2 (1 − 2 θ) .<br />
⎪⎩<br />
Je-li θ ∈ [ 1 , 1], pak (30) je stabilní ∀ µ > 0 .<br />
2<br />
V prvním případě je tedy schéma podmíněně stabilní, v druhém nepodmíněně stabilní.<br />
Chybu diskretizace schématu (30) je vhodné počítat v čase t n+1/2 ≡ (n + 1 ) τ, tj.<br />
2<br />
definujeme<br />
ε n+1/2<br />
j = ε h,τ (x j , t n+1/2 ) = u(x j, t n+1 ) − u(x j , t n )<br />
− θ δ2 x u(x j, t n+1 ) + (1 − θ) δx 2 u(x j, t n )<br />
.<br />
τ<br />
h 2<br />
Tedy<br />
ε h,τ (x, t) = δ t u(x, t)<br />
τ<br />
= δ t u(x, t)<br />
τ<br />
Dosazením Taylorových rozvojů získáme<br />
− θ δ2 x u(x, t + τ 2 ) + (1 − θ) δ2 x u(x, t − τ 2 )<br />
h 2<br />
− (θ − 1) δ t δx 2 u(x, t)<br />
− δ2 x u(x, t + τ ) + 2 δ2 x u(x, t − τ ) 2<br />
.<br />
2<br />
h 2 2 h 2<br />
ε h,τ (x, t) = [u t + 1<br />
24 u ttt τ 2 + . . .] − (θ − 1 2 ) [u xxt τ + 1 12 u xxxxt h 2 τ + . . .]<br />
−[u xx + 1<br />
12 u xxxx h 2 + 2 6! u xxxxxx h 4 + 1 8 u xxtt τ 2 + . . .].<br />
Použitím (1) zjišt’ujeme, že obecně ε h,τ = O(τ +h 2 ), avšak pro θ = 1 je ε 2 h,τ = O(τ 2 +h 2 ).<br />
Pro θ = 1 je tedy schéma (30) druhého řádu přesnosti v prostoru i v čase a nazývá se<br />
2<br />
schéma Crankovo–Nicolsonové. Jelikož je nepodmíněně stabilní, můžeme uvažovat h =<br />
O(τ). Pak ε h,τ = O(τ 2 ) a jsme tedy schopni dosáhnout dobrou přesnost při malé výpočetní<br />
náročnosti. Při volbě h = O(τ) však schéma Crankovo–Nicolsonové není disipativní, což<br />
12
způsobuje, že při nehladké počáteční podmínce může být méně přesné než plně implicitní<br />
schéma (17), které je disipativní řádu 2.<br />
Metodu druhého řádu přesnosti v čase lze získat též pro<br />
θ = 1 2 − h2<br />
12 τ , tj. µ = 1<br />
6 (1 − 2 θ) .<br />
(Musí být h 2 ≤ 6 τ, aby bylo θ ≥ 0.) Při této volbě je dle (31) schéma (30) stabilní a platí<br />
ε h,τ = O(τ 2 +h 4 ). Opět tedy můžeme používat velké časové kroky a metoda bude přitom<br />
pro hladké počáteční podmínky přesná a stabilní. Při volbě h = O(τ) však schéma opět<br />
není disipativní a pro malé h je blízké schématu Crankovu–Nicolsonové.<br />
I když lze odvodit řadu dalších schémat pro řešení úlohy (1)–(3), nejpoužívanější je<br />
v praxi schéma (30). Nejlepší volba parametru θ však závisí na řešeném problému a často<br />
není jasné, které schéma je opravdu nejlepší.<br />
1.12 Princip maxima a konvergence<br />
Věta 3 θ–schéma (30) s θ ∈ [0, 1] a µ (1 − θ) ≤ 1 2 dává přibližné řešení {Un j } splňující<br />
kde<br />
U min ≤ U n j ≤ U max ,<br />
U min = min{U m 0 , 0 ≤ m ≤ n ; U 0 j , 0 ≤ j ≤ J ; U m J , 0 ≤ m ≤ n} ,<br />
U max = max{U m 0 , 0 ≤ m ≤ n ; U0 j , 0 ≤ j ≤ J ; Um J , 0 ≤ m ≤ n} .<br />
Důkaz. Schéma (30) zapíšeme ve tvaru<br />
(32)<br />
(1 + 2 θ µ) U n+1<br />
j<br />
= θ µ (Uj−1 n+1 + Un+1 j+1 ) + (1 − θ) µ (Un j−1 + Uj+1) n + [1 − 2 (1 − θ) µ] Uj n .<br />
Koeficienty na pravé straně jsou nezáporné a jejich součet je (1 + 2 θ µ) (koeficienty před<br />
dvojčleny počítáme dvakrát). Předpokládejme, že U nabývá svého maxima ve vnitřním<br />
bodě a necht’ toto maximum je U n+1<br />
j . Pak hodnoty U na pravé straně vztahu (32) jsou<br />
menší nebo rovny U n+1<br />
j , a jelikož součet koeficientů je (1 + 2 θ µ), musí být U = U n+1<br />
j<br />
v každém z pěti sousedních uzlů v (32), pokud příslušný koeficient je nenulový. Je-li tedy<br />
θ ≠ 0, dostáváme U n+1<br />
j = U0 n+1 = U n+1<br />
J<br />
. Je-li θ = 0, můžeme zkonstruovat posloupnost<br />
bodů, až dosáhneme hranice. Tedy U n+1<br />
j = U max . Stejným způsobem lze postupovat pro<br />
minimum.<br />
□<br />
Věta 4 Uvažujme posloupnost (h i , τ i ) → (0, 0) pro i → ∞ a necht’ µ i (1 −θ) ≤ 1 2 . Necht’<br />
chyba diskretizace odpovídající schématu (30) konverguje k nule stejnoměrně v množině<br />
[0, 1] × [0, T]. Necht’ chyby v okrajových a počátečních podmínkách rovněž konvergují<br />
stejnoměrně k nule pro i → ∞. Pak aproximace dané schématem (30) konvergují stejnoměrně<br />
v [0, 1] × [0, T] k řešení <strong>rovnice</strong> (1) s konsistentními okrajovými a počátečními<br />
podmínkami.<br />
13
Důkaz. Dle definice chyby diskretizace je pro e n j = Uj n − u(x j , t n )<br />
(33) (1 + 2 θ µ) e n+1<br />
j = θ µ (e n+1<br />
j−1 + en+1 j+1 ) + (1 − θ) µ (en j−1 + en j+1 )<br />
+ [1 − 2 (1 − θ) µ] e n j − τ εn+1/2 j , j = 1, 2, . . ., J − 1, n = 0, 1, 2, . . . .<br />
Předpokládejme nejprve, že e 0 j = 0, j = 0, . . .,J, en 0 = en J<br />
= 0, n = 0, 1, 2, . . . a označme<br />
Pak<br />
‖e n ‖ ∞ = max<br />
j=0,...,J |en j | , ‖ε n+1/2 ‖ ∞ = max<br />
j=1,...,J−1 |εn+1/2 j | .<br />
(1 + 2 θ µ) ‖e n+1 ‖ ∞ ≤ 2 θ µ ‖e n+1 ‖ ∞ + ‖e n ‖ ∞ + τ ‖ε n+1/2 ‖ ∞ ,<br />
a tudíž ‖e n+1 ‖ ∞ ≤ ‖e n ‖ ∞ + τ ‖ε n+1/2 ‖ ∞ , z čehož plyne<br />
‖e n ‖ ∞ ≤ τ<br />
∑n−1<br />
m=0<br />
‖ε m+1/2 ‖ ∞ ≤ n τ<br />
max<br />
m=0,...,n−1 ‖εm+1/2 ‖ ∞ → 0 pro i → ∞ .<br />
Předpokládejme nyní, že chyby v okrajových a počátečních podmínkách jsou nenulové,<br />
tj.<br />
(34) e 0 j = η0 j , j = 0, . . .,J , en 0 = ηn 0 , en J = ηn J , n = 0, 1, 2, . . . .<br />
Pak e n j = ēn j +ẽn j , kde ēn j splňuje (33) s homogenními počátečními a okrajovými podmínkami<br />
a ẽ n j splňuje (32) a (34). Pak ‖ē n ‖ ∞ splňuje předchozí odhad a ‖ẽ n ‖ ∞ ≤ max{|η0 m |, 0 ≤<br />
m ≤ n ; |ηj 0|, 0 ≤ j ≤ J ; |ηm J |, 0 ≤ m ≤ n} dle předchozí věty.<br />
□<br />
Podmínka pro platnost principu maxima je mnohem více omezující než podmínka<br />
stability plynoucí z Fourierovy analýzy. Například pro θ = 1 dostáváme µ ≤ 1.<br />
2<br />
Princip maxima představuje alternativní prostředek pro získání podmínek stability.<br />
Oproti Fourierově analýze má tu výhodu, že ho lze snadno aplikovat i na úlohy s nekonstantními<br />
koeficienty. Avšak snadné je odvodit pouze postačující podmínky stability.<br />
1.13 Obecnější okrajové podmínky<br />
Nahrad’me Dirichletovu okrajovou podmínku v bodě x = 0 okrajovou podmínkou<br />
(35)<br />
u x (0, t) = α(t) u(0, t) + g(t) ∀ t > 0 ,<br />
kde α(t) ≥ 0.<br />
Nejjednodušší aproximace okrajové podmínky (35) v čase t = t n je<br />
z čehož plyne<br />
U n 1 − U n 0<br />
h<br />
= α n U n 0 + gn , α n ≡ α(t n ), g n ≡ g(t n ) ,<br />
U n 0 = β n U n 1 − β n g n h , kde β n =<br />
1<br />
1 + α n h .<br />
(36)<br />
14
Nyní můžeme definovat θ–schéma stejným způsobem jako výše. Soustava je opět tridiagonální<br />
a má nyní J rovnic. Rovnice (36) je první rovnicí této soustavy.<br />
Z (36) plyne, že v prvním vnitřním bodě je<br />
Dostáváme tedy<br />
z čehož plyne<br />
δ 2 x U n 1 = U n 2 − 2 U n 1 + U n 0 = U n 2 − (2 − β n ) U n 1 − β n g n h .<br />
U n+1<br />
1 − U n 1 = µ θ {Un+1 2 − (2 − β n+1 ) U n+1<br />
1 − β n+1 g n+1 h}<br />
+ µ (1 − θ) {U n 2 − (2 − β n ) U n 1 − β n g n h} ,<br />
[1 + θ µ (2 − β n+1 )] U n+1<br />
1 = [1 − (1 − θ) µ (2 − β n )] U n 1 + θ µ Un+1 2 + (1 − θ) µ U n 2<br />
−µh[θ β n+1 g n+1 + (1 − θ) β n g n ] .<br />
Definujeme-li obvyklým způsobem chybu diskretizace ε n+1/2<br />
1 , platí pro chybu aproximace<br />
e n 1 = U n 1 − u(x 1 , t n )<br />
[1 + θ µ (2 − β n+1 )] e n+1<br />
1 = [1 − (1 − θ) µ (2 − β n )] e n 1 + θ µ e n+1<br />
2 + (1 − θ) µ e n 2 − τ ε n+1/2<br />
1 .<br />
Jelikož se tato <strong>rovnice</strong> liší od rovnic v ostatních uzlech sítě, nemůžeme použít Fourierovu<br />
analýzu chyby. Lze však využít princip maxima, nebot’ pro µ (1−θ) ≤ 1 jsou všechny koeficienty<br />
nezáporné a součet koeficientů napravo není větší než koeficient nalevo. Můžeme<br />
2<br />
proto odhadnout chybu aproximace pomocí chyby diskretizace stejně jako výše.<br />
Zbývá odhadnout ε n+1/2<br />
1 . Uvažujme případ θ = 0 (explicitní metoda). Pak<br />
U n+1<br />
1 − U n 1<br />
τ<br />
Tedy (při označení u n j = u(x j , t n ))<br />
ε n+1/2<br />
1 = un+1<br />
1 − u n 1<br />
τ<br />
= δ2 x U1<br />
n + 1 h 2 h 2 [−Un 0 + βn U1 n − βn g n h]<br />
[ ]<br />
= δ2 x U1<br />
n + βn U<br />
n<br />
1 − U0<br />
n − α n U<br />
h 2<br />
0 n h h<br />
− gn .<br />
− δ2 x un 1<br />
h 2<br />
− βn<br />
h<br />
[<br />
∆−x u n 1<br />
h<br />
− α n u n 0 − g n ]<br />
= [u t + 1 2 u tt τ + . . .](x 1 , t n ) − [u xx + 1 12 u xxxx h 2 + . . .](x 1 , t n )<br />
− βn<br />
h [u x + 1 2 u xx h + . . . − α u − g](x 0 , t n )<br />
≈ − 1 2 βn u xx (x 0 , t n ) .<br />
Chyba diskretizace tudíž nekonverguje k nule. Důkaz konvergence chyby aproximace lze<br />
sice zachránit, avšak diskrétní řešení je zatíženo poměrně velkou chybou.<br />
Zkusme jiný postup. Zavedeme fiktivní hodnotu U−1 n vně [0, 1], takže okrajovou<br />
podmínku (35) můžeme aproximovat vztahem<br />
(37)<br />
U n 1 − Un −1<br />
2 h<br />
= α n U n 0 + gn .<br />
15
V bodě x = 0 aproximujeme rovnici jako ve vnitřních bodech a za U n −1 dosadíme z (37).<br />
Pak<br />
z čehož plyne<br />
U0 n+1 − U0 n = µ θ [Un+1 1 − 2 U0 n+1 + (U1 n+1 − 2 h α n+1 U0 n+1 − 2 h g n+1 )]<br />
+ µ (1 − θ) [U1 n − 2 U0 n + (U1 n − 2 h α n U0 n − 2 h g n )] ,<br />
[1 + 2 θ µ (1 + α n+1 h)] U n+1<br />
0 = [1 − 2 (1 − θ) µ (1 + α n h)] U n 0<br />
+ 2 θ µ U n+1<br />
1 + 2 (1 − θ) µ U n 1 − 2 µ h [θ g n+1 + (1 − θ) g n ] .<br />
Pokud µ (1−θ) (1+α n h) ≤ 1 , je možno chybu aproximace opět odhadnout pomocí chyby<br />
2<br />
diskretizace postupem založeným na principu maxima. Chyba diskretizace je v tomto<br />
případě ε n+1/2<br />
0 = O(τ + h).<br />
1.14 Obecnější lineární <strong>rovnice</strong><br />
Uvažujme nejdříve rovnici<br />
u t = bu xx ∀ t > 0, x ∈ (0, 1) ,<br />
kde b = b(x, t) > 0. Explicitnímu schématu (6) pak odpovídá diskretizace<br />
kde b n j = b(x j , t n ). Stejně jako dříve získáme<br />
U n+1<br />
j = U n j + τ h 2 bn j (Un j+1 − 2 Un j + Un j−1 ) ,<br />
ε h,τ (x, t) = 1 2 u tt τ − 1<br />
12 b(x, t) u xxxx h 2 + . . . .<br />
Konvergenci lze dokázat stejným způsobem jako pro b = 1, ale podmínku stability je<br />
třeba nahradit podmínkou<br />
τ<br />
h 2 b(x, t) ≤ 1 2 .<br />
Odhad chyby pak je<br />
|U n j − u(x j, t n )| ≤ T ( 1 2 M 1 τ + 1<br />
12 B M 2 h 2 ) ,<br />
kde B ≥ b(x, t) ∀ (x, t) ∈ [0, 1] × [0, T].<br />
θ–schéma lze definovat různými způsoby. Jednou možností je uvažovat<br />
U n+1<br />
j<br />
− U n j = τ h 2 b∗ [θ δ 2 x Un+1 j + (1 − θ) δ 2 x Un j ] ,<br />
kde b ∗ je nějaká vhodná hodnota. Nabízí se položit b ∗ = b n+1/2<br />
j . Rozvoj chyby diskretizace<br />
je pak stejný jako dříve až na přenásobení faktorem b. Rovněž konvergenci lze dokázat<br />
jako dříve pomocí principu maxima, avšak potřebujeme, aby<br />
τ<br />
h 2 (1 − θ) b(x, t) ≤ 1 2 .<br />
16
Je též možné položit b ∗ = 1 2 (bn+1 j + b n j ), což nezhorší odhad chyby diskretizace, nebot’<br />
b ∗ = [b + 1 b 4 tt τ 2 + . . .](x j , t n+1/2 ).<br />
Nejobecnější tvar lineární parabolické <strong>rovnice</strong> druhého řádu je<br />
(38)<br />
u t = bu xx − a u x + c u + d ∀ t > 0, x ∈ (0, 1) ,<br />
kde a = a(x, t), b = b(x, t), c = c(x, t), d = d(x, t) jsou dané funkce, přičemž b > 0.<br />
Explicitní schéma je přirozené uvažovat ve tvaru<br />
(39)<br />
U n+1<br />
j<br />
− U n j<br />
τ<br />
= b n j<br />
U n j+1 − 2 Un j + Un j−1<br />
h 2<br />
− a n j<br />
U n j+1 − Un j−1<br />
2 h<br />
+ c n j U n j + d n j .<br />
Označíme-li<br />
µ n j = τ h 2 bn j , ν n j = τ h an j ,<br />
zjistíme, že chyba aproximace splňuje<br />
e n+1<br />
j = (1 − 2 µ n j + τ cn j ) en j + (µn j − 1 2 νn j ) en j+1 + (µn j + 1 2 νn j ) en j−1 − τ εn j .<br />
Abychom při odhadu chyby mohli postupovat jako dříve, musíme zajistit, že koeficienty<br />
jsou nezáporné a jejich součet není větší než 1. To vyžaduje<br />
(40)<br />
1<br />
2 |νn j | ≤ µ n j , 2 µ n j − τ c n j ≤ 1 , c n j ≤ 0 .<br />
Speciálně (dle první podmínky) musí být<br />
h |an j |<br />
2 b n j<br />
≤ 1<br />
a toto omezení implikuje omezení τ prostřednictvím druhé podmínky:<br />
τ ≤<br />
h 2<br />
2 b n j − h2 c n j<br />
.<br />
V mnoha úlohách z praxe je |a n j | ≫ b n j , což vyžaduje velmi malé prostorové a časové<br />
kroky.<br />
Jednoduchý způsob, jak tento problém napravit, je použít aproximace<br />
⎧<br />
⎪⎨<br />
u x (x j , t n ) ≈<br />
⎪⎩<br />
U n j − Un j−1<br />
h<br />
U n j+1 − U n j<br />
h<br />
je-li a(x j , t n ) ≥ 0,<br />
je-li a(x j , t n ) < 0.<br />
Funkci a můžeme interpretovat jako rychlost látky, v níž sledujeme rozložení veličiny u,<br />
ve směru kladné x–ové poloosy. K diskretizaci u x (x j , t n ) tedy využíváme hodnoty u z té<br />
strany, odkud se do bodu x j v čase t n látka pohybujeme. Hovoříme proto o diskretizaci<br />
typu upwind.<br />
17
Předpokládejme pro jednoduchost, že a(x, t) ≥ 0 a c(x, t) = 0. Explicitní schéma má<br />
pak tvar<br />
U n+1<br />
j − Uj<br />
n U<br />
= b n j+1 n − 2 Uj n + Uj−1<br />
n U<br />
j<br />
− a n j n − Uj−1<br />
n<br />
τ<br />
h 2<br />
j + d n j<br />
2 h<br />
,<br />
což dává<br />
e n+1<br />
j = (1 − 2 µ n j − ν n j ) e n j + µ n j e n j+1 + (µ n j + ν n j ) e n j−1 − τ ε n j .<br />
Aby všechny koeficienty na pravé straně byly nezáporné, potřebujeme nyní pouze podmínku<br />
2 µ n j + νn j ≤ 1. Stabilita tedy nevyžaduje žádné omezení prostorového kroku h. Cenou<br />
za to je, že nyní máme pouze ε n j = O(h + τ).<br />
Někdy se můžeme setkat s parabolickou rovnicí v samoadjungovaném tvaru<br />
u t = (p(x, t) u x ) x ∀ t > 0, x ∈ (0, 1) ,<br />
kde p > 0. Rozderivováním můžeme tuto rovnici převést do tvaru (38), ale obvykle je<br />
výhodnější zkonstruovat diferenční aproximaci původního samoadjungovaného tvaru:<br />
[(p u x ) x ](x j , t n ) ≈ 1 h [(p u x)(x j+1/2 , t n ) − (p u x )(x j−1/2 , t n )]<br />
Explicitní diferenční schéma má tedy tvar<br />
≈ 1 h 2 [pn j+1/2 (un j+1 − un j ) − pn j−1/2 (un j − un j−1 )] .<br />
a tudíž<br />
U n+1<br />
j<br />
− U n j<br />
τ<br />
= pn j+1/2 (Un j+1 − Un j ) − pn j−1/2 (Un j − Un j−1 )<br />
h 2 ,<br />
U n+1<br />
j = [1 − µ (p n j+1/2 + pn j−1/2 )] Un j + µ pn j+1/2 Un j+1 + µ pn j−1/2 Un j−1 , µ = τ h 2 .<br />
Chybu aproximace můžeme tudíž vyšetřovat stejným způsobem jako dříve, budou-li všechny<br />
koeficienty nezáporné, což je splněno, pokud µ P ≤ 1 , kde P splňuje p(x, t) ≤ P<br />
2<br />
v uvažované oblasti. Máme tedy omezení stejného typu jako dříve.<br />
Zřejmým způsobem lze na výše uvažované obecnější <strong>rovnice</strong> zobecnit θ–schéma vedoucí<br />
k implicitnímu schématu.<br />
1.15 Fourierova analýza pro diskretizace Cauchyových úloh<br />
V teorii parciálních diferenciálních rovnic hraje důležitou roli Fourierova transformace.<br />
Pro funkci u ∈ L 1 (R) definujeme Fourierovu transformaci û vztahem<br />
(41)<br />
û(ξ) = 1 √<br />
2 π<br />
∫ ∞<br />
Za určitých předpokladů pak platí<br />
(42)<br />
−∞<br />
u(x) = 1 √<br />
2 π<br />
∫ ∞<br />
u(x) e −i x ξ dx, ξ ∈ R .<br />
−∞<br />
18<br />
û(ξ) e ix ξ dξ
a je splněna Parsevalova rovnost<br />
(43)<br />
‖u‖ L 2 (R) = ‖û‖ L 2 (R) .<br />
Pravá strana vztahu (42) je inverzní Fourierova transformace. Vztah (42) vyjadřuje funkci<br />
u jako superpozici vln daných funkcemi e i x ξ s různými amplitudami û(ξ). Funkce û<br />
představuje alternativní reprezentaci funkce u a může být komplexní, i když je funkce u<br />
reálná.<br />
Podobně jako výše lze postupovat též v diskrétním případě. Bud’ l ∈ R a označme<br />
ϕ j (ξ) = 1 √<br />
l<br />
e −i(2 π j/l) ξ , ξ ∈ R , j ∈ Z.<br />
Pak pro libovolné reálné číslo a tvoří množina {ϕ j } j∈Z úplný ortonormální systém v prostoru<br />
L 2 (a, a + l). Je-li dána posloupnost U = {U j } j∈Z splňující ∑ j∈Z |U j| 2 < ∞, pak<br />
řada ∑ j∈Z U j ϕ j konverguje v prostoru L 2 (a, a + l) k funkci Ũ a platí U j = ∫ a+l<br />
Ũ ϕ<br />
a j dξ.<br />
Navíc je splněna Parsevalova rovnost ∑ j∈Z |U j| 2 = ‖Ũ‖2 L 2 (a,a+l). Předpokládejme nyní,<br />
že hodnoty U j představují hodnoty sít’ové funkce v uzlech x j = j h. Zvolme a = −l/2,<br />
l = 2 π/h a definujme funkci Û ∈ L2 (−π/h, π/h) vztahem<br />
(44)<br />
Û(ξ) = 1 √<br />
2 π<br />
∞<br />
∑<br />
j=−∞<br />
h U j e −i x j ξ<br />
(tj. Û = √ h Ũ). Pak U j = √ 1 ∫ π/h<br />
Û(ξ) e i x j<br />
(45)<br />
ξ dξ ∀ j ∈ Z.<br />
2 π<br />
−π/h<br />
Vztahy (44) a (45) jsou diskrétními analogiemi vztahů (41) a (42). Vztah (45) opět<br />
vyjadřuje U jako superpozici vln. Označíme-li<br />
∞∑<br />
‖U‖ 2 = √ h |U j | 2<br />
j=−∞<br />
diskrétní analogii normy v prostoru L 2 (R), platí podobně jako v (43) Parsevalova rovnost<br />
(46) ‖U‖ 2 = ‖Û‖ L 2 (−π/h,π/h) .<br />
Uvažujme Cauchyovu úlohu najít funkci u = u(x, t) definovanou pro x ∈ R a t ≥ 0 a<br />
splňující<br />
(47)<br />
u t + L u = 0 v R × R + , u(x, 0) = u 0 (x) pro x ∈ R ,<br />
kde u 0 je zadaná počáteční podmínka a L je lineární diferenciální operátor s konstantními<br />
koeficienty obsahující pouze derivace podle x. Obecné jednokrokové schéma pro úlohu<br />
(47) na stejnoměrné síti s uzly x j = j h, j ∈ Z, má tvar<br />
(48)<br />
(49)<br />
M∑<br />
s=−M<br />
α s U n+1<br />
j+s =<br />
M<br />
∑<br />
s=−M<br />
U 0 j = u0 (x j ) ∀ j ∈ Z.<br />
β s U n j+s ∀ j ∈ Z, n ∈ N 0 ,<br />
19
Přirozené číslo M závisí na způsobu aproximace derivací podle x v operátoru L. Zapíšemeli<br />
U n = {Uj n} j∈Z ve tvaru (45) pomocí Fourierovy transformace Ûn = Ûn (ξ) definované<br />
vztahem (44), získáme dosazením do (48)<br />
∫ (<br />
π/h<br />
M∑<br />
M∑<br />
Û n+1 (ξ) α s e i s h ξ − Ûn (ξ) β s e<br />
)dξ i s h ξ = 0 ∀ j ∈ Z, n ∈ N 0 .<br />
e i x j ξ<br />
−π/h<br />
s=−M<br />
s=−M<br />
Jelikož funkce {e i x j ξ } j∈Z tvoří úplný ortogonální systém v prostoru L 2 (−π/h, π/h), platí<br />
Û n+1 (ξ)<br />
M∑<br />
s=−M<br />
α s e i s h ξ = Ûn (ξ)<br />
M∑<br />
s=−M<br />
β s e i s h ξ ∀ n ∈ N 0 .<br />
Všimněme si, že tento vztah lze formálně získat tak, že diskrétní řešení Uj<br />
n nahradíme<br />
v (48) výrazem Ûn (ξ) e ix j ξ (pro ξ = k je to stejná funkce, jakou jsme používali při<br />
Fourierově analýze schémat pro smíšenou úlohu (1)–(3)). Označíme-li<br />
obdržíme<br />
(50)<br />
λ(ξ) =<br />
M∑<br />
s=−M<br />
M∑<br />
s=−M<br />
β s e i s h ξ<br />
α s e i s h ξ ,<br />
Û n+1 (ξ) = λ(ξ) Ûn (ξ) ∀ n ∈ N 0 .<br />
Tento vztah ukazuje, že provedení jednoho časového kroku schématu (48) je ekvivalentní<br />
přenásobení Fourierovy transformace diskrétního řešení amplifikačním faktorem λ(ξ). Velikost<br />
amplifikačního faktoru |λ(ξ)| představuje zesílení amplitudy Ûn (ξ) libovolné frekvence<br />
ξ při provedení jednoho časového kroku. Ze vztahu (50) získáme<br />
(51)<br />
Û n (ξ) = λ(ξ) n Û 0 (ξ) ∀ n ∈ N 0 .<br />
Vidíme, že všechny informace o schématu jsou obsaženy v amplifikačním faktoru. Mimo<br />
jiné lze z amplifikačního faktoru snadno získat informace o stabilitě a přesnosti příslušného<br />
schématu. Fourierova transformace proto představuje standardní metodu pro studium<br />
vlastností diferenčních schémat.<br />
Diferenční schémata jsou často pouze podmíněně stabilní, což znamená, že jsou stabilní,<br />
jen pokud prostorový krok h a časový krok τ splňují jistou podmínku. Množinu<br />
Λ ⊂ R + ×R + takovou, že pro libovolnou dvojici (h, τ) ∈ Λ je příslušná podmínka stability<br />
splněna, nazveme oblastí stability diferenčního schématu. Vždy budeme předpokládat, že<br />
množina Λ je omezená a že dvojice (0, 0) je jejím hromadným bodem. Stabilitu schématu<br />
(48) lze definovat následujícím způsobem.<br />
Definice 2 Diferenční schéma (48) je stabilní v oblasti stability Λ, pokud pro každý<br />
pevný čas T > 0 existuje konstanta C T taková, že pro libovolnou počáteční podmínku U 0<br />
platí<br />
‖U n ‖ 2 ≤ C T ‖U 0 ‖ 2 ∀ n ∈ N, (h, τ) ∈ Λ, nτ ≤ T .<br />
20
Věta 5 Diferenční schéma (48) je stabilní v oblasti stability Λ právě tehdy, když existuje<br />
konstanta K nezávislá na ξ, h a τ taková, že<br />
(52)<br />
|λ(ξ)| ≤ 1 + K τ ∀ ξ ∈ R , (h, τ) ∈ Λ .<br />
Je-li funkce λ(ξ/h) na Λ nezávislá na h a τ, pak lze podmínku (52) nahradit podmínkou<br />
(53)<br />
|λ(ξ)| ≤ 1 ∀ ξ ∈ R , (h, τ) ∈ Λ .<br />
Důkaz. Z Parsevalovy rovnosti (46) a vztahu (51) plyne<br />
(54)<br />
‖U n ‖ 2 = ‖λ n Û 0 ‖ L 2 (−π/h,π/h) .<br />
Poznamenejme, že λ n zde značí n–tou mocninu λ. Platí-li (52), je pro n ≤ T/τ<br />
‖U n ‖ 2 ≤ (1 + K τ) n ‖Û0 ‖ L 2 (−π/h,π/h) ≤ (1 + K τ)T/τ ‖U 0 ‖ 2 ≤ e K T ‖U 0 ‖ 2 ,<br />
tj. schéma (48) je stabilní v Λ. Předpokládejme nyní, že (52) neplatí pro žádnou konstantu<br />
K. Zvolme libovolné číslo C > 0. Jelikož funkce λ závisí na ξ spojitě a periodicky<br />
s periodou 2 π/h, existuje (h, τ) ∈ Λ a interval (ξ 1 , ξ 2 ) ⊂ (−π/h, π/h) tak, že |λ(ξ)| ><br />
1 + C τ ∀ ξ ∈ (ξ 1 , ξ 2 ). Necht’<br />
Û 0 (ξ) =<br />
1<br />
√<br />
ξ2 − ξ 1<br />
pro ξ ∈ (ξ 1 , ξ 2 ) a Û 0 (ξ) = 0 pro ξ ∉ (ξ 1 , ξ 2 ) .<br />
Pak dle (46) a (54) je ‖U 0 ‖ 2 = ‖Û0 ‖ L 2 (−π/h,π/h) = 1 a<br />
‖U n ‖ 2 = ‖λ n Û 0 ‖ L 2 (ξ 1 ,ξ 2 ) > (1 + C τ)n ≥ (1 + C τ max ) nτ/τmax ‖U 0 ‖ 2 ,<br />
kde τ max je takové, že Λ ⊂ R + ×(0, τ max ) (využili jsme, že funkce (1+C τ) 1/τ je klesající).<br />
Pro libovolné T > τ max a n ∈ N splňující T/2 ≤ nτ ≤ T je<br />
‖U n ‖ 2 > (1 + C τ max ) T/(2 τmax) ‖U 0 ‖ 2 .<br />
Schéma (48) tedy není stabilní v Λ, nebot’ C lze volit libovolně velké. Je-li funkce λ(ξ/h)<br />
na Λ nezávislá na h a τ, pak jsou zřejmě podmínky (52) a (53) ekvivalentní. □<br />
Poznámka 3 Uvedená věta pochází od von Neumanna, a analýza diferenčních metod<br />
založená na Fourierově metodě se proto obvykle nazývá von Neumannova analýza. Nerovnost<br />
(52) se většinou nazývá von Neumannova podmínka.<br />
Uvažujeme-li θ–metodu pro jednorozměrnou rovnici vedení tepla, pak λ(ξ/h) je pro<br />
µ = const. nezávislé na h a τ, a nutnou a postačující podmínkou stability je tedy (53).<br />
Uvažujeme-li však rovnici<br />
(55)<br />
u t = bu xx − a u x ∀ t > 0, x ∈ R ,<br />
21
kterou jsme vyšetřovali v odstavci 1.14 (nyní b > 0 a a jsou konstanty), pak amplifikační<br />
faktor explicitního schématu (39) je<br />
λ(ξ) = 1 − 4 µ sin 2 ξ h<br />
2<br />
− i ν sin(ξ h) ,<br />
kde µ = bτ/h 2 a ν = a τ/h, a pro nalezení nutné a postačující podmínky pro stabilitu<br />
v diskrétní L 2 normě je třeba uvažovat podmínku (52). Snadno zjistíme, že<br />
|λ(ξ)| 2 = (1 − 4 µ s 2 ) 2 + 4 ν 2 s 2 (1 − s 2 ) , kde s = sin ξ h<br />
2 .<br />
Při s 2 = 1 stačí požadovat, aby µ ≤ 1 2 , nebot’ pak |λ(ξ)| ≤ 1. Jelikož ν2 = a 2 µ τ/b a<br />
4 s 2 (1 − s 2 ) ≤ 1, dostáváme při µ ≤ 1 2 nerovnost<br />
|λ(ξ)| ≤ 1 + a2<br />
2 b τ .<br />
Pro µ ≤ 1 je tedy von Neumannova podmínka splněna a schéma je stabilní v diskrétní<br />
2<br />
L 2 normě. Nicméně při µ ≤ 1 může pro některé hodnoty ξ být |λ(ξ)| > 1, což vede<br />
2<br />
k růstu příslušné amplitudy v diskrétním řešení, zatímco v řešení diferenciální <strong>rovnice</strong> jsou<br />
všechny amplitudy tlumeny. Pokud tedy exponenciální růst v čase, který von Neumannova<br />
podmínka umožňuje, neodpovídá vlastnostem aproximované parciální diferenciální<br />
<strong>rovnice</strong>, je von Neumannova podmínka v praxi příliš slabá. Zavádíme proto následující<br />
silnější definici stability.<br />
Definice 3 Diferenční schéma se nazývá silně stabilní, jestliže platí: pokud Fourierova<br />
transformace řešení aproximované parciální diferenciální <strong>rovnice</strong> splňuje<br />
(56)<br />
|û(ξ, t + τ)| ≤ e α τ |û(ξ, t)|<br />
∀ ξ ∈ R<br />
pro nějaké α ≥ 0, pak amplifikační faktory diferenčního schématu splňují<br />
|λ(ξ)| ≤ e α τ ∀ ξ ∈ R .<br />
Pro rovnici (55) platí (56) s α = 0, a tedy požadujeme, aby |λ(ξ)| ≤ 1 ∀ ξ ∈ R. Jelikož<br />
dostáváme<br />
|λ(ξ)| = 1 − 4 (2 µ − ν 2 ) s 2 + 4 (4 µ 2 − ν 2 ) s 4 ,<br />
|λ(ξ)| ≤ 1 ∀ ξ ∈ R ⇔ (4 µ 2 − ν 2 ) s 2 ≤ 2 µ − ν 2 ∀ s ∈ [−1, 1] ⇔ ν 2 ≤ 2 µ ≤ 1 .<br />
Kromě očekávané podmínky µ ≤ 1 jsme tedy dostali ještě další podmínku, kterou lze<br />
2<br />
zapsat ve tvaru τ ≤ 2 b/a 2 . To může být velmi vážné omezení, nebot’ v praxi je často b ≪<br />
|a|. Nicméně získané podmínky jsou stále slabší než podmínky (40) zaručující platnost<br />
principu maxima.<br />
22