Request for Difficult Differential Equations

Firstly I would like to mention that I have just released version 0.06 of Math::GSLx::ODEIV2. For those of you who aren’t familiar with it (most of you I’m sure) this module represents a Perl-ish interface to the new GSL ordinary differential equation solver.

The major improvement of this version of my Perl module is the handling the Jacobian of the ode system. This allows the use all of the step functions in the original C library. In fact, other than one small feature that I would like to add (specifying quantity specific error limits), the module is just about feature complete.

The problem is that it needs some testing love. Certainly I need to add more tests on the basic functionality and usage, but the solver needs a workout too. I have been trying to port some of the more difficult (read extreme, stiff, etc) tests from the original library to my module, but I don’t like how they have done it. The GSL test suite simply calculates the result using different step types and comparing that the last values are the same. This is fine for them, but I need to worry that I may have systematic error in passing the Perl closures that represent the Jacobian to the C level solver. This could conceptually pass such a test while still being incorrect. Further I don’t actually have a good test case for extreme or stiff differential equations, notably those that need the Jacobian.

It is for this reason that I am asking those people who solve ODE’s, can you try out my module, and if possible, submit to me some test cases to be included in the test suite. Once I can show that the some cases work, I can feel more comfortable leaning on the underlying GSL test suite to cover the breadth of the solver.

1 Comment

Interesting module, I may use it in the future (though I don’t have particularly interesting ODEs for you right now, you don’t need me for a Lotka-Volterra.

Leave a comment

About Joel Berger

user-pic As I delve into the deeper Perl magic I like to share what I can.