rODE - ComPADREF or t he a ppl i c a t i ons t he r e i s a not he r r unne r...

22
7/13/2017 README https://cran.r-project.org/web/packages/rODE/README.html 1/22 rODE The goal of rODE is to explore R and its S4 classes and its differences with Java and Python classes while exploring physics simulations by solving ordinary differential equations (ODE). This is not your typical black-box ODE solver. You really have to develop your ODE algorithm using any of the ODE solvers available. The objective is learning while doing. rODE has been inspired on the extraordinary physics library for computer simulations OpenSourcePhyisics. Take a look at http://opensourcephysics.org . The ODE solvers implemented in R so far: Euler Euler-Richardson RK4 RK45, Dormand-Prince45 Verlet Installation You can install the latest version of rODE from github with: devtools::install_github("f0nzie/rODE") Or from CRAN: install.packages("rODE") Examples Example scripts are located under the folder examples inside the package. These examples make use of a parent class containing a customized rate calculation as well as the step and startup method. The methods that you would commonly find in the base script or parent class are: getRate() getState() step() or doStep() setStepSize() init(), which is not the same as the S4 class initialize method initialize(), and the constructor These methods are defined in the virtual classes ODE and ODESolver.

Transcript of rODE - ComPADREF or t he a ppl i c a t i ons t he r e i s a not he r r unne r...

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 1/22

    rODE

    The goal of rODE is to explore R and its S4 classes and its differences with Java and Python classes whileexploring physics simulations by solving ordinary differential equations (ODE).

    This is not your typical black-box ODE solver. You really have to develop your ODE algorithm using any ofthe ODE solvers available. The objective is learning while doing.

    rODE has been inspired on the extraordinary physics library for computer simulations OpenSourcePhyisics.Take a look at http://opensourcephysics.org.

    The ODE solvers implemented in R so far:

    EulerEuler-RichardsonRK4RK45, Dormand-Prince45Verlet

    Installation

    You can install the latest version of rODE from github with:

    devtools::install_github("f0nzie/rODE")

    Or from CRAN:

    install.packages("rODE")

    Examples

    Example scripts are located under the folder examples inside the package.

    These examples make use of a parent class containing a customized rate calculation as well as the step andstartup method. The methods that you would commonly find in the base script or parent class are:

    getRate()getState()step() or doStep()setStepSize()init(), which is not the same as the S4 class initialize methodinitialize(), andthe constructor

    These methods are defined in the virtual classes ODE and ODESolver.

    http://www.rdocumentation.org/packages/rODEhttp://opensourcephysics.org/

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 2/22

    Two other classes that serve as definition classes for the ODE solvers are: AbstractODESolver and ODEAdaptiveSolver.

    For instance, the application KeplerApp.R needs the class Kepler located in the Kepler.R script, which iscalled with planet Attaching package: 'rODE' #> The following object is masked from 'package:stats': #> #> step importFromExamples("AdaptiveStep.R")

    # running function AdaptiveStepApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 3/22

    ode

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 4/22

    # Example file: ComparisonRK45App.R # ODE Solver: Runge-Kutta 45 # Class: RK45 library(rODE) importFromExamples("ODETest.R")

    ComparisonRK45App

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 5/22

    FallingParticleODE

    # +++++++++++++++++++++++++++++++++++++++++++++++ example: FallingParticleApp.R # Application that simulates the free fall of a ball using Euler ODE solver library(rODE) importFromExamples("FallingParticleODE.R") # source the class

    FallingParticleODEApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 6/22

    } DT

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 7/22

    planet

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 8/22

    # ++++++++++++++++++++++++++++++++++++++++++++++++++ example: KeplerEnergyApp.R # Demostration of the use of the Verlet ODE solver # library(rODE) importFromExamples("KeplerEnergy.R") # source the class Kepler

    KeplerEnergyApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 9/22

    LogisticApp

    library(rODE) importFromExamples("Logistic.R") # source the class Logistic

    # Run the application LogisticApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 10/22

    } DT

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 11/22

    pendulum

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 12/22

    importFromExamples("Planet.R") # source the class

    PlanetApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 13/22

    ProjectileApp

    # +++++++++++++++++++++++++++++++++++++++++++++++++ application: ProjectileApp.R # test Projectile with RK4 # originally uses Euler library(rODE) importFromExamples("Projectile.R") # source the class

    ProjectileApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 14/22

    vy = projectile@state[4]) projectile

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 15/22

    reaction

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 16/22

    importFromExamples("RigidBody.R")

    # run the application RigidBodyNXFApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 17/22

    SHOApp

    library(rODE) importFromExamples("SHO.R")

    # SHOApp.R SHOApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 18/22

    solution

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 19/22

    while (spring@state[3]

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 20/22

    VanderpolApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 21/22

    # +++++++++++++++++++++++++++++++++++++ example: VanderpolMuTimeControlApp.R # This is a modification of the original Vanderpol.R script # In this version, we will add tha ability of setting mu and time lapse. # This example is also shown in the Matlab help guide library(rODE) importFromExamples("VanderpolMuTimeControl.R")

    # run the application VanderpolMuTimeControlApp

  • 7/13/2017 README

    https://cran.r-project.org/web/packages/rODE/README.html 22/22