A differential equation is an equation that involves derivatives, or differentials. We previously look the differential equation of population growth.

\[\frac{dP}{dt} = kP\]


\[P^\prime(t) = k \cdot P(t)\]

where \(P\), or \(P(t)\) is the population at time \(t\). This equation is a model of uninhibited population growth. Its solution is the function

\[P(t) = P_0e^{kt}\]

where the constant \(P_0\) is the size of the population at \(t=0\). In general, differential equations have far reaching applications and have solutions that are functions.

Solving (Certain) Differential Equations

We use the notation \(y^\prime\) to denote a derivative. Thus, if \(y = f(x)\), then

\[y^\prime = \frac{dy}{dx} = f^\prime(x)\]

We can find the solutions to some differential equations by finding their antiderivatives (or indefinite integrals). The differential equation

\[\frac{dy}{dx} = g(x)\] or

\[y^\prime = g(x)\] has the solution

\[y = \int g(x) dx\]

As an example then, let’s solve

\[y^\prime = 2x\]

from sympy import *
from sympy.abc import x

yprime = 2 * x
integrate(yprime, x)
## x**2

Note! I don’t know how to return the constant of integration but the complete answer (accorind to any textbook) should be

\[y = \int 2x dx = x^2 + C\]

Technically, \(2x\) is the general solution to the differential equations. Taking specific values of \(C\) gives particular solutions.

import matplotlib.pyplot as plt
import numpy as np

xvals = np.arange(-5, 5, 0.001)
y0 = [x**2 for x in xvals]
y1 = [x**2 + 3 for x in xvals]
y2 = [x**2 - 3 for x in xvals]

plt.plot(xvals, y0, label="C = 0")
plt.plot(xvals, y1, label="C = 3")
plt.plot(xvals, y2, label="C = -3")

Let’s solve

\[f^\prime(x) = e^x + 5x - x^{1/2}\] given that \(f(0) = 8\).

from sympy.abc import C
from mpmath import e

yprime = e**x + 5*x - x**(1/2)
f = integrate(yprime, x)
## 1.0*2.71828182845905**x + 5*x**2/2 - 0.666666666666667*x**1.5
constant = solve(Eq(8, f.subs(x, 0) + C), C)
## [7.00000000000000]

This means that the particular solution is

f + constant[0]
## 1.0*2.71828182845905**x + 5*x**2/2 - 0.666666666666667*x**1.5 + 7.0

Separation of Variables

There are some differential equations where you might have to use a technique called separation of variables. Let’s take an example from the literature.

In psychology, one model of stimulus-response asserts that the rate of change \(dR/dS\) of the reaction \(R\) with respect to a stimulus \(S\) is inversely proportional to the intensity of the stimulus. That is,

\[\frac{dR}{dS} = \frac{k}{S}\] where \(k\) is some positive constant.

To solve this equation, we first separate the variables and then we integrate both sides to find the solution.

\[dR = k \cdot \frac{dS}{S}\] \[\int dR = \int k \cdot \frac{dS}{S}\] \[R = k \ln S + C\] Unfortunately, I couldn’t figure out how to do this in sympy so I’m leaving it like this.