Skip to content
Runge-Kutta integration of ordinary differential equations with Perl 6
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.travis.yml add provides section for latest panda (S11 support) Apr 1, 2015
README Show travis build status in README Oct 11, 2015


Runge-Kutta integration for systems of ordinary, linear differential

WARNING: this module is not yet thoroughly tested. Use it at your own risk.
Bug reports, tests and patches are welcome!

Let's say you have a differential equation for the function f(t),
with the equation

df/dt = f(t)^2 + t
and the initial value f(t=0) = 1;

In the context of this module, we call df/dt the "derivative",
t the "parameter"

You'd solve that numerically with this Perl 6 code:

# begin

    use Math::RungeKutta;
    # function that calculates the derivative that
    # Math::RungeKutta will integrate
    sub d($t, @values) { @values[0]**2 + $t}
    # that's a function that gets called with the
    # current values after each integration step
    sub callback($t, @values) { say "$t @values[0]" };
    my @initial = 1;

# end

And then look at the result:
$ PERL6LIB=lib perl6 | xmgrace -nxy -

The interfaces is inspired by Perl 5 module Math::RungeKutta, to be found at

[![Build Status](](
Something went wrong with that request. Please try again.