18.03.2014 Views

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é ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!