Solving Differential Equations in R

Post Reply
User avatar
Eli
Senior Expert Member
Reactions: 183
Posts: 5214
Joined: 9 years ago
Location: Tanzania
Has thanked: 75 times
Been thanked: 88 times
Contact:

#1

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, https://www.rstudio.com/resources/train ... -learning/ in your machine. To obtain R for any Ubuntu distribution, follow these instructions.

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. tssfl@tssfl:~$ 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 a 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/periodi ... tion-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
1
1 Image
TSSFL -- A Creative Journey Towards Infinite Possibilities!
User avatar
Forbidden_Technology
Senior Expert Member
Reactions: 16
Posts: 113
Joined: 9 years ago
Has thanked: 25 times
Been thanked: 14 times

#2

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
1
1 Image
Falcon Heavy
Member
Reactions: 7
Posts: 19
Joined: 6 years ago
Has thanked: 1 time

#3

Intriguing useful post written with pragmatic thinking!
1
1 Image
User avatar
Eli
Senior Expert Member
Reactions: 183
Posts: 5214
Joined: 9 years ago
Location: Tanzania
Has thanked: 75 times
Been thanked: 88 times
Contact:

#4

More productivity in R can be achieved by using R Studio install-rstudio-open-source-for-linux-5894
1
1 Image
TSSFL -- A Creative Journey Towards Infinite Possibilities!
Post Reply

Return to “R”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 0 guests