Gewone differentiaalvergelijkingen: Lijnelementveld en oplossingskrommen met R
Voorwaartse Euler methode [R opdracht]
Maak een R script dat de voorwaartse Euler methode implementeert voor een willekeurige functie \(\varphi(t,y)\) en pas deze dan eens toe op de volgende beginwaardeproblemen:
\[\begin{aligned} \frac{\dd y}{\dd t}&=y\,(1-\tfrac{1}{3}y),\quad &y(-1)=.25\\ \\
\frac{\dd y}{\dd t}& =y\,(1-\tfrac{1}{3}y), &y(-1)=2.5\\ \\
\frac{\dd y}{\dd t}&=y\,(1-\tfrac{1}{3}y), &y(-1)=5.0\\ \\
\frac{\dd y}{\dd t}&=y\,(1-\tfrac{1}{3}y), &y(-1)=-0.25\end{aligned}
\]
De belangrijkste functie in jouw programma noem je Euler
en die heeft de volgende structuur
Euler <- function(phi, t0, y0, t1, N=100) {
# phi is de functie bij de GDV dy/dt = phi(t,y)
# beginwaarde y(t0) = y0
# tijdinterval is [t0, t1]
# N is het aantal stappen in de Euler methode
# df is een tabel met opeenvolgende berekende punten van de oplossingskromme
...
return(df)
}
Maak steeds een diagram waarin het lijnelementenveld en de grafiek van de oplossingskromme getekend zijn. Als de differentiaalvergelijking gelijk blijft, maar de beginwaarden wijzigen, dan kun je de oplossingskrommen in één figuur tekenen met verschillende kleuren.