These routines are implemented as MATLAB extensions for Windows and Linux (both 32 and 64 bits). They work 3-5 times faster than the fastest native MATLAB ode* function for each system I tested, including stiff ones. Besides that they guarantee precision on each step of integration because they use Runge's rule (except England's process using difference between 4th and 5th order methods as a residual measure). I noticed that not all systems can be solved by native MATLAB ode* functions with given precision (see samples provided with the packages). The extensions provided below don't have this issue.
The following algorithms are currently implemented:
|odeEngland||X'=F(t,X)||Runge-Kutta process modification developed by R. England.
R. England. "Error Estimates for Runge-Kutta Type Solutions to Systems of Ordinary Differential Equations" // Research and Development Department, Pressed Steel Fisher Ltd., Cowley, Oxford, UK. October 1968
|odeLawson||X'=F(t,X)||Exponential method modification developed by J.D. Lawson. It's recommended for linear and quasi-linear systems including stiff ones. The method is A-stable for linear systems, i.e. residuals do not depend on time step length.
Lawson J.D. Generalized Runge-Kutta processes for stable systems with large Lipschitz constants // SIAM Journal on Numerical Analysis, 1967, V. 4, No 3.
|odeLawsonA||X'=A(t)X + Fi(t)||as above|
|odeLawsonU||X'=BX + u(t,X)||as above|
|odeRosenbrock||X'=F(t,X)||Implicit process developed by H.H. Rosenbrock. It's recommended for non-linear systems including stiff ones.
H.H. Rosenbrock "Some general implicit processes for the numerical solution of differential equations" Comput. J., 5 (1963) pp.329-330.
|odeRosenbrockA||X'=F(X)||same as above but developed for autonomous systems|