Runge is an Interactive Solver for Systems of Ordinary Differential Equations. It solves initial value problem (aka Cauchy problem) defined as the following: for a given system of ordinary differential equations

and given initial values

find solution

at a given point of “time” i.e. for a given value of independent variable . Actually Runge produces solutions set

where is the number of steps taken. This allows to build trajectories of solutions.

- It’s fast. It utilizes BLAS and LAPACK FORTRAN libraries optimized for modern multi-core processors.
- It’s interactive. It allows you to start a solution by mouse click on a plane.
- It’s precise. It uses Runge Rule to adjust step length to satisfy required precision on each step.
- It’s effective. When it needs to compute derivatives (Jacobian matrix, for example) it does that analytically, i.e. without using numerical methods.
- It’s portable. It works on Windows and Linux (32 and 64 bit versions) and Mac OSX (64 bit only).
- It’s open. It allows you to implement and embed your own algorithms (aka “solvers”).
- It’s easy to use. It allows to export results to MS Excel and MATLAB.
- It’s free. It’s distributed under Boost Software License.

Runge comes with pre-installed solvers optimized for solving differential equations of different types:

- Type 1. Generic non-autonomous system
- Type 2. Generic autonomous system (it’s a subset of Type 1, i.e. you
can use both types 1 and 2 for autonomous sytems — sometimes it
makes sense for choosing appropriate solver)
- Type 3. Pseudo-linear system (here it’s assumed that is
relatively small compared to matrix )
- Type 4. Pseudo-linear system with constant matrix B

The solvers (algorithms) coming in standard package are:

- Runge-Kutta process modification developed by R. England. Fast and precise method of fifth order suitable for solving systems of Type 1. See [1].
- Exponential method modification developed by J.D. Lawson. It’s recommended for linear and quasi-linear systems of Type 1,3 and 4 (including stiff ones). The method is A-stable for linear systems, i.e. residuals do not depend on step length. See [2].
- Implicit process developed by H.H. Rosenbrock. It’s recommended for non-linear systems of Type 1 and 2 (including stiff ones). See [3].

The following functions and operators are supported for programming the systems mentioned above.

+ - * / ^ | arithmetic operators: add, subtract, multiply, divide, power |

exp(x) | |

sqrt(x) | |

log(x) | natural logarithm of x |

log10(x) | common (base 10) logarithm of x |

sin(x) | sine of x |

cos(x) | cosine of x |

tan(x) | tangent of x |

asin(x) | arc sine of x |

acos(x) | arc cosine of x |

atan(x) | arc tangent of x |

sinh(x) | hyperbolic sine of x |

cosh(x) | hyperbolic cosine of x |

tanh(x) | hyperbolic tangent of x |

sinint(x) | sine integral of x |

cosint(x) | cosine integral of x |

sign(x) | sign of x |

abs(x) | |

iif(x,expr1,expr2) | immediate if |

sat(x,y) | satellite function of x and y |

i | 1 (one) |

0 (empty field means zero) | |

Examples: 2*sin(t-1)+cos(t)-x^2, sqrt(abs(x)), iif(t,sin(x),cos(x)) etc.