Basic structure of ODESolve
===========================
One general rule is never to convert a linear ODE into a nonlinear
ONE!
Classification strategy:
1. LINEAR (return either basis or linear combination)
(a) first order - integrating factor - module odelin
(b) higher order:-
(i) n-th order (trivial) - special case of (ii)
(ii) constant coeffs - module odelin
(iii) polynomial coeffs:-
factorizable (algebraically) - handled by making monic
Euler & shifted Euler - module odelin
dependent variable missing - module odelin
exact - module odelin
variation of parameters (for P.I.) - module odelin
special functions (e.g. Bessel) - module odelin
polynomial solutions - ???
adjoint - ???
operational calculus - ???
order reduction - ???
factorizable (operator) - ???
Lie symmetry - ???
2. NONLINEAR
main module odenonln(?)
(a) first order:-
Prelle-Singer - TO DO
Bernoulli - done
Clairaut - done
contact - ???
exact - done
homogeneous - done
Lagrange - done
Riccati - done
Solvable for x/y - done
Separable - done
(b) higher order:-
dependent variable missing - done
factorizable (algebraically) - done
factorizable (operator) - trivial version done
autonomous - done
differentiation - done
equidimensional - done
exact - done
scale invariant - done
contact - ???
Lie symmetry - ???
(c) any order
interchange variables - done
(undetermined coefficients ?) - ???
A potential problem with this strategy is that one cannot easily pass
back an unsolved ode through the interchange chain. Using more
symbolic mode might solve this. For the time being, unsolved odes are
not passed back at all, but does this lose partial solutions? THIS
NEEDS CHECKING MORE CAREFULLY!