Metody řešení obyčejných a parciálních diferenciálních rovnic, Monte Carlo metody, variační postup
2. června 2010 v 13:52 | MáŠa
|
Matematika
- při simulaci dynamických systémů reprezentovaných soustavou diferenciálních rovnic se používá řada numerických metod
- pro chaotické systémy každá metoda dříve nebo později selže v tom smyslu, že pro každou přesnost existuje konečný čas, po kterém je požadovaná tolerance překročena
- O numerické metodě říkáme, že je stabilní, pokud malé změny výchozích dat jen málo ovlivňují výsledky
- O numerické metodě říkáme, že je konvergentní, pokud v nějakém smyslu lze touto metodou získat libovolně přesné řešení dané úlohy. Obvykle se tak děje snižováním kroku, nebo zvyšováním počtu uzlů, iterací apod
- nejjednodušší systém s jedinou stavovou proměnnou: v = f(t,x), kde v je derivace x podle času; je tu nějaká počáteční podmínka x(t0) = x0
- hledáme trajektorii, která splňuje počáteční podmínku - jde o tzv. počáteční úlohu, kdy známe stav v čase t0
- u většiny praktických úloh nelze nalézt analytické řešení, proto je potřeba trajektorii hledat numerickou metodou
- probíhá řešení v diskrétních časových krocích Δt: y(t + Δt) = y(t) + D(t,y)Δt, kde D(t,y) je funkce (někdy též směrová funkce), která se snaží aproximovat y'(t) tak, aby y(t + Δt) bylo co nejpřesnější
- numerické metody jsou postaveny na diskretizaci proměnných - tj. spojité řešení s nekonečně body se nahradí posloupností diskrétních bodů
- dostáváme přibližnou reprezentaci hledané trajektorie
- jde o tzv. diferenční metody
- vzdálenost mezi 2 následujícími body je h = t_(i+1) - t_i - tedy delta t
- toto se nazývá krok metody
- nezávislou proměnnou bývá většinou čas
- nový čas v čase t_i vždy počítáme na základě předcházejících stavů systému v časových okamžicích předešlých
- jednokroková metoda - nový stav systému se odvodí od předcházejícího stavu, tedy z okamžiku, který byl o časový krok dřív
- funkce f(t,y) se nazývá stavová rovnice
- y(t + Δt) = y(t) + D(t,y)Δt
- D(t,y) je funkce, která se snaží aproximovat '(t) tak, aby y(t + Δt) bylo co nejpřesnější
- na Exfortu jsou nějaké obrázky a vzorce
Eulerova metoda
- jde o nejjednoduššího představitele jednokrokových metod
- vychází to z rovnic pro změnu hodnoty x(t) a rychlosti v(t) určitého objektu
- nový stav lze stanovit z předcházejícího na základě vztahu: x_(n+1) = x_n + h*f(t_n,x_n)
- Eulerův vztah je lineární aproximací Taylorova rozvoje
- jde o přibližný vztah s chybou úměrnou druhé mocnině kroku h
- metodám s tímto kvadratickým vztahem pro chybu se říká metody prvního řádu
- obvykle nepoužitelné
- vypočtený stav odpovídá skutečnosti jenom při konstantní rychlosti systému
- applet zde: http://www.calculusapplets.com/euler.html
Metoda Runge-Kutta
- vychází také z Taylorova rozvoje a bere do úvahy i členy vyšších řádů
- jde o klasickou metodu 4. řádu
- počítají se 4 pomocné hodnoty k_i, které představují derivace stavu systému ve speciálních bodech na začátku, konci a uprostřed intervalu <t_n, t_(n+1) >
- nepatří k nejmodernějším
- pro přesnější výpočty se také nehodí
Vícekrokové Adamsovy metody
- vícekrokové metody používají k vyjádření nového stavu systému znalost k předcházejících stavů
- obecně nemusí být efektivnější než jednokrokové
- obecně neroste výpočetní složitost s počtem kroků
- nový stav je vyjádří z k předchozích stavů
- x_(n+1) = a_1*x_n + a_2 * x_(n-1) + ... + a_k * x_(n-k+1) + h * (b_0 * f_(n+1) + b_1 * f_n + ...)
- pokud je b_0 nenulové, je nový stav systému závislý na neznámé hodnotě funkce f_(n+1) a vztah je potřeba řešit iteračně - v takovém případě se metoda nazývá jako implicitní
- pokud je nulové, tak se nazývá explicitní - výpočet je jednodušší
Algoritmus prediktor-korektor
- Metody prediktor-korektor jsou sloučením explicitních a implicitních metod. Nejprve je použita explicitní metoda pro odhad nového yn + 1. V tomto bodě je vypočtena derivace fn + 1, která je následovně použita v implicitní metodě pro výpočet přesnější aproximace yn + 1
- první odhad explicitní metodou se nazývá prediktor
- jeden krok iterace se skládá z výpočtu funkce a následné opravy nového stavu - korektor
- tedy nejdříve pro k krokovou metodu vypočteme např. pomocí Runge-Kutta k hodnot stavů x_i a odpovídajících hodnot funkcí f_i
- pak vyjádříme odhad nového stavu - prediktora
- pak vypočteme hodnotu funkce f_(n+1)
- pak opravíme hodnotu x_(n+1) a definujeme ji jako nový stav systému - korektor
- pak vyjádříme novou hodnotu funkce f_(n+1) a dokola
Odhad chyby
- chyby numerických metod se dělí na krokové a globální
- globální vznikají kumulací chyb v jednotlivých krocích
Monte Carlo metody
- zde už se dostáváme k parciálním diferenciálním rovnicím, které lze vyjádřit ve speciálním tvaru; takové lze řešit pomocí numerických metod pro obyčejné diferenciální rovnice (případně použít metodu separace proměnných). Pro ostatní případy existují speciální postupy rozdělené podle typu parciální diferenciální rovnice (hyperbolická, parabolická, eliptická)
- Monte Carlo je třída algoritmů pro simulaci systémů. Jde o stochastické metody používající pseudonáhodná čísla.
- je numerickou metodou statistického modelování náhodných veličin
- jednoduchá struktura výpočtového algoritmu, jež je vytvořen pro uskutečnění jednoho náhodného výběru, který se N-krát opakuje
- každý pokus je nezávislý na ostatních
- počet opakování může být libovolný a závisí na požadované přesnosti výpočtu
- chyba výsledných veličin se přirozeně snižuje se zvyšujícím se počtem simulací
- první operací v procese uskutečňování náhodného výběru je generování rovnoměrně rozdělených náhodných čísel
- Následuje převedení čísla z tohoto intervalu na náhodnou veličinu s příslušným rozdělením pomocí standardních transformačních vztahů nebo s využitím distribuční funkce
- Základní myšlenka této metody je velice jednoduchá, chceme určit střední hodnotu veličiny, která je výsledkem náhodného děje. Vytvoří se počítačový model toho děje a po proběhnutí dostatečného množství simulací se mohou data zpracovat klasickými statistickými metodami, třeba určit průměr a směrodatnou odchylku
- výpočet založený na mnohokrát opakovaných náhodných pokusech (odhadech náhodné veličiny)
- Výpočet určitého integrálu je jednou z nejčastějších aplikací metody Monte Carlo. Používají se 2 základní algoritmy. Tzv. geometrická metoda a metoda odhadu střední hodnoty integrované funkci
- aby se zlepšil výsledek o jeden řád, musí se počet historií zvýšit alespoň o dva řády
- Mějme nějakou nepravidelnou plochu, jejíž obsah chceme znát. Tuto plochu uzavřeme třeba do obdelníku, jehož obsah snadno spočteme pomocí vztahu a*b. Dále obdelník (samozřejmě včetně uzavřené plochy) pokryjeme náhodně určitým množstvím bodů. Následně spočítáme kolik bodů se nachází v ploše jejíž obsah počítáme, a určíme kolik procent bodů z celkového počtu to je. Obsah plochy je potom a*b*p, kde p je procentuální vyjádření počtu bodů v dané ploše.
Variační postup
- Zde jen čistě opis z Exfortu:
Variační počet je oblast matematiky, která poskytuje metody umožňující nalezení takové křivky (plochy, nadplochy) z dané třídy hladkých křivek (ploch, nadploch), která minimalizuje (maximalizuje) určitý funkcionál na uvažované třídě křivek (ploch, nadploch). Z množiny definovaných funkcí tedy vybíráme takovou funkci, pro kterou nabývá daný integrál extrémní hodnoty.
Metoda konečných prvků je numerická metoda sloužící k simulaci průběhů napětí, deformací, vlastních frekvencí, proudění tepla, jevů elektromagnetismu, proudění tekutin ad. na vytvořeném fyzikálním modelu. Její princip spočívá v diskretizaci spojitého kontinua do určitého (konečného) počtu prvků, přičemž zjišťované parametry jsou určovány v jednotlivých uzlových bodech. MKP je užívána především pro kontrolu již navržených zařízení, nebo pro stanovení kritického (nejnamáhanějšího) místa konstrukce. Ačkoliv jsou principy této metody známy již delší dobu, k jejímu masovému využití došlo teprve s nástupem moderní výpočetní techniky.
Materiály & Zdroje