A Taylor method for solving an ordinary differential equation initial-value problem $\dot x = f(t,x)$, $x(t_0) = x_0$, computes the Taylor series (TS) of the solution at the current point, truncated to some order, and then advances to the next point by summing the TS with a suitable step size. A standard ODE method (e.g. Runge-Kutta) treats function $f$ as a black box, but a Taylor solver requires $f$ to be preprocessed into a code-list of elementary operations that it interprets as operations on (truncated) TS. The trade-off for this extra work includes arbitrary order, typically enabling much larger step sizes. For a standard function, such as $\exp$, this means evaluating $v(t)=\exp(u(t))$, where $u(t),v(t)$ are TS. The sub-ODE method applies the ODE $d v/d u=v$, obeyed by $v=\exp(u)$, to in-line this operation as $\dot v=v\dot u$. This gives economy of implementation: each function that satisfies a simple ODE goes into the "Taylor library" with a few lines of code--not needing a separate recurrence relation, which is the typical approach. Mathematically, however, the use of sub-ODEs generally transforms the original ODE into a differential-algebraic system, making it nontrivial to ensure a sound system of recurrences for Taylor coefficients. We prove that, regardless of how many sub-ODEs are incorporated into $f$, this approach guarantees a sound system. We introduce our sub-ODE-based Matlab ODE solver and show that its performance compares favorably with solvers from the Matlab ODE suite.
翻译:暂无翻译