This project explores how Bessel functions of the first kind (Jn) and their roots appear in real-world physics, from vibration modes of circular drumheads to frequency modulation (FM) synthesis and planetary motion in Kepler’s equation.
Using Python’s SciPy library, we numerically compute and visualize the first five roots for orders n = 0, 1, 2.
Madeline Renee Boss
Samhitha Devi Kunadharaju
University of Texas at Austin
Course: CS 323E – Elements of Scientific Computing
The Bessel differential equation defines oscillatory solutions that naturally arise in problems with cylindrical or radial symmetry.
We compute the first five roots of J₀(x), J₁(x), and J₂(x) using SciPy’s quad() and fsolve() methods, then visualize how these roots relate to physical systems such as:
- Vibrations of a circular drumhead
- Frequency modulation (FM) signal synthesis
- Harmonic suppression in Kepler’s planetary equation
| File | Description |
|---|---|
bessel_roots_analysis.ipynb |
Jupyter/Colab notebook that computes and visualizes Bessel functions and their roots |
P2.pdf |
Full paper detailing mathematical background and physical applications |
images/bessel_functions_plot.png |
Visualization of J₀(x), J₁(x), and J₂(x) |
images/bessel_roots_plot.png |
Visualization showing computed roots for n = 0, 1, 2 |
requirements.txt |
List of dependencies (NumPy, Matplotlib, SciPy) |
| Bessel Functions | Computed Roots |
|---|---|
![]() |
![]() |
Left: Plots of J₀(x), J₁(x), and J₂(x) showing their oscillatory behavior.
Right: The same functions with their first five roots marked using SciPy’s fsolve().
Install dependencies:
pip install -r requirements.txt

