Explicita och implicita metoder
Explicita och implicita metoder är metoder som används i numerisk analys för att erhålla numeriska approximationer till lösningar av tidsberoende ordinarie och partiella differentialekvationer , vilket krävs i datorsimuleringar av fysiska processer . Explicita metoder beräknar tillståndet för ett system vid en senare tidpunkt från systemets tillstånd vid den aktuella tidpunkten, medan implicita metoder hittar en lösning genom att lösa en ekvation som involverar både systemets nuvarande tillstånd och den senare. Matematiskt, om är det aktuella systemtillståndet och är tillståndet vid den senare tidpunkten ( är ett litet tidssteg), då för en explicit metod
medan man för en implicit metod löser en ekvation
för att hitta
Beräkning
Implicita metoder kräver en extra beräkning (löser ekvationen ovan), och de kan vara mycket svårare att implementera. Implicita metoder används eftersom många problem som uppstår i praktiken är stela , för vilka användningen av en explicit metod kräver opraktiskt små tidssteg för att hålla felet i resultatet begränsat (se numerisk stabilitet ). För sådana problem, för att uppnå given noggrannhet, tar det mycket mindre beräkningstid att använda en implicit metod med större tidssteg, även med hänsyn till att man behöver lösa en ekvation av formen (1) vid varje tidssteg. Som sagt, om man ska använda en explicit eller implicit metod beror på problemet som ska lösas.
Eftersom den implicita metoden inte kan utföras för varje typ av differentialoperator, är det ibland tillrådligt att använda den så kallade operatordelningsmetoden, vilket innebär att differentialoperatorn skrivs om som summan av två komplementära operatorer
medan den ena behandlas explicit och den andra implicit. För vanliga tillämpningar är den implicita termen vald att vara linjär medan den explicita termen kan vara olinjär. Denna kombination av den förra metoden kallas Implicit-Explicit Method (kort IMEX,).
Illustration med Euler-metoderna framåt och bakåt
Betrakta den vanliga differentialekvationen
med initialvillkoret Betrakta ett rutnät för 0 ≤ k ≤ n , det vill säga tidssteget är och beteckna för varje . Diskretisera denna ekvation med de enklaste explicita och implicita metoderna, som är Euler-metoderna framåt och bakåt (se numeriska vanliga differentialekvationer ) och jämför de erhållna scheman.
- Framåt Euler-metoden
Framåt Euler-metoden
avkastning
för varje Detta är en explicit formel för .
- Bakåt Euler-metoden
Med den bakåtriktade Eulermetoden
man finner den implicita ekvationen
för (jämför detta med formel (3) där gavs uttryckligen snarare än som en okänd i en ekvation) .
Detta är en andragradsekvation som har en negativ och en positiv rot . Den positiva roten plockas eftersom i den ursprungliga ekvationen det initiala villkoret är positivt, och sedan vid nästa tidssteg av
I de allra flesta fall är ekvationen som ska lösas när man använder ett implicit schema mycket mer komplicerad än en andragradsekvation, och det finns ingen analytisk lösning. Sedan använder man rotsökningsalgoritmer , som Newtons metod , för att hitta den numeriska lösningen.
- Crank-Nicolson metod
man finner den implicita ekvationen
för (jämför detta med formel (3) där gavs uttryckligen snarare än som en okänd i en ekvation) . Detta kan lösas numeriskt med hjälp av rotsökningsalgoritmer , såsom Newtons metod , för att erhålla .
Crank-Nicolson kan ses som en form av mer allmänna IMEX ( Implicit - Ex plicit)-scheman.
- Framåt-bakåt Euler-metoden
För att tillämpa IMEX-schemat, överväg en något annorlunda differentialekvation:
Det följer att
och därför
för varje
Se även
- Courant–Friedrichs–Lewy skick
- SIMPLE algorithm , en semi-implicit metod för trycklänkade ekvationer