# Differential Equations

##### 462 words — categories: calculus

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

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

or

\[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")
plt.legend(frameon=False)
```

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)
f
```

`## 1.0*2.71828182845905**x + 5*x**2/2 - 0.666666666666667*x**1.5`

```
constant = solve(Eq(8, f.subs(x, 0) + C), C)
constant
```

`## [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.