I implemented the method of M. Bronstein & S. Lafaille,
for solving second-order linear DEs; for a description
of this method, see their ISSAC'2002 article
http://www-sop.inria.fr/cafe/Manuel.Bronstein/bronstein-eng.html
0. It might not be the fastest method, but the method of
M. Bronstein & S. Lafaille is the most general method I
know of for solving second-order linear DEs in terms of
hypergeometric functions. To speed up solving easy cases,
I added a few solvers that work by pattern matching. If
you know of something better, let me know.
1. If you have done similar work, you might let me know.
My code allows new methods to be added without fuss. If
we could agree on a standard for calling these methods,
our work could be blended.
2. My code checks each solution. When the solution
is say y = Bessel_j(0,x), the checking code needs to
apply the Bessel function recursion relation to crunch
the result to zero. Sigh. I "fixed" this by changing
the gradef for the Bessel functions. Now,
diff(Bessel_j(n,x),x) --> dBessel_j(n,x) and
diff(dBessel_j(n,x) --> <junk> * Bessel(n,x).
This isnât good; I really need something elseâ¦
(But I think each solution should be checked.)
It would be nice if Maxima had a standard way of adding
recursion relations and the simplifier would be psychic and
would apply them when it would âsimplifyâ the expression.
Or maybe a stand-alone psychic function would handle this.
If you are looking for a projectâ¦.
3. My code is too fluid for a release; when it's
presentable, Iâll share it.
Barton