Subject: Ordinary differential equations in Maxima
From: Billinghurst, David CALCRTS
Date: Tue, 2 May 2006 10:47:46 +1000
> From: Edmond Orignac
>
> Hello all,
>
> I am using maxima 5.9.3, built on CMUCL on Linux (Debian).
>
> I have noticed a few oddities in the packages for differential
> equations in Maxima.
>
> First, the ode2 package in maxima is able to solve the differential
> equations for the Bessel functions. However, it is expressing the
> solution (for integer n) using k1*%j[n](x)+k2*%y[n](x), whereas the
> bessel package is using bessel_j(n,x) and bessel_y(n,x) to represent
> these functions. This can probably be easily corrected by putting
> the names for these functions in ode2.mac.
Agree. At present it needs to be fixed in src/ode2.lisp, which is a
translation of ode2.mac. I'll work up a patch.
> Second, whereas the ode2 package can solve the differential equation
> for the Bessel functions, it cannot solve the ones defining
> the modified
> Bessel functions or the Struve functions. Maybe it is possible to add
> this capability to ode2.mac by slightly extending the solver to deal
> with these particular cases.
Barton Willis (http://www.unk.edu/facstaff/profiles/willisb/ has written
Maxima code for solving second order linear differential equations.
It uses a method of Bronstein and Lafaille.
http://www-sop.inria.fr/cafe/Manuel.Bronstein/publications/issac2002.pdf
I have plans to add it to share/contrib/diffequations. The code works
in my local tree but the connection is a little rough. I should just
commit it and polish it later.
> Third, I have noticed the existence of a differential equations
> package, in the share/diffequations
> directory comprising the files pmain.mac, phygm.mac, odeaux.mac,
> pdvtr.mac, pivtr.mac. This package does not seem to be documented.
> odeaux seems to be loading various packages to solve differential
> equations.
> However, if loaded in maxima it is causing an error message caused
> by the line:
> FOR I IN ODE_ROUTINELIST DO APPLY('setup_AUTOLOAD,I)),
> sstatus(feature,"ode")))$
>
> maxima complains that "\n FOR I is not an infix operator".
> the package pmain is trying to solve the differential equation
> by loading an appropriate pachage.
> The package phypgm is
> solving the hypergeometric differential equation and the Legendre
> equation.
> For instance after loading phypgm, typing:
> x*(1-x)*'diff(y,x,2)+(c-(a+b+1))*'diff(y,x)-a*b*y=0;
>
> lode2(%o5);
>
> gives a solution in terms of Riemann's P-function (though
> I am unsure about the correctness of the coefficients).
>
> Does anyone have some experiene with these differential equation
> packages ?
I couldn't get any of the additional code in share/diffequations to
work, but haven't built up the courage to archive it either.
I have added some stuff in share/contrib/diffequations for
first order ODEs.
David
NOTICE
This e-mail and any attachments are private and confidential and may contain privileged information. If you are not an authorised recipient, the copying or distribution of this e-mail and any attachments is prohibited and you must not read, print or act in reliance on this e-mail or attachments.
This notice should not be removed.