12. Vybrané postupy numerické matematiky#
12.1. Numerické řešení diferenciálních rovnic#
Již v prvním týdnu jsme se při zdůraznění role derivace dostali k formulování modelů použitím derivací, k diferenciálním rovnicím. Tyto rovnice je možné pro konkrétní hodnoty parametrů a konkrétní počáteční podmínku řešit numericky.
Následující přehlídka znovu připomene některé modely a odkaz za těmito modely vede na interaktivní nástroj pro numerické řešení. Tímto nástrojem můžeme vizualizovt řešení pro různé počáteční podmínky. Pro náročnější práci, jako například vizualizace různých rovnic (například pro různé nastavení parametrů) by bylo nutné použít nějaký neinteraktivní nástroj, kde se ve speciálním jazyce naformuluje model, nastaví parametry, spustí řešič a vykreslí řešení.
- \[\frac{\mathrm dT}{\mathrm dt}=-k (T-T_0)\]
Model růstu populace v prostředí s omezenou nosnou kapacitou
\[\frac{\mathrm dx}{\mathrm dt}=rx\left (1-\frac xK \right)\]Neinteraktivní model, který vypočte 1000 řešení pro 1000 kombinací hodnot \(\displaystyle r\) a \(\displaystyle K\) je zde. Podobné analýzy se dělají, pokud jsou koeficienty v rovnici zatíženy chybou a chceme vědět, jak se tato chyba projevuje na řešení. V takovém případě nestačí „klikací“ přístup, ale je možné udělat dostatečný počet simulací s vhodně nastavenými paraemtry a tyto statisticky vyhodnotit.Model růstu vodní kapky v atmosféře
\[\frac{\mathrm dV}{\mathrm dt}=k V^{2/3}\]Model růstu ledu podle Stefanova zákona
\[\frac{\mathrm dh}{\mathrm dt}=\frac kh\]
Všimněte si, že v numerickém modelu je prostým pohledem prakticky nerozlišitelný model růstu vodní kapky od modelu růstu úměrného velikost populace (změňte si mocninu \(\displaystyle \frac 23\) na \(\displaystyle 1\)), ale modely se chovají principiálně zcela jinak, protože v jednom je zaručena jednoznačnost řešení a ve druhém je tato jednoznačnost porušena. Dále si všimněte, že model růstu ledu má při prodlužování řešení zpět v čase evidentně problémy s nulou ve jmenovateli. Abychom různé parazitní výstupy numerických algoritmů jako je zde dokázali odchytit a eliminovat, nestačí „umět rovnici naklikat do programu“, ale znalost teorie a kvalitativních vlastností řešení je téměř nezbytná pro jakoukoliv závažnější práci.
12.2. Numerické řešení diferenciálních rovnic ve 2D a 3D#
Pokud máme v zásobě zkušenosti s modelováním diferenciálních rovnic, můžeme se pustit do odvážnějších aplikací, jako třeba následující modely.
12.2.1. Konkurence dvou populací#
Dynamika rozvoje jedné populace může být ovlivněna přítomností druhé populace. Například pokud se dvě populace navzájem brzdí v růstu, je vhodným modelem soustava rovnic
12.2.2. Model dravce a kořisti#
Dynamika rozvoje ineragujících populací dravce a kořisti může být vyjádřena Lotkovým Volterrovým modelem
12.2.3. Model epidemie#
Populaci rozdělíme na tři skupiny.
Skupina S (angl. susceptible) obsahuje tu část populace, které je náchylná k onemocnění. Tito jedinci netrpí chorobou, mohou však být infikováni při styku s nemocnými.
Skupina I (angl. infected) obsahuje část populace tvořenou infikovanými jedinci. Tito jedinci vykazují známky onemocnění a rozšiřují nemoc mezi členy skupiny \(\displaystyle S\).
Skupina R (angl. removed) obsahuje tu část populace, která je tvořena jedinci, kteří byli dříve infikováni, ale nyní již nemohou šířit chorobu.
Velikosti skupin S, I a R budeme označovat \(\displaystyle S\), \(\displaystyle I\) a \(\displaystyle R\). Předpoklady, že počet osob které onemocní za jednotku času souvisí s počtem náchylných a infikovaných a že počet osobn, které jsou izolovány souvisí s počtem infikovaných vede k soustavě diferenciálních rovnic (Kermack-McKendrik(1927))
Matematicky je možno chování modelu studovat i bez explicitní formulace diferenciálních rovnic, pouze využitím takzvaného kompartmentového modelu. Tímto způsobem je možno relativně snadno přidávat do modelu skupinu bepříznakových, vakcinovaných, skupinu v inkubační době a podobně.
12.3. Nondimenzionalizace a bezrozměrné veličiny#
Rovnice vedení tepla v jedné dimenzi (prostup tepla stěnou, vedení tepla tyčí) má tvar (viz minulá přednáška)
12.4. Metoda konečných diferencí#
Vraťme se s aparátem matematického popisu vedení tepla k úloze hledání rozložení teploty na čtvercové desce, kterou jsme představili v přednášce o lineární algebře: Je dána deska čtvercového tvaru, jejíž okraje udržujeme na konstatních teplotách (každý okraj obecně na jiné teplotě) a hledáme rovnovážné rozložení teploty. Dvourozměrná rovnice vedení tepla pro homogenní izotropní desku s materiálovými charakteristikami \(\displaystyle \rho\), \(\displaystyle c\) a \(\displaystyle D\) má tvar
Použijeme stejnou myšlenku jako v lineární algebře: rozdělíme desku čtvercovou sítí na malé oblasti a budeme studovat teplotu v bodech této sítě, tj. v rozích jednotlivých čtverců, na které je deska čtvercovou sítí rozdělena.
Z přednášky o derivacích a aproximaci víme, že funkci můžeme aproximovat v okolí námi zvoleného bodu Taylorovým polynomem a v kapitole o diferenciálních rovnicích jsme tuto aproximaci použili pro aproximaci druhé derivace konečnými diferencemi ve tvaru
Výše popsaná myšlenka je základem metody konečných diferencí. Bohužel je tato metoda poměrně omezená nutností, mít ekvidistantní rozložení uzlů. Proto se v praxi používají vyspělejší metody, metoda konečných prvků nebo metoda konečných objemů. Základní myšlenka je stejná (parciální diferenciální rovnice se převede na soustavu lineárních rovnic) a praktické provedení zpravidla matematicky triviální, protože vše potřebné pro výpočty je předprogramováno v softwaru určenému pro danou úlohu. Máme takto software umožňující simulovat vedení tepla, tepelné úniky, tepelné nebo mechanické namáhání, tok podzemní i povrchové vody a další důležité praktické aplikace. Uživatel jenom zadá geometrii, typ problému a okrajové a počáteční podmínky a program vypočte potřebná řešení a dle požadavků je různým způsobem interpretuje.
12.5. Ukázka programu FlexPDE#
Existuje široká škála programů pro řešení diferenciálních rovnic. V mnoha jsou předpřipravené modely, předdefinované fyzikální úlohy a někdy dokonce databáze materiálových vlastností. V jiných programech je řešená rovnice plně pod kontrolou autora modelu a je možné snadno řešit i multifyzikální úlohy (například současně modelovat teplotu a vlhkost v materiálu). Zástupce druhé skupiny je FlexPDE firmy PDE Solutions Inc. Úloha s rozložením tepoty na čtvercové desce se zadanými teplotami na okrajích, na kterou jsme několikrát jako na motivaci narazili v lineární algebře a připomněli na předchozím slidu, by měla následující zápis a výstup.
TITLE 'Stacionarni teplota pro ctvercovou desku se zadanou teplotou na okrajich'
VARIABLES T
EQUATIONS T: div(grad(T))=0
INITIAL VALUES T=10
BOUNDARIES
REGION 1
START(0,0) VALUE(T)=30 LINE TO (1,0)
VALUE(T)=40 LINE TO (1,1)
VALUE(T)=20 LINE TO (0,1)
VALUE(T)=10 LINE TO CLOSE
PLOTS
CONTOUR(T)
SURFACE(T)
END
Rovnice je v popisu modelu zadána jako divergence gradientu, což v kartézských souřadnicích ve 2D vede právě na rovnici
DXX(T)+DYY(T)=0
.
Poslední model je model podzemní vody s konstantními piezometrickýmí hladinami podél dvou rovnoběžných stran (mohou být například dvě řeky) a s rovnoměrně rozloženými zdroji (například nad oblastí jsou rovnoměrné srážky a voda rovnoměrně zasakuje). Řešením modelu vidíme odkud teče voda do které řeky. Tím je možno například usuzovat, kde po případné kontaminaci provádět sanační práce.