Gewone differentiaalvergelijkingen: Lijnelementveld en oplossingskrommen met R
Tekenen van een lijnelementenveld [R uitwerking]
We bekijken de differentiaalvergelijking
Part 1
In het eerste deel van de opdracht moeten we het lijnelementenveld van de bovenstaande differentiaalvergelijking plotten door gebruik te maken van grafische elementen zoals lijnen.
xp <- seq(from=0, to=2, length=10)
yp <- seq(from=0, to=2, length=10)
plot(c(0,2),c(0,2), main="lijnelementenveld bij y'1 - 2ty", ylab = "y", xlab = "t", pch = ".")
for(x in xp){
for(y in yp){
u <- 1.0
v <- 1.0 - 2.0*x*y
L <- sqrt(u*u+v*v)
u <- u/L
v <- v/L
segments(x-0.05*u,y-0.05*v,x+0.05*u,y+0.05*v, col="blue")
}
}
Het resultaat is de volgende figuur:
Deel 2
In het tweede deel van de opdracht passen we het programma zo aan dat er willekeurige coördinaten worden gerandomiseerd op het gebied . Daarna tekenen we op dezelfde manier als hiervoor de lijnen op deze coördinaten. Hieronder staat een voorbeeld van de code:
xp <- runif(2000, min=0, max=2)
yp <- runif(2000, min=0, max=2)
plot(c(0,2),c(0,2), main="lijnelementenveld by y'= 1 - 2ty", ylab = "y", xlab = "t", pch = ".")
for(k in 1:2000){
x <- xp[k]
y <- yp[k]
u <- 1.0
v <- 1.0 - 2.0*x*y
L <- sqrt(u*u+v*v)
u <- u/L
v <- v/L
segments(x-0.05*u,y-0.05*v,x+0.05*u,y+0.05*v, col="gray")
}
Het resultaat is de volgende figuur:
Ontgrendel volledige toegang