There's also an introductory textbook about ODEs ("Exploring ODEs") that uses chebfun [2] throughout.
As well as the original MATLAB implementation, there are now implementations in Julia, Python, and some other languages [3].
The Chebyshev basis in time is still not great. This was used in Chebfun before but there's a note that for time to just use standard ODE solvers because it did not good performance. Collocation really only makes sense on BVPs.
This distinction between initial value problems (IVP, one endpoint known, hence a “time” differential equation) and BVPs (both endpoints known, not “time”) also appears in this introduction to the Chebfun solvers:
https://www.chebfun.org/docs/guide/guide07.html (last paragraph of sec 7.1)
Following the breadcrumbs to the IVP treatment in chapter 10
https://www.chebfun.org/docs/guide/guide10.html (Sec 10.2)
we read:
A major change was introduced in Version 5.1 in how initial-value (and final-value) problems are solved. Before, Chebfun used the same global spectral representations as for BVPs. This usually works fine for linear problems, but for nonlinear ones, it is inferior to the method of time-stepping by Runge-Kutta or Adams formulas. In Chebfun Version 5.1, we accordingly switched to solving IVPs numerically by ode113 (by default), converting the resulting output to a Chebfun representation.
Thanks again for the helpful comments.
dx/dt = stuff
dy/dt = stuff
OR
dt/dx = stuff
dt/dy = stuff
Require very different approaches.