Description Usage Arguments Examples
Get current state of the system
1 |
object |
a class object |
... |
additional parameters |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | # ++++++++++++++++++++++++++++++++++++++++++++++++ application: VanderPolApp.R
# Solution of the Van der Pol equation
#
importFromExamples("VanderPol.R")
# run the application
VanderpolApp <- function(verbose = FALSE) {
# set the orbit into a predefined state.
y1 <- 2; y2 <- 0; dt <- 0.1;
rigid_body <- VanderPol(y1, y2)
solver <- RK45(rigid_body)
rowVector <- vector("list")
i <- 1
while (getState(rigid_body)[3] <= 20) {
rowVector[[i]] <- list(t = getState(rigid_body)[3],
y1 = getState(rigid_body)[1],
y2 = getState(rigid_body)[2])
solver <- step(solver)
rigid_body <- getODE(solver)
i <- i + 1
}
DT <- data.table::rbindlist(rowVector)
return(DT)
}
# show solution
solution <- VanderpolApp()
plot(solution)
# ++++++++++++++++++++++++++++++++++++++++++++++++++application: SpringRK4App.R
# Simulation of a spring considering no friction
importFromExamples("SpringRK4.R")
# run application
SpringRK4App <- function(verbose = FALSE) {
theta <- 0
thetaDot <- -0.2
tmax <- 22; dt <- 0.1
spring <- SpringRK4()
spring@state[3] <- 0 # set time to zero, t = 0
spring <- setState(spring, theta, thetaDot)
# spring <- setStepSize(spring, dt = dt) # using stepSize in RK4
spring@odeSolver <- setStepSize(spring@odeSolver, dt) # set new step size
rowvec <- vector("list")
i <- 1
while (getState(spring)[3] <= tmax) {
rowvec[[i]] <- list(t = getState(spring)[3], # angle
y1 = getState(spring)[1], # derivative of the angle
y2 = getState(spring)[2]) # time
i <- i + 1
spring <- step(spring)
}
DT <- data.table::rbindlist(rowvec)
return(DT)
}
# show solution
solution <- SpringRK4App()
plot(solution)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.