Řešení "stiff soustav obyčejných diferenciálních rovnic Jiří Škvára Katedra fyziky, Přírodovědecká fakulta Univerzity J.E. Purkyně v Ústí n.l.. ročník, počítačové metody ve vědě a technice Abstrakt Seminární práce se zabývá řešením "stiff soustav obyčejných diferenciálních rovnic. Jsou zde popsány tři běžné metody, jejichž výsledky jsou srovnány pro různé časové kroky. Úvod Při řešení soustav obyčejných diferenciálních rovnic je možné narazit na rovnice, které obsahují silné tlumení s charakteristickým časem τ s, který je podstatně menší než charakteristické časy ostatních jevů, jež rovnice popisuje. Pro řešení těchto rovnic je tedy nutné volit mnohem menší krok t < τ s, abychom získali smysluplný výsledek. Další možností je užití implicitních metod, které nám umožňují zachovat přesnost i při větším časovém kroku. Numerické metody Pro řešení těchto rovnic lze použít klasické numerické metody stejné jako pro řešení soustav obyčejných diferenciálních rovnic, je však nutné podstatně zmenšit krok mezi iteracemi. Příkladem takových soustav mohou být rovnice : du = 00u + u du = u s počáteční podmínkou u (0) =, u (0) =.
. Eulerova explicitní metoda Explicitní Eulerova metoda může být odvozena snadno z definice derivace: f f (x+h) f (x) (x) = lim, h 0 h kde zanedbáme limitu a nahradíme f (x) přibližnou hodnotou x i, f (x + h) pak hodnotou x i+. Dostaneme tedy: f (x) x i+ x i h = f i. Stejného výsledku bychom dosáhli odvozením z Taylorova rozvoje a využitím jeho nultého členu. Pro řešení výše uvedené soustavy diferenciálních rovnic upravíme tento vztah na rekurentní vztah: x i+ = x i + h f (x i ). Soustavu tedy přepíšeme do tvaru (zde horní index označuje iteraci): u (k+) + h( 00u(k) + u(k) ) u (k+) hu(k). Implicitní Eulerova metoda Jedná se o úpravu klasické Eulerovy metody, která zvyšuje přesnost a zaručuje stabilitu metody. Metoda se liší v tom, že se neurčuje derivace v bodě x ale v bodě x + h. Rekurentní vztah tedy přechází na tvar: x i+ = x i + h f (x i+ ). () Tento tvar by vyžadoval počítat s hodnotami, které ještě nemáme vypočteny. Je tedy nutné upravit tuto rovnici do vhodnějšího tvaru: x i+ h f (x i+ ) = x i Pokud bychom nyní dosadili vztahy pro rovnice u a u dostali bychom: což lze dále upravit na finální vztahy: u (k+) + 00hu (k+) ) + hu(k+) u (k+) + hu (k+), u (k+) = u(k) +hu(k+) +00h u (k+) = u(k) +h.
.3 Semiimplicitní Eulerova metoda Jedná se o zobecnění implicitní metody na soustavy nelineárních rovnic. Vychází se z využití Newtonovy metody, což nás vede na použití Jakobiho matice. Prvním krokem v odvození této metody je tedy linearizace problému, kdy zadanou rovnici rozvineme pomocí Taylorova rozvoje: f(x i+ ) = f(x i ) + f x x i (x i+ x i ), () kde část s parciální derivací nám tvoří Jakobiho matici. Dosazením do vztahu pro implicitní Eulerovu metodu dostaneme: x i+ = x i + hf(x i+ ) = x i + h(f(x i ) + J(x i+ x i )) (3) (I hj)x n+ = (I hj)x n + hf(x n ) x n+ = x n + h(i hj) f(x n ) Výhodou tohoto přístupu je možnost používat větší krok, za to však platíme časovou náročností kvůli výpočtu inverzní matice například pomocí LU dekompozice. 3
3 Výsledky Zmíněnými metodami byla počítána soustava ODR du = 00u + u du = u s počáteční podmínkou u (0) =, u (0) = a analytickým řešením: a exp( 00.0t) +.0 99.0b exp( t)b exp( t) Pro lepší přehlednost byly jednotlivé rovnice rozděleny do vlastních grafů. Na obrázku jsou výsledky obou složek soustavy v závislosti na čase řešené implicitní, explicitní a semiimplicitní Eulerovou metodou pro krok = 0.05 v porovnání a analytickým řešením. Můžeme vidět, že pro druhou složku soustavy si vystačí obě metody s tímto časovým krokem, ovšem u první složky se u implicitní metody snižuje přesnost, semiimplicitní metoda dává přibližně stejný výsledek jako implicitní a explicitní metoda se stává nestabilní. Obrázek : Srovnání implicitní a explicitní a semiimplicitní Eulerovy metody na jednotlivých složkách soustavy ODR pro = 0.05. Jak ukazuje obrázek situace se zlepšuje při snížení kroku na = 0.005, kde už jsou všechny tři metody stabilní a při velikosti kroku = 0.00 už dostáváme relativně přesný výsledek od všech použitých metod. Stále je zde ale patrna drobná odchylka explicitní metody od ostatních řešení (obrázek 3). 4 Závěr Zadaná stiff úloha byla řešena různými variantami Eulerovy metody a byla porovnána jejich přesnost. Ukázalo se, že explicitní Eulerova metoda v tomto případě je klasická Eulerova metoda použitelná až od = 0.005 do té doby je nestabilní. I při stabilním řešení však implicitní metoda dává mnohem lepší výsledky, které jsou téměř shodné s výsledky semiimplicitní metody. 4
Obrázek : Srovnání implicitní a explicitní a semiimplicitní Eulerovy metody na jednotlivých složkách soustavy ODR pro = 0.005. Obrázek 3: Srovnání implicitní a explicitní a semiimplicitní Eulerovy metody na jednotlivých složkách soustavy ODR pro = 0.00. 5