Ordinary Differential Equation (ODE) by Python

Sachin Chandrasekara
2 min readJun 17, 2021

--

Photo by Scott Graham on Unsplash

I suppose I should begin with a fundamental explanation of solving ordinary differential equations. But, of course, you’re familiar with ODE. An ODE is an equation that contains some of a function’s ordinary derivatives.

Solving Ordinary Differential Equations entails determining how well the variables will change over time, resulting in the solution, also known as the solution curve. In this article, I will introduce ODE and, more importantly, show how to solve ODE using Python.

Methodology

Differential solutions are obtained in Python using Scipy. Integrate library and the Odeint function. ODEINT demands three inputs.

x = odeint(model, x_0, t)

  • model : function name of that ‘returns derivative values at specified x and t values dx/dt = (x,t)
  • x_0: Initial conditions
  • t: Time intervals between which the solution should be delivered.

Let’s consider the following differential equation with parameter k=0.5, initial condition x_0=0.01

Figure 1 The differential equation

To solving ODE first, we have to import the needed Numpy, Scipy, and Matplotlib libraries into python. The model, initial conditions, and time features are obtained as inputs to ODEINT, which is used to calculate x numerically (t).

As shown in figure 2 you can see the output of only one k value. (k = 0.5)

Figure 2 The output result of Code1

The fourth input, args, is optional and permits additional information to be supplied into the model function. By providing a different argument, the argument k is now input to the model function.

Here we considered as input different k values. Such as k=0.1, k=0.3 and k=0.8.

Figure 2 The output results of Code2

Final Thoughts!

I hope this post is helpful to you as you write programmes to solve ODEs in Python. Thank you for taking the time to read this. Please let me know if you have any suggestions.

--

--

Sachin Chandrasekara
Sachin Chandrasekara

Written by Sachin Chandrasekara

Undergraduate Student of University of Ruhuna Faculty of Science