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,yt
  • 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

 


Nový komentář

Přihlásit se
  Ještě nemáte vlastní web? Můžete si jej zdarma založit na Blog.cz.