Hoppa till huvudinnehållet
7. Differentialekvationer

Differentialekvationer

Tidsstega begynnelsevärdesproblem med Euler och Heun, och lös randvärdesproblem med finita differenser.

Översikt

Kärnan i tidsstegning

Framåt Euler tar ett steg med derivatan i den kända punkten. Metoden är utgångspunkten för de flesta andra och den enklaste att kontrollräkna för hand.

yn+1=yn+hf(tn,yn)y_{n+1}=y_n+h f(t_n,y_n)

Exempel

Metod och kontroll

En ekvation av högre ordning skrivs först om till ett system av första ordningen. Först då går tidsstegningsmetoderna att använda, och de tillämpas komponentvis på systemet.

x=(y,y,,y(n1))T,x=F(t,x)x=(y,y',\ldots,y^{(n-1)})^{T},\qquad x'=F(t,x)

Fördjupning

Vanliga fallgropar

Framåt Euler kräver korta steg för styva problem, där en implicit metod är stabil för betydligt längre steg. Vid randvärdesproblem gäller diskretiseringen bara de inre punkterna, och randvärdena flyttas över till högerledet i stället för att vara obekanta i systemet.

Formler i området

ODE till första ordningens system

y(n)=F(t,y,,y(n1)),x=(y,y,,y(n1))T,x=(x2F(t,x))y^{(n)}=F(t,y,\ldots,y^{(n-1)}),\quad x=(y,y',\ldots,y^{(n-1)})^T,\quad x'=\begin{pmatrix}x_2\\ \vdots\\ F(t,x)\end{pmatrix}
Vad gör formeln?
Skriver en ODE av ordning n som ett system med n ekvationer av första ordningen.
När får den användas?
Den högsta derivatan kan lösas ut.

Framåt Euler

yn+1=yn+hf(tn,yn)y_{n+1}=y_n+h f(t_n,y_n)
Vad gör formeln?
Explicit enstegsmetod av ordning ett.
När får den användas?
Steglängden h är vald så att metodens fel och stabilitet är acceptabla.

Heuns metod

y~n+1=yn+hf(tn,yn)yn+1=yn+h2[f(tn,yn)+f(tn+1,y~n+1)]\begin{aligned} \tilde y_{n+1} &= y_n + h f(t_n,y_n) \\ y_{n+1} &= y_n + \frac{h}{2}\left[f(t_n,y_n) + f(t_{n+1},\tilde y_{n+1})\right] \end{aligned}
Vad gör formeln?
Heuns metod tar ett Euler-steg som prediktor och korrigerar sedan med medelvärdet av derivatorna i de två punkterna.
När får den användas?
Explicit tvåstegsmetod; funktionen måste kunna beräknas både i den kända punkten och i prediktorpunkten.

Bakåt Euler

yn+1=yn+hf(tn+1,yn+1)y_{n+1}=y_n+h f(t_{n+1},y_{n+1})
Vad gör formeln?
Implicit A-stabil enstegsmetod av ordning ett.
När får den användas?
Den implicita ekvationen för yₙ₊₁ kan lösas vid varje steg.

Diskretisering av linjärt randvärdesproblem

u+p(x)u+q(x)u=r(x)Au=b-u''+p(x)u'+q(x)u=r(x)\quad\Longrightarrow\quad A\mathbf{u}=\mathbf{b}
Vad gör formeln?
Samlar finita differenser och randvillkor i ett linjärt system.
När får den användas?
Randvillkoren införs konsekvent och nätet täcker hela intervallet.

Kan du använda differentialekvationer?

Lös en riktig tentauppgift från SF1547 med ledtrådar och lösningsförslag. Inget konto behövs.

Prova en uppgift