Finding the eigenvalues of a Sturm–Liouville problem can be a computationally challenging task, especially when a large set of eigenvalues is computed, or just when particularly large eigenvalues are sought. This is a consequence of the highly oscillatory behavior of the solutions corresponding to high eigenvalues, which forces a naive integrator to take increasingly smaller steps. There are many approaches to the numerical solution of the Sturm–Liouville problem: finite differences and variational methods, both leading to a matrix eigenvalue problem; shooting methods using an initial value solver; and coefficient approximation methods.