A Library for Computing with Trees and B-Series
MetadataShow full item record
Unordered rooted trees and B-series can be used to analyze the properties of many one-step methods for autonomous ordinary differential equations.This thesis describes aspects of trees and B-series necessary to use them to check whether or not a given numerical method has certain properties.This is then used to implement a software library in Python with the ability to investigate the properties of a numerical method given its B-series. The library represents unordered rooted trees as nested multisets, and include some common functions on trees including order, symmetry coefficient, density and an ordering relation.Operations such as the Butcher product and the grafting product are also implemented.Free trees are also implemented for the use in some of the test for properties of numerical methods. Furthermore the library includes forests and the product, coproduct and antipode of the Hopf algebra of Butcher, Connes and Kreimer. B-series are represented as functions corresponding to either characters or infinitesimal characters of the Hopf algebra.The library contains functionality to compose, invert, find the adjoint and conjugate of the functions corresponding to the B-series of numerical methods.Since several of the properties of numerical methods have simpler formulations for the B-series of the modified equation, the library includes functionality to go back and forth between the B-series of a method and its modified equation. With the help of the above, the library can find a numerical methods order of convergence as well as the order to which a method is symplectic, energy preserving or conjugate to symplectic.