• Trending Topics  Back Forward Stop Play

Solving Differential Equations in R

User avatar

Author
Eli
Senior Expert Member
Total Posts: 889
Joined: Thu Dec 25, 2014 3:33 pm
Total Topics: 792
Location: Tanzania
Issued   Likes: 47 times
Received   Likes: 42 times
Gender:
Zodiac: Aries
Contact:

Solving Differential Equations in R

Unread postby Eli Sat Apr 25, 2015 2:56 am

R is not a prominent tool for solving differential equations when compared to the historically well known proprietary tools, MATLAB, Mathematica, Maple and emerging open source software such as Octave, Sage and Scilab, but it is very powerful. R is rapidly becoming useful for both teaching and research to many scientists apart from mathematicians due to its excellence and strength in statistical computations, visualization and analysis and hence scientists ranging from biologists to chemists, physicists, ecologists and economists will take an advantage over R to solve differential equations (DEs).

Most differential equations that model real-life problems are complicated in nature, and their solutions cannot be obtained analytically. Thus, it is often a practice to approximate solutions to these problems numerically.

R can be used to solve initial-value problems (IVPs) of ordinary differential equations (ODEs), partial differential equations (PDEs), differential algebraic equations (DAEs) and delay differential equations (DeDEs). We will go about and see how we can use R as a problem solving environment for DEs.

Modelling with R

First, you need to install R (see also https://www.rstudio.com/, https://www.rstudio.com/resources/training/online-learning/) in your machine. To obtain R for any ubuntu distribution, follow these instructions: http://forums.tssfl.com/viewtopic.php?f=33&t=188.

Here we show how to use the R package "deSolve" (there are other R packages for solving DEs), the successor of package "odesolve" to solve IVPs numerically.


    Example 1

Solve .

Open the command line and invoke R by typing R, you will see something similar to this one below in the console:

  1. gaDgeT@gaDgeT:~$ R
  2. R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"
  3. Copyright (C) 2013 The R Foundation for Statistical Computing
  4. Platform: x86_64-pc-linux-gnu (64-bit)
  5.  
  6. R is free software and comes with ABSOLUTELY NO WARRANTY.
  7. You are welcome to redistribute it under certain conditions.
  8. Type 'license()' or 'licence()' for distribution details.
  9.  
  10.  Natural language support but running in an English locale
  11.  
  12. R is a collaborative project with many contributors.
  13. Type 'contributors()' for more information and
  14. 'citation()' on how to cite R or R packages in publications.
  15.  
  16. Type 'demo()' for some demos, 'help()' for on-line help, or
  17. 'help.start()' for an HTML browser interface to help.
  18. Type 'q()' to quit R.

Steps to solve this simple ODE and solution (Solution 1) are found below. lwd = 2 means plot the function with the solid line twice as thick as the default, # marks the beginning of a comment, anything after it is ignored by R.

Screen shot for Solution 1

Steps_2_produce_solution_1.png


Solution 1

solution_1.png
(22.3 KiB) Downloaded 506 times
solution_1.png
(22.3 KiB) Downloaded 506 times



    Example 2

Next we show how to solve the logistic equation .

This equation is used to describe population growth in terms of density changes of one species () in an environment due to competition for available resources. is carrying capacity, is a growth rate.


Screen shot showing steps that produce Solution 2 for this logistic equation

Steps_2_produce_solution_2.png


Solution 2

solution_2.png




    Example 3

The third problem under consideration is the SIR Model for spread of disease (see http://www.maa.org/publications/periodicals/loci/joma/the-sir-model-for-spread-of-disease-the-differential-equation-model for details). This is a multiple variable system of first-order ODEs given by



Below is the screen shot showing steps that produce solution 3

Steps_2_produce_solution_3.png


Solution 3

Solution_3_SIR_Model.png



Solution_3(2)_SIR_model.png




    Example 4

Finally, we consider the famous Lorenz (1963) model, first chaotic dynamic system to be described, assumed to represent the idealized behaviour of the Earth's atmosphere. The model consists of a system of three ODEs and characterize the dynamics of three state variables and . The model system of equations is



Here, , , respectively, refer to the horizontal and vertical temperature distribution and represents convective flow.

are three parametric variables with values of and .

See the screen shot below for implementation and the corresponding Solution 4

Steps_2_produce_solution_4.png


Solution 4

Solution_4_Lorenz_model.png
:cross: :purple_heart: :heart: d :blue_heart:
User avatar

Forbidden_Technology
Member
Total Posts: 20
Joined: Sun Apr 26, 2015 6:07 pm
Total Topics: 14
Issued   Likes: 22 times
Received   Likes: 10 times
Gender:
Contact:

Re: Solving Differential Equations in R

Unread postby Forbidden_Technology Tue May 26, 2015 4:03 pm

This is awesome work! I wonder why many people waste too much time posting useless stuffs especially on social websites rather than finding a forum like this one and write something sensible!

Here is another great tool for solving (partial) differential equations: FreeFem++, http://en.wikipedia.org/wiki/FreeFem%2B%2B

Was This Topic Useful?

Return to “R”

Who is online

Users browsing this forum: No registered users and 1 guest