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.