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!