ODESOLVE.TEX 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. \documentstyle[11pt,reduce]{article}
  2. \date{}
  3. \title{ODESOLVE}
  4. \author{Malcolm A.H. MacCallum \\ Queen Mary and Westfield College, London \\
  5. Email: mm@maths.qmw.ac.uk \\[0.1in]
  6. Other contributors: Francis Wright, Alan Barnes}
  7. \begin{document}
  8. \maketitle
  9. \index{ODESOLVE package}
  10. \index{ordinary differential equations}
  11. The ODESOLVE package is a solver for ordinary differential equations.
  12. At the present time it has very limited capabilities,
  13. \begin{enumerate}
  14. \item it can handle only a single scalar equation presented as an
  15. algebraic expression or equation, and
  16. \item it can solve only first-order equations of simple types,
  17. linear equations with constant coefficients and Euler equations.
  18. \end{enumerate}
  19. \noindent These solvable types are exactly those for
  20. which Lie symmetry techniques give no useful information.
  21. \section{Use}
  22. The only top-level function the user should normally invoke is:
  23. \ttindex{ODESOLVE}
  24. \vspace{.1in}
  25. \begin{tabbing}
  26. {\tt ODESOLVE}(\=EXPRN:{\em expression, equation}, \\
  27. \>VAR1:{\em variable}, \\
  28. \>VAR2:{\em variable}):{\em list-algebraic}
  29. \end{tabbing}
  30. \vspace{.1in}
  31. \noindent {\tt ODESOLVE} returns a list containing an equation (like solve):
  32. \begin{description}
  33. \item[EXPRN] is a single scalar expression such that EXPRN = 0 is the
  34. ordinary differential equation (ODE for short) to be solved,
  35. or is an equivalent equation.
  36. \item[VAR1] is the name of the dependent variable.
  37. \item[VAR2] is the name of the independent variable
  38. \end{description}
  39. \noindent (For simplicity these will be called y and x in the sequel)
  40. The returned value is a list containing the equation giving the
  41. general solution of the ODE (for simultaneous equations this will be a
  42. list of equations eventually). It will contain occurrences of the
  43. \index{ARBCONST operator}
  44. operator {\tt ARBCONST} for the arbitrary constants in the general solution.
  45. The arguments of {\tt ARBCONST} should be new, as with {\tt ARBINT} etc.
  46. in SOLVE. A counter {\tt !!ARBCONST} is used to arrange this (similar to the
  47. way {\tt ARBINT} is implemented).
  48. Some other top-level functions may be of use elsewhere, especially:
  49. \ttindex{SORTOUTODE}
  50. \vspace{.1in}
  51. \noindent{\tt SORTOUTODE}(EXPRN:{\em algebraic}, Y:{\em var}, X:{\em var}):
  52. {\em expression}
  53. \vspace{.1in}
  54. \noindent which finds the order and degree of the EXPRN as a differential
  55. equation for Y with respect to Y and sets the linearity and highest
  56. derivative occurring in reserved variables ODEORDER, ODEDEGREE,
  57. \ttindex{ODEORDER} \ttindex{ODEDEGREE} \ttindex{ODELINEARITY}
  58. \ttindex{HIGHESTDERIV}
  59. ODELINEARITY and HIGHESTDERIV. An expression equivalent to the ODE is
  60. returned, or zero if EXPRN (equated to 0) is not an ODE in the
  61. given vars.
  62. "The use of the function\ttindex{COFACTOR}
  63. \vspace{.1in}
  64. \begin{tabbing}
  65. {\tt COFACTOR}(\=ROW:{\em integer}, \\
  66. \>COLUMN:{\em integer}, \\
  67. \>MATRIX:{\em matrix}):{\em algebraic}
  68. \end{tabbing}
  69. \vspace{.1in}
  70. \noindent which uses variation of parameters, returns the cofactor of the
  71. element in row ROW and column COLUMN of the matrix MATRIX. Errors occur
  72. if ROW or COLUMN do not simplify to integer expressions or if MATRIX is
  73. not square.
  74. \section{Tracing}
  75. Some rudimentary tracing is provided and is activated by the switch TRODE
  76. \index{tracing ! ODESOLVE}
  77. \ttindex{TRODE}
  78. (analogous to TRFAC and TRINT)
  79. \section{Comments}
  80. The intention in the long run is to develop a rather general and
  81. powerful ordinary differential equation solver incorporating the
  82. methods detailed below. At present the program has not been optimized
  83. for efficiency and much work remains to be done to convert algebraic
  84. mode procedures to more efficient symbolic mode replacements.
  85. No attempt is made to extend the REDUCE integrator, although this is
  86. in some sense a problem of ODEs. Thus the equation $\frac{dy}{dx} = g(x)$ will
  87. be solved if and only if $\int g(x) dx$ succeeds.
  88. The available and planned coverage is as follows:
  89. \begin{itemize}
  90. \item First-order equations: (first degree unless otherwise stated)
  91. \begin{itemize}
  92. \item Quadrature of $\frac{df}{dx} = g(x)$
  93. \item Linear equations
  94. \item Separable equations
  95. \item (Algebraically) homogeneous equations
  96. \item Equations reducible to the previous case by linear transformations
  97. \item Exact equations
  98. \item Bernoulli equations
  99. \end{itemize}
  100. The above are already implemented. Further 1st order cases are not:
  101. \begin{itemize}
  102. \item Riccati equations using Schmidt's methods and other special cases
  103. \item Hypotheses on the integrating factor following Char (SYMSAC 81)
  104. or Shtokhamer, Glinos and Caviness.
  105. \item Higher degree cases
  106. \end{itemize}
  107. \item Linear equations of higher order
  108. \begin{itemize}
  109. \item Constant coefficients case for driving terms solvable by
  110. variation of parameters using the integrator
  111. (Choice of method is discussed in the source of module lccode).
  112. \end{itemize}
  113. The above is already implemented. Further higher order methods are not:
  114. \begin{itemize}
  115. \item More complex driving terms via Laplace transforms (?)
  116. \item Variable coefficients: Watanabe (EUROSAM 84) methods
  117. including Kovacic's algorithm as extended by Singer
  118. \item Factorization of operators as in Schwarz's ISSAC-89 paper or
  119. Berkovich's 1990 book
  120. \item Other methods based on Galois theory (see Ulmer's preprints
  121. from Karlsruhe, 1989, 1990 and Singer's 1989 review) or
  122. other ways of hunting Liouvillian solutions (see Singer's
  123. review in J. Symb. Comp., 1990).
  124. \end{itemize}
  125. \item Non-linear equations of order 2 and higher
  126. \begin{itemize}
  127. \item Lie algebra of point symmetries e.g. using Wolf's CRACK now available
  128. in REDUCE
  129. \item Other special ansatze (see Wolf. op. cit), in particular
  130. contact transformations for 2nd order cases
  131. \end{itemize}
  132. \item Possibly (?) exploitation of Cartan's methods for equivalence of
  133. differential equations.
  134. \end{itemize}
  135. \end{document}