A Maxima function for solving initial value problems with adaptive step size and error control.
Subject: A Maxima function for solving initial value problems with adaptive step size and error control.
From: Panagiotis Papasotiriou
Date: Tue, 25 Oct 2011 09:25:04 +0300
2011/10/25 dlakelan <dlakelan at street-artists.org>
> On 10/24/2011 02:12 PM, Panagiotis Papasotiriou wrote:
> > Dear community,
> >
> > I have written a Maxima package for solving initial value problems. The
> > package implements a Maxima function called rkf45, which is an
> > implementation of the Runge-Kutta-Fehlberg method of 4th-5th order.
> ...
>
> Thank you very much for this contribution to Maxima, I hope one of the
> maxima developers will include it into the standard distribution as a
> shared package. However, rather than having a rkf45 specific share
> package, perhaps we should create a "numode" or other package named
> after the type of problem, where we can put several related numerical
> differential equation codes. For example perhaps the next task someone
> will take on will be some kind of implicit scheme for stiff systems, or
> someone else will produce boundary value problem solvers.
>
These are actually in my plans for the near future. Specifically, I am
planning to implement:
(1) An improved function for cubic spline interpolation (this is more or
less necessary after solving differential equations.) It should support
"not-a-knot", "quadratic", "prolonged", "clamped", and "natural" splines
(the latter is not really useful in most cases, but it is traditionally used
a lot, although it shouldn't be.) this function should also be able to
differentiate or integrate the interpolating functions. This task will also
need a numerical method for solving tridiagonal systems of equations.
(2) An easy-to-use function for solving boundary value problems by the
shooting method. This would also need several other things, such as LU
decomposition, Brent's method for computing the root of a function, and
Broyden's method for solving systems of non-linear equations (mnewton could
be used for that task, but I think Broyden's method is more appropriate. I'm
not a big fan of Newton methods, for several reasons.)
(3) A function for computing all the roots of a function within a given
interval, using the Kronecker-Picard theory. This would not be restricted to
polynomials.
Many other things are also in my plans, but with lower priority.
> Organizing shared code by the task they solve rather than the method
> used helps the naive user to find the code.
>
I agree completely.
> Again thanks for your contribution, I'm sure I will have occasion to use
> this code soon.
>
Thank you for your kind words.
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>