Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

DZone's Guide to

Interlaced Roots: Strum's Separation Theorem

We take a look the power Python has for data science when it comes to solving higher order mathematical problems, taking an example from differential equations.

· Big Data Zone ·
Free Resource

Comment (0)

Save
{{ articles[0].views | formatCount}} Views

Learn how to operationalize machine learning and data science projects to monetize your AI initiatives. Download the Gartner report now.

Strum'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 Strum 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()``````

Bias comes in a variety of forms, all of them potentially damaging to the efficacy of your ML algorithm. Our Chief Data Scientist discusses the source of most headlines about AI failures here.

Topics:
big data ,python ,matplotlib ,tutorial

Comment (0)

Save
{{ articles[0].views | formatCount}} Views

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.