-
Notifications
You must be signed in to change notification settings - Fork 2
Taylor series method for solving ordinary differential equations
License
headmyshoulder/taylor
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
========================================================================================= ATTENTION: The sources are currently in a debugging mode and not useable at the moment!!! ========================================================================================= taylor ====== taylor is a small library for solving the initial value problem of ordinary differential equations (ODEs) by means of the Taylor series method. It is an add-on for [.odeint](http://www.karstenahnert.com/software/odeint/) and will be one time part of the library. The taylor series methods works by calculating the Taylor coefficients of the state of an ODE. There are already libraries for this method but most of them lack of uniqueness, that is one has to define ODE in an additional application or language like Mathematica. The taylor library uses C++ for this task. The ordinary differential equation is represented as an expression tree which can be build by the standard operators +,-,/,*. Hence it provides an unique and human readable C++ interface. The tree is then transformed into an evaluable tree with the help of boost.proto. An example is the Lorenz system which can be passed and evaluated like: taylor.do_step( make_vector( sigma * ( arg2 - arg1 ) , R * arg1 - arg2 - arg1 * arg3 , arg1 * arg2 - b * arg3 ) , x , t , dt ); arg1, arg2, arg3 are here placeholders for the variables x,y,z of the Lorenz system. In a preliminary version of taylor it has been shown that the performance is better or at least equal to hand written Fortran code. Hence, taylor is a promising candidate for the Taylor series method. Overview -------- The library can be found in boost/numeric/odeint/stepper/taylor.hpp and the subdirectories boost/numeric/odeint/stepper/taylor. Sorry for that strange directory structure, but it should be compatible with odeint such that taylor can be integrated one day into odeint. Test, examples and documentation can be found in libs/numeric/odeint. Copyright Note -------------- Copyright Karsten Ahnert 2011. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
About
Taylor series method for solving ordinary differential equations
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published