# EulerRichardson-class: EulerRichardson ODE solver class In rODE: Ordinary Differential Equation (ODE) Solvers Written in R Using S4 Classes

## Description

EulerRichardson ODE solver class

EulerRichardson generic

EulerRichardson constructor ODE

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10``` ```EulerRichardson(ode, ...) ## S4 method for signature 'EulerRichardson' init(object, stepSize, ...) ## S4 method for signature 'EulerRichardson' step(object, ...) ## S4 method for signature 'ODE' EulerRichardson(ode, ...) ```

## Arguments

 `ode` an ODE object `...` additional parameters `object` internal passing object `stepSize` the size of the step

## Examples

 ``` 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``` ```# ++++++++++++++++++++++++++++++++++++++++++++++++++ example: PendulumApp.R # Simulation of a pendulum using the EulerRichardson ODE solver suppressPackageStartupMessages(library(ggplot2)) importFromExamples("Pendulum.R") # source the class PendulumApp <- function(verbose = FALSE) { # initial values theta <- 0.2 thetaDot <- 0 dt <- 0.1 pendulum <- Pendulum() # pendulum@state[3] <- 0 # set time to zero, t = 0 pendulum <- setState(pendulum, theta, thetaDot) pendulum <- setStepSize(pendulum, dt = dt) # using stepSize in RK4 pendulum@odeSolver <- setStepSize(pendulum@odeSolver, dt) # set new step size rowvec <- vector("list") i <- 1 while (getState(pendulum)[3] <= 40) { rowvec[[i]] <- list(t = getState(pendulum)[3], # time theta = getState(pendulum)[1], # angle thetadot = getState(pendulum)[2]) # derivative of angle pendulum <- step(pendulum) i <- i + 1 } DT <- data.table::rbindlist(rowvec) return(DT) } # show solution solution <- PendulumApp() plot(solution) ```

rODE documentation built on May 1, 2019, 10:17 p.m.