Subject: Initial- and boundary-value problems in Maxima.
From: Gregor Berman
Date: Fri, 9 Sep 2011 13:08:22 +0300
Hi there,
I am looking for a decent Maxima numerical solver for initial-value
problems, with adaptive step size and error control. As far I can tell,
Maxima only has function rk() for this, but rk() is an implementation of a
rather elementary 4th-order Runge-Kutta method, with constant step size and
no error control. Such an algorithm is definitely not suitable for serious
work.
I am aware of excellent initial-value solvers implemented in Fortran, most
notably LSODAR (included in ODEPACK <http://www.netlib.org/odepack>), which
I use extensively in my Fortran programs (it is also included in Scilab). I
wonder if I can use something similar in Maxima. If not, any decent solver
for initial-value problems will do. The only way I can think is to use
Maxima within Scilab, but I am looking for a neat Maxima way.
Furthermore, I tried Maxima's version of colnew to solve boundary-value
problems. It seems to be a direct f2cl translation of the well-known Fortran
code, but it doesn't seem to work. Even the included examples prob1.mac and
prob2.mac don't work as expected. Same with prob4.mac, included in the git
version. In the case of prob1.mac, it almost hangs my computer, devouring
all memory with no result. I used colnew in Fortran (even made a Fortran 90
interface for it), and it works remarkably well. However, I was not able to
get any result with Maxima's version of colnew. Note that I am using Maxima
5.24, installed from Debian 64-bit repositories in a modern computer (Quad
with lots of memory), so it should run at least included examples pretty
fast.