Affiliation:
1. University of Oxford, United Kingdom
Abstract
Most numerical ODE solvers require problems to be written as systems of first-order differential equations. This normally requires the user to rewrite higher-order differential equations as coupled first-order systems. Here, we introduce the treeVar class, written in object-oriented Matlab, which is capable of algorithmically reformulating higher-order ODEs to equivalent systems of first-order equations. This allows users to specify problems using a more natural syntax and saves them from having to manually derive the first-order reformulation. The technique works by using operator overloading to build up syntax trees of expressions as mathematical programs are evaluated. It then applies a set of rules to the resulting trees to obtain the first-order reformulation, which is returned as another program. This technique has connections with algorithmic/automatic differentiation. We present how treeVar has been incorporated in Chebfun, greatly improving the ODE capabilities of the system.
Funder
The MathWorks, Inc
European Research Council under the European Union's Seventh Framework Programme
ERC
Publisher
Association for Computing Machinery (ACM)
Subject
Applied Mathematics,Software
Reference17 articles.
1. Reformulation of Boundary Value Problems into “Standard” Form
2. Á. Birkisson. 2017. The treeVar class for automatic reformulation of ODEs to first order systems. Retrieved from https://github.com/asgeirbirkis/treeVar. Á. Birkisson. 2017. The treeVar class for automatic reformulation of ODEs to first order systems. Retrieved from https://github.com/asgeirbirkis/treeVar.
3. Automatic Fréchet Differentiation for the Numerical Solution of Boundary-Value Problems
4. Exponential Time Differencing for Stiff Systems
5. T. A. Driscoll N. Hale and L. N. Trefethen (Eds.). 2014. Chebfun Guide. Pafnuty Publications Oxford. T. A. Driscoll N. Hale and L. N. Trefethen (Eds.). 2014. Chebfun Guide. Pafnuty Publications Oxford.