Gewone differentiaalvergelijkingen: Lijnelementveld en oplossingskrommen met R
Tekenen van een lijnelementenveld bij een autonome GDV met de flowField functie
Stel dat we een autonome differentiaalvergelijking van de vorm \[\frac{\dd y}{\dd t} = \varphi(y)\] hebben voor een zekere functie \(\varphi\) en dat we het lijnelementenveld willen tekenen m.b.v. R. Op elk punt \(t,y\) kunnen we dan de helling van een oplossing \(y\) berekenen en in het \(ty\)-vlak een kort lijnstuk met deze helling tekenen. Om dit op een regelmatig rooster te doen zijn is de functie flowField
handig uit het phaseR
pakket. Voor niet-autonome differentiaalvergelijkingen zijn geen faciliteiten; je zult dan zelf code voor een lijnelementenveld moeten maken.
Gebruik van flowField voor lijnelementenveld Een concreet voorbeeld met \(\varphi(y)=1-2y\) ziet er als volgt uit:
library(phaseR)
model <- function(tijd, begintoestand, parameters){
with(as.list(c(begintoestand, parameters)), {
dydt <- 2-2*y
return(list(dydt))
})
}
params <- NULL
flowField(model, xlim = c(0, 2), ylim = c(0, 2),
parameters = params, system = "one.dim",
state.names = c("y"), add = FALSE,
xlab = "t", ylab = "y", points = 11,
arrow.head = 0.001, col = "red",
main = "lijnelementenveld bij dy/dt = 2 - 2y")
Ontgrendel volledige toegang