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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!