**Sturm’s separation theorem** says that the zeros of independent solutions to an equation of the form

alternate. That is, between any two consecutive zeros of one solution, there is exactly one zero of the other solution. This is an important theorem because a lot of differential equations of this form come up in applications.

If we let *p*(*x*) = 0 and *q*(*x*) = 1, then sin(*x*) and cos(*x*) are independent solutions and we know that their zeros interlace. The zeros of sin(*x*) are of the form *n*π, and the zeros of cos(*x*) are multiples of (n + 1/2)π.

What’s less obvious is that if we take two different linear combinations of sine and cosine, as long as they’re not proportional, then their zeros interlace as well. For example, we could take *f*(*x*) = 3 sin(*x*) + 5 cos(*x*) and *g*(*x*) = 7 sin(*x*) – 11 cos(*x*). These are also linearly independent solutions to the same differential equation, and so the Sturm separation theorem says their roots have to interlace.

If we take *p*(*x*) = 1/*x* and *q*(*x*) = 1 – (ν/*x*)² then our differential equation becomes **Bessel’s equation**, and the Bessel functions *J*_{ν} and *Y*_{ν} are independent solutions. Here’s a little Python code to show how the zeros alternate when ν = 3.

import matplotlib.pyplot as plt from scipy import linspace from scipy.special import jn, yn x = linspace(4, 30, 100) plt.plot(x, jn(3, x), "-") plt.plot(x, yn(3, x), "-.") plt.legend(["$J_3$", "$Y_3$"]) plt.axhline(y=0,linewidth=1, color="k") plt.show()

Really nice note. It looks like there is a typo of Strum for Sturm in a couple of places.

“What’s less obvious is that if we take two different linear combinations of sine and cosine, as long as they’re not proportional, then their zeros interlace as well. For example, we could take f(x) = 3 sin(x) + 5 cos(x) and g(x) = 7 sin(x) – 11 cos(x).”

Another way to see this is to use the fact that any linear combination of sine and cosine can be written as A sin(x+B) for some constants A and B.