123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- \documentstyle[11pt]{article}
- \title{ODESOLVE}
- \author{Malcolm A.H. MacCallum \\ Queen Mary and Westfield College, London
- \thanks{Other contributors: Francis Wright, Alan Barnes}}
- \begin{document}
- \date{}
- \maketitle
- \section{Summary}
- The ODESOLVE package is a solver for ordinary differential equations.
- At the present time it has very limited capabilities,
- \begin{enumerate}
- \item it can handle only a single scalar equation presented as an
- algebraic expression or equation, and
- \item it can solve only first-order equations of simple types,
- linear equations with constant coefficients and Euler equations.
- \end{enumerate}
- \noindent These solvable types are exactly those for
- which Lie symmetry techniques give no useful information.
- \section{Use}
- The only top-level function the user should normally invoke is:
- \vspace{.1in}
- \begin{tabbing}
- {\tt ODESOLVE}(\=EXPRN:{\em expression, equation}, \\
- \>VAR1:{\em variable}, \\
- \>VAR2:{\em variable}):{\em list-algebraic}
- \end{tabbing}
- \vspace{.1in}
- \noindent {\tt ODESOLVE} returns a list containing an equation (like solve):
- \begin{description}
- \item[EXPRN] is a single scalar expression such that EXPRN = 0 is the
- ordinary differential equation (ODE for short) to be solved,
- or is an equivalent equation.
- \item[VAR1] is the name of the dependent variable.
- \item[VAR2] is the name of the independent variable
- \end{description}
- \noindent (For simplicity these will be called y and x in the sequel)
- The returned value is a list containing the equation giving the
- general solution of the ODE (for simultaneous equations this will be a
- list of equations eventually). It will contain occurrences of the
- operator {\tt ARBCONST} for the arbitrary constants in the general solution.
- The arguments of {\tt ARBCONST} should be new, as with {\tt ARBINT} etc.
- in SOLVE. A counter {\tt !!ARBCONST} is used to arrange this (similar to the
- way {\tt ARBINT} is implemented).
- Some other top-level functions may be of use elsewhere, especially:
- \vspace{.1in}
- \noindent{\tt SORTOUTODE}(EXPRN:{\em algebraic}, Y:{\em var}, X:{\em var}):
- {\em expression}
- \vspace{.1in}
- \noindent which finds the order and degree of the EXPRN as a differential
- equation for Y with respect to Y and sets the linearity and highest
- derivative occurring in reserved variables ODEORDER, ODEDEGREE,
- ODELINEARITY and HIGHESTDERIV. An expression equivalent to the ODE is
- returned, or zero if EXPRN (equated to 0) is not an ODE in the
- given vars.
- Only in the version using variation of parameters:
- \vspace{.1in}
- \begin{tabbing}
- {\tt COFACTOR}(\=ROW:{\em integer}, \\
- \>COLUMN:{\em integer}, \\
- \>MATRIX:{\em matrix}):{\em algebraic}
- \end{tabbing}
- \vspace{.1in}
- \noindent The cofactor of the element in row ROW and column COLUMN of matrix
- MATRIX is returned. Errors occur if ROW or COLUMN do not simplify to integer
- expressions or if MATRIX is not square.
- \section{Tracing}
- Some rudimentary tracing is provided and is activated by the switch TRODE
- (analogous to TRFAC and TRINT)
- \section{Comments}
- The intention in the long run is to develop a rather general and
- powerful ordinary differential equation solver incorporating the
- methods detailed below. At present the program has not been optimized
- for efficiency and much work remains to be done to convert algebraic
- mode procedures to more efficient symbolic mode replacements.
- No attempt is made to extend the REDUCE integrator, although this is
- in some sense a problem of ODEs. Thus the equation $\frac{dy}{dx} = g(x)$ will
- be solved if and only if $\int g(x) dx$ succeeds.
- The available and planned coverage is as follows:
- \begin{itemize}
- \item First-order equations: (first degree unless otherwise stated)
- \begin{itemize}
- \item Quadrature of $\frac{df}{dx} = g(x)$
- \item Linear equations
- \item Separable equations
- \item (Algebraically) homogeneous equations
- \item Equations reducible to the previous case by linear transformations
- \item Exact equations
- \item Bernoulli equations
- \end{itemize}
- The above are already implemented. Further 1st order cases are not:
- \begin{itemize}
- \item Riccati equations using Schmidt's methods and other special cases
- \item Hypotheses on the integrating factor following Char (SYMSAC 81)
- or Shtokhamer, Glinos and Caviness.
- \item Higher degree cases
- \end{itemize}
- \item Linear equations of higher order
- \begin{itemize}
- \item Constant coefficients case for driving terms solvable by
- variation of parameters using the integrator
- (Choice of method is discussed in the source of module lccode).
- \end{itemize}
- The above is already implemented. Further higher order methods are not:
- \begin{itemize}
- \item More complex driving terms via Laplace transforms (?)
- \item Variable coefficients: Watanabe (EUROSAM 84) methods
- including Kovacic's algorithm as extended by Singer
- \item Factorization of operators as in Schwarz's ISSAC-89 paper or
- Berkovich's 1990 book
- \item Other methods based on Galois theory (see Ulmer's preprints
- from Karlsruhe, 1989, 1990 and Singer's 1989 review) or
- other ways of hunting Liouvillian solutions (see Singer's
- review in J. Symb. Comp., 1990).
- \end{itemize}
- \item Non-linear equations of order 2 and higher
- \begin{itemize}
- \item Lie algebra of point symmetries e.g. using Wolf's CRACK now available
- in REDUCE
- \item Other special ansatze (see Wolf. op. cit), in particular
- contact transformations for 2nd order cases
- \end{itemize}
- \item Possibly (?) exploitation of Cartan's methods for equivalence of
- differential equations.
- \end{itemize}
- \end{document}
|