NAME

Math::Lsoda - Solve ordinary differential equation systems using lsoda.

SYNOPSIS

use Math::Lsoda;

Equation:

sub eqns {
   my ($t, $x, $y) = @_;
   @$y[0] = 1.0e+4 * @$x[1] * @$x[2] - 0.04 * @$x[0];
   @$y[2] = 3.0e+7 * @$x[1] * @$x[1];
   @$y[1] = -(@$y[0] + @$y[2]);
}

Solver:

my $solver = Math::Lsoda->new(equation => \&eqns,
                            initial => [1.0, 0.0, 0.0],
                            start => 0.0,
                            end => 100.0,
                            dt => 0.1,
                            relative_tolerance => [1.0e-4, 1.0e-8, 1.0e-4],
                            absolute_tolerance => [1.0e-6, 1.0e-10,1.0e-6],
                            filename => 'file.dat');

DESCRIPTION

Math::Lsoda is a numerical module used for solving ordinary differential equations. The module is suitable for both stiff and non-stiff systems using the FORTRAN library odepack.

AUTHOR

Naoya Sato <synclover@gmail.com>

SEE ALSO

A. C. Hindmarsh, "ODEPACK, A Systematized Collection of ODE Solvers," in Scientific Computing, R. S. Stepleman et al., North-Holland, Amsterdam, 1983 pp. 55-64.

K. Radhakrishnan and A. C. Hindmarsh, "Description and Use of LSODE, the Livermore Solver for Ordinary Differential Equations," LLNL report UCRL-ID-113855, December 1993.

COPYRIGHT AND LICENSE

Copyright (c) 2010 Naoya Sato.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.