The solutions of scalar ordinary differential equations become more complex as their coefficients increase in magnitude. As a consequence, when a standard solver is applied to such an equation, its running time grows with the magnitudes of the equation's coefficients. It is well known, however, that scalar ordinary differential equations with slowly-varying coefficients admit slowly-varying phase functions whose cost to represent via standard techniques is largely independent of the magnitude of the equation's coefficients. This observation is the basis of most methods for the asymptotic approximation of the solutions of ordinary differential equations, including the WKB method. Here, we introduce two numerical algorithms for constructing phase functions for scalar ordinary differential equations inspired by the classical Levin method for the calculation of oscillatory integrals. In the case of a large class of scalar ordinary differential equations with slowly-varying coefficients, their running times are independent of the magnitude of the equation's coefficients. The results of extensive numerical experiments demonstrating the properties of our algorithms are presented.
翻译:标量常微分方程的解随其系数的增大而变得更为复杂。因此,当标准求解器应用于此类方程时,其运行时间随方程系数的幅值而增长。然而,众所周知,具有缓变系数的标量常微分方程存在缓变相函数,通过标准技术表示该函数的成本基本与方程系数的幅值无关。这一观察是大多数常微分方程渐近近似方法(包括WKB方法)的基础。本文受经典莱文方法在振荡积分计算中的启发,提出了两种用于构造标量常微分方程相函数的数值算法。对于一大类具有缓变系数的标量常微分方程,这些算法的运行时间与方程系数的幅值无关。本文还展示了大量数值实验的结果,用以证明我们算法的特性。