crack.tex 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214
  1. % This is a LaTeX file
  2. \documentstyle[12pt]{article}
  3. %Sets size of page and margins
  4. \oddsidemargin 10mm \evensidemargin 10mm
  5. \topmargin 0pt \headheight 0pt \headsep 0pt
  6. \footheight 14pt \footskip 40pt
  7. \textheight 23cm \textwidth 15cm
  8. %\textheight 15cm \textwidth 10cm
  9. %spaces lines at one and a half spacing
  10. %\def\baselinestretch{1.5}
  11. %\parskip = \baselineskip
  12. %Defines capital R for the reals, ...
  13. %\font\Edth=msym10
  14. %\def\Integer{\hbox{\Edth Z}}
  15. %\def\Rational{\hbox{\Edth Q}}
  16. %\def\Real{\hbox{\Edth R}}
  17. %\def\Complex{\hbox{\Edth C}}
  18. \title{The Computer Algebra Package {\tt CRACK} for Investigating PDEs}
  19. \author{Thomas Wolf \\
  20. School of Mathematical Sciences \\
  21. Queen Mary and Westfield College \\
  22. University of London \\
  23. London E1 4NS \\
  24. T.Wolf@maths.qmw.ac.uk
  25. \\ \\
  26. Andreas Brand \\ Institut f\"{u}r
  27. Informatik \\ Friedrich Schiller Universit\"{a}t Jena \\ 07740 Jena
  28. \\ Germany \\ maa@hpux.rz.uni-jena.de
  29. }
  30. \begin{document}
  31. \maketitle
  32. \tableofcontents
  33. \section{The purpose of {\tt CRACK}}
  34. The package {\tt CRACK} attempts the solution of an overdetermined
  35. system of ordinary or partial differential
  36. equations (ODEs/PDEs) with at most polynomial nonlinearities.
  37. Under `normal circumstances' the number of DEs which describe physical
  38. processes matches the number of unknown functions which are involved.
  39. Moreover none of those equations can be solved or integrated and
  40. integrability conditions yield only identities. Though the package
  41. {\tt CRACK} applied to solve such `difficult' systems
  42. directly will not be of much help usually, it is possible to
  43. investigate them indirectly by
  44. studying analytic properties which would be useful for their
  45. solution. Such `simpler' overdetermined PDEs also result from
  46. investigating properties of ODEs and problems in differential geometry.
  47. The property of overdetermination (by which we only mean the fact
  48. that there are more equations than unknown functions) is not a
  49. prerequisite for applying the package but it simplifies the problem
  50. and it is usually necessary for success in solving or simplifying the
  51. system.
  52. The following examples are quite different in nature. They demonstrate
  53. typical applications of {\tt CRACK} and give an impression of its efficiency.
  54. In principle it makes no difference to investigate more general
  55. symmetries, more general coordinate transformations and so on, except that the
  56. computational complexity may grow very rapidly for more general
  57. ans\"atze, especially for nonlinear problems, such that a solution
  58. becomes practically impossible.
  59. The following overview makes suggestions for possible
  60. applications; the mathematics of the applications and of the
  61. algorithms which are applied in {\tt CRACK} are described only
  62. superficially. These applications are only examples. The user will usually
  63. have to write own procedures to formulate his problem in form of
  64. an overdetermined system of PDEs which is then solved or simplified with
  65. {\tt CRACK}.
  66. \begin{enumerate}
  67. \item
  68. DEs as well as differential geometric objects, like a metric which
  69. describes infinitesimal distances in a manifold, can have
  70. infinitesimal symmetries, i.e.\ there exist transformations of dependent
  71. and independent variables, which leave the DE or metric
  72. form-invariant. According to a theory of Sophus Lie such
  73. symmetries of an ODE can be used to integrate the
  74. ODE and symmetries of a PDE can be used to decrease the number
  75. of independent variables.
  76. The determining conditions for the generators of this
  77. symmetry are given by a system of linear PDEs.
  78. \item
  79. Other ans\"atze, e.g.\ for finding
  80. \begin{itemize}
  81. \item integrating factors of DEs, or
  82. \item a variational principle, i.e.\ a Lagrangian which is equivalent
  83. to a given ODE, or
  84. \item a factorization ansatz which transforms a given $n$-th order
  85. ODE into two ODEs of order $k$ and $n-k,$
  86. \end{itemize}
  87. lead to PDE-systems for the remaining free functions with good
  88. prospects for solution.
  89. \item
  90. The ability of {\tt CRACK} to decouple systems of DEs with at most polynomial
  91. nonlinearity can be used to perform very general transformations of
  92. undetermined functions. If, for example, an equation
  93. \begin{equation}
  94. 0 = D_1(x, f) \label{df}
  95. \end{equation}
  96. for a function $f(x)$ is given with $D_1$ as a differential
  97. expression in $x$ and $f$, and a further function $g$ of $x$
  98. is related to $f$ through a differential relation
  99. \begin{equation}
  100. 0 = D_2(x, g, f), \label{dg}
  101. \end{equation}
  102. then, to obtain an equation equivalent to (\ref{df}) for the function $g,$
  103. the system (\ref{df},\ref{dg}) could be decoupled w.r.t.\ $f$ to
  104. obtain an equation
  105. \[ 0 = D_3(x, g) \]
  106. which contains only $g$.
  107. Such generalized transformations can in principle also be done for more
  108. than one equation of the form (\ref{df}), more old and new functions and
  109. variables, and more relations of the form (\ref{dg}).
  110. \item
  111. If a PDE or `well defined' system is too complicated to be solved in
  112. general, and one has some idea of the dependence of one of the
  113. functions which are to be calculated (e.g. $f$) on at least one
  114. variable (e.g. $x$), then one could try an ansatz for $f$ which
  115. involves $x$ (and possibly other variables)
  116. only explicitly and furthermore only unknown functions
  117. that are independent of $x$. Also other
  118. ans\"atze are possible where no variable occurs explicitly but all new
  119. functions involve only a subset of all variables. This approach
  120. includes separations such as the well known product ansatz $f(r,
  121. \theta, \varphi) = R(r)Y(\theta, \varphi)$ to solve the Laplace
  122. equation $\triangle f = 0$ in spherical coordinates. After such a
  123. substitution the resulting system is simplified and can be solved
  124. usually, because the
  125. number of functions of all independent variables is decreased and is
  126. now less than the number of equations.
  127. \item
  128. A difficult DE-system is simplified usually if further conditions
  129. in the form of differential equations are added,
  130. because then the resulting system is not necessarily in involution
  131. and integrability conditions can be used to lower the order or to
  132. solve it.
  133. \end{enumerate}
  134. To explain the input to {\tt CRACK}, which corresponds to examples
  135. given in the final two sections, the way to call {\tt CRACK} is described next.
  136. \section{How to apply {\tt CRACK}}
  137. \subsection{The call}
  138. {\tt CRACK} is written in the symbolic mode of REDUCE 3.4 and is loaded by
  139. {\tt load CRACK;}. Then {\tt CRACK} is called by
  140. \begin{tabbing}
  141. {\tt CRACK}(\=\{{\it equ}$_1$, {\it equ}$_2$, \ldots , {\it equ}$_m$\}, \\
  142. \>\{{\it ineq}$_1$, {\it ineq}$_2$, \ldots , {\it ineq}$_n$\}, \\
  143. \>\{{\it fun}$_1$, {\it fun}$_2$, \ldots , {\it fun}$_p$\}, \\
  144. \>\{{\it var}$_1$, {\it var}$_2$, \ldots , {\it var}$_q$\});
  145. \end{tabbing}
  146. $m,n,p,q$ are arbitrary.
  147. \begin{itemize}
  148. \item
  149. The {\it equ}$_i$ are identically vanishing partial differential expressions,
  150. i.e.\
  151. they represent equations $0 = {\it equ}_i$, which are to be solved for the
  152. functions ${\it fun}_j$ as far as possible, thereby drawing only necessary
  153. conclusions and not restricting the general solution.
  154. \item
  155. The {\it ineq}$_i$ are expressions which must not vanish identically for
  156. any solution to be determined, i.e. only such solutions are computed for which
  157. none of the {\it ineq}$_i$ vanishes identically in all independent variables.
  158. \item
  159. The dependence of the (scalar) functions ${\it fun}_j$ on possibly a number of
  160. variables is assumed to have been defined with DEPEND rather than
  161. declaring these functions
  162. as operators. Their arguments may themselves only be independent variables
  163. and not expressions.
  164. \item
  165. The functions ${\it fun}_j$ and their derivatives may only occur polynomially.
  166. Other unknown functions in ${\it equ}_i$ may be represented as operators.
  167. \item
  168. The ${\it var}_k$ are further independent variables, which are not
  169. already arguments
  170. of any of the ${\it fun}_j$. If there are none then the third argument is
  171. the empty list \{\}.
  172. \item
  173. The dependence of the ${\it equ}_i$ on the independent variables and on
  174. constants and functions other than ${\it fun}_j$ is arbitrary.
  175. \end{itemize}
  176. \subsection{The result}
  177. The result is a list of solutions
  178. \[ \{{\it sol}_1, \ldots \} \]
  179. where each solution is a list of 3 lists:
  180. \begin{tabbing}
  181. \{\=\{${\it con}_1, \; {\it con}_2, \ldots , \; {\it con}_q$\}, \\
  182. \>\{${\it fun}_a={\it ex}_a, \;\;
  183. {\it fun}_b={\it ex}_b, \ldots , \;\; {\it fun}_p={\it ex}_p$\},\= \\
  184. \>\{${\it fun}_c, \;\; {\it fun}_d, \ldots , \;\; {\it fun}_r$\} \>\}
  185. \end{tabbing}
  186. with integer $a, b, c, d, p, q, r.$
  187. If {\tt CRACK} finds a contradiction as e.g. $0=1$ then there exists no
  188. solution and it returns the empty list \{\}.
  189. The empty list is also returned if no solution exists
  190. which does not violate the inequalities
  191. {\it ineq}$_i \neq 0.$
  192. For example, in the case of a linear system as input, there is
  193. at most one solution ${\it sol}_1$.
  194. The expressions ${\it con}_i$ (if there are any), are the
  195. remaining necessary and sufficient conditions for the functions
  196. ${\it fun}_c,\ldots,{\it fun}_r$ in the third list. Those
  197. functions can be original functions from the equations to be
  198. solved (of the second argument of the call of {\tt CRACK}) or new
  199. functions or constants which arose from integrations.
  200. The dependence of new functions on variables is declared with {\tt DEPEND}
  201. and to visualize this dependence the algebraic mode function
  202. ${\tt FARGS({\it fun}_i)}$ can be used.
  203. If there are no ${\it con}_i$ then all equations are solved and the
  204. functions in the third list are unconstrained.
  205. The second list contains
  206. equations ${\it fun}_i={\it ex}_i$ where each ${\it fun}_i$ is an
  207. original function and ${\it ex}_i$ is the computed expression
  208. for ${\it fun}_i$.
  209. \subsection{Flags}
  210. Possible flags which can be changed in symbolic mode
  211. after {\tt CRACK} has been loaded are (initial values in brackets):
  212. \begin{description}
  213. \item[{\tt cont\_ :}] if t then if the maximal number of terms of an expression
  214. is greater then {\tt fcteval\_} or {\tt odesolve\_} then
  215. the user is asked
  216. whether or not the expression is to be substituted or integrated
  217. with {\tt ODESOLVE} respectively. (default: {\tt nil})
  218. \item[{\tt decouple\_ :}] maximal number of decoupling attempts for a
  219. function (default: 2)
  220. \item[{\tt factorize\_ :}] If an equation can be factored with more than one
  221. factor
  222. containing unknown functions then independent investigations
  223. start. In each investigation exactly one of these factors is set
  224. to zero. If
  225. many equations can be factorized then this may lead to a large
  226. number of individual investigations. {\tt factorize\_} is the
  227. maximal number
  228. of factorizations. If the starting system is linear then
  229. an attempt at factorization would be unsuccessful, i.e.
  230. {\tt factorize\_:=0} prevents this unnecessary
  231. attempt. (default: 4)
  232. \item[{\tt fcteval\_ :}] if a function has been computed from an equation and
  233. is to
  234. be substituted in other equations then {\tt fcteval\_} is the
  235. upper limit for the number of terms of the equated expression
  236. for which substitution is done. (default: 100)
  237. \item[{\tt fname\_ :}] the name to be used for new constants and functions
  238. which result from integrations (default: {\tt c})
  239. \item[{\tt genint\_ :}] generalized integration disabled/enabled
  240. (default: {\tt nil})
  241. \item[{\tt logoprint\_ :}] If t then printing of a standard message whenever
  242. {\tt CRACK} is called (default: {\tt t})
  243. \item[{\tt independence\_ :}] If t then the user will be asked during
  244. separation whether expressions are considered to
  245. be linear independent or not. This should be set true if
  246. in a previous run the assumption of linear independence made by
  247. {\tt CRACK} automatically was false. (default: {\tt nil})
  248. \item[{\tt odesolve\_ :}] the maximal number of terms of expressions which
  249. are to be
  250. investigated with {\tt ODESOLVE}. (default: $100$)
  251. \item[{\tt print\_ :}] If nil then there is no output during calculation
  252. otherwise {\tt print\_} is the maximal number of terms
  253. of equations which are to be output. (default: 8)
  254. \item[{\tt sp\_cases :}] After a factorization factors are dropped
  255. if they do not contain functions which are to be solved. An
  256. exceptional case is if a factor contains other (parametric)
  257. functions or constants. Then a corresponding message is given
  258. at the first appearance of each factor. These factors are
  259. stored in a list {\tt special\_cases}. If {\tt sp\_cases}
  260. is not {\tt nil} then such factors are not dropped.
  261. (default: {\tt nil})
  262. \item[{\tt time\_ :}] If t then printing the time necessary for the last
  263. {\tt CRACK} run (default: {\tt t})
  264. \item[{\tt tr\_gensep :}] to trace of the generalized separation
  265. (default: nil)
  266. \end{description}
  267. \subsection{Help}
  268. Parts of this text are provided after typing
  269. {\tt crackhp();}
  270. The authors are grateful for critical comments
  271. on the interface, efficiency and computational errors.
  272. \section{Contents of the {\tt CRACK} package}
  273. The package {\tt CRACK} contains modules for decoupling PDEs, integrating
  274. exact PDEs, separating PDEs, solving DEs containing functions of only
  275. a subset of all variables and solving standard ODEs (of Bernoulli or
  276. Euler type, linear, homogeneous and separable ODEs). These facilities
  277. will be described briefly together with examples.
  278. \subsection{Decoupling}
  279. The decoupling module differentiates equations and combines them algebraically
  280. to obtain if possible decoupled and simplified equations of lower order.
  281. How this could work is demonstrated in the following example.
  282. The integrability condition for the system
  283. \[ \begin{array}{cccl}
  284. f = f(x,y), \; \; & f,_{x} & = & 1 \\
  285. & f,_{y} & = & (f-x-1/y)x - 1/y^2
  286. \end{array} \]
  287. provides an algebraic condition for the function $f$
  288. which turns out not only to be necessary but also sufficient to solve both
  289. equations:
  290. \begin{eqnarray*}
  291. 0 = f,_{xy} - f,_{yx} & = & - xf,_x - f + 2x + 1/y \\
  292. & = & - f + x + 1/y \; \; \; \; \; \;
  293. \mbox{(with $f,_x$ from above)}
  294. \end{eqnarray*}
  295. \[ \rightarrow f = x + 1/y. \]
  296. A general algorithm to bring a system of PDEs into a standard form
  297. where all integrability conditions are satisfied by applying
  298. a finite number of additions, multiplications and differentiations
  299. is based on the general theory of involutive systems \cite{Riq,Th,Ja}.
  300. Essential to this theory is a total ordering of partial derivatives
  301. which allows assignment to each PDE of a {\em Leading Derivative}
  302. (LD) according to a chosen ordering of functions
  303. and derivatives. Examples for possible orderings are
  304. \begin{itemize}
  305. \item lex.\ order of functions $>$ lex.\ order of variables
  306. \item lex.\ order of functions $>$ total differential order $>$ lex.\
  307. order of variables
  308. \item total order $>$ lex.\ order of functions $>$ lex.\ order of variables
  309. \end{itemize}
  310. or mixtures of them by giving weights to individual functions and variables.
  311. Above, the `$>$' indicate ``before'' in priority of criteria. The principle
  312. is then to
  313. \begin{itemize}
  314. \item take two equations at a time and differentiate them as often as
  315. necessary to get equal LDs,
  316. \item regard these two equations as algebraic equations in
  317. the common LD and calculate the remainder w.r.t.\ the LD, i.e.\ to
  318. generate an equation without the LD by the Euclidean algorithm, and
  319. \item add this equation to the system.
  320. \end{itemize}
  321. Usually pairs of equations are taken first, such that only one must be
  322. differentiated. If in such a generation step one of both equations is not
  323. differentiated then it is called a
  324. simplification step and this equation will be replaced by the new equation.
  325. The algorithm ends if each combination of two equations yields only equations
  326. which simplify to an identity modulo the other equations.
  327. A more detailed description is given e.g. in \cite{Alex,Reid1}.
  328. In {\tt CRACK}, a reduced version of this algorithm has so far been
  329. implemented, which applies the first of the above orderings with
  330. lexicographical ordering of functions having the highest
  331. priority. This is done to get decoupled equations, i.e.\ a system with
  332. a ``triangular dependence'' of the equations on the functions,
  333. which is usually easier to solve
  334. successively (starting with the equation containing the fewest
  335. functions) than are coupled DEs. To save memory not all equations
  336. are stored but new equations replace in general older ones.
  337. Details of the algorithm used
  338. in {\tt CRACK} are given in \cite{Wo}.
  339. Programs implementing the standard algorithm are described e.g. in
  340. \cite{FS,Alex,Fush} and \cite{Reid1}.
  341. The possible variations of orderings or even the switch between
  342. them open possibilities for future optimization.
  343. {\em Example:}
  344. Applying the decoupling module alone without factorization and integration
  345. to the two equations
  346. \[ \begin{array}{rclcl}
  347. D_1 & := & f + f,_{yy}f,_x & = & 0 \\ \\
  348. D_2 & := & f,_y + f,_x^2 & = & 0
  349. \end{array} \]
  350. for $f(x,y)$, using the lexicographic ordering of variables $y>x>1,$
  351. the steps would be
  352. \begin{tabbing}
  353. $D_1:=$\=$D_1-D_{2y}f_x=f-2f_x^2f_{yx}$ \\
  354. \> $\rightarrow$ a second 1st order eqn. in $y$\\ \\
  355. $D_1:=$\>$D_1+2f_x^2D_{2x}=f+4f_x^3f_{xx} \rightarrow$ first ODE \\
  356. \> to get a second ODE we need an extra equation $D_3:$ \\ \\
  357. $D_3:=$\>$4f_x^3D_{2xx}-D_{1y}=8f_{xx}^2f_x^3+8f_{xxx}f_x^4-12f_x^2f_{xx}f_{xy}
  358. -f_y$ \\ \\
  359. $D_3:=$\>$D_3+12f_x^2f_{xx}D_{2x}=32f_{xx}^2f_x^3+8f_{xxx}f_x^4-f_y$
  360. \\ \\
  361. $D_2:=$\>$D_2+D_3=32f_{xx}^2f_x^3+8f_{xxx}f_x^4+f_x^2 \rightarrow$
  362. second ODE \\ \\
  363. $D_2:=$\>$2f_xD_{1x}-D_2=-8f_{xx}^2f_x^3+f_x^2$ \\ \\
  364. $D_2:=$\>$D_2+2f_{xx}D_1=2ff_{xx}+f_x^2$ \\ \\
  365. $D_2:=$\>$D_1f-2f_x^3D_2=f^2-2f_x^5$ \\ \\
  366. $D_1:=$\>$2D_{2x}+5f_xD_1=9ff_x$ \\ \\
  367. $D_2:=$\>$2f_x^4D_1+9fD_2=9f^3 \rightarrow f=0$ is necessary and \\
  368. \> as a test shows also sufficient, \\ \\
  369. $D_1:=$\>$D_{2x}-3fD_2=0 \rightarrow$ end
  370. \end{tabbing}
  371. Here $D_1:=\ldots$ means that the old expression for $D_1$ is replaced
  372. by the result of the calculation of the right side. As the indices
  373. show the calculation can be done by storing only 3 equations at a time,
  374. which is the purpose of the chosen total ordering of derivatives. If
  375. we have $n$ independent variables and $k$ equations at the beginning,
  376. then the calculation can be done by storing not more than $k+n-1$
  377. equations at a time (plus the original $k$ equations to test results for
  378. sufficiency at the end).
  379. In {\tt CRACK} all intermediate equations generated are checked to see
  380. whether they can be integrated at least once directly by an integration
  381. module.
  382. \subsection{Integrating exact PDEs}
  383. The technical term `exact' is adapted for PDEs from exterior calculus and
  384. is a small abuse of language but it is useful to characterize the kind of PDEs
  385. under consideration.
  386. The purpose of the integration module in {\tt CRACK} is to decide
  387. whether a given differential
  388. expression $D$ which involves unknown functions $f^i(x^j),\;\; 1\leq i\leq m$
  389. of independent variables $x^j, 1\leq j\leq n$
  390. is a total derivative of another expression $I$
  391. w.r.t. any variable $x^k, 1\leq k\leq n$
  392. \[ D(x^i,\; f^j,\; f^j,_p,\; f^j,_{pq}, \ldots)
  393. = \frac{d I(x^i,\; f^j,\; f^j,_p,\; f^j,_{pq}, \ldots)}{d x^k} \]
  394. and to invert the total derivative i.e. to find $I.$ The index $k$ is
  395. reserved in the following for the integration variable $x^k.$ Because
  396. the appropriate constant or function of integration which depends on
  397. all variables except $x^k$ is added to $I,$ a replacement of $0 = D$
  398. by $0 = I$ in a system of equations is no loss of generality.
  399. Of course there
  400. always exists a function $I$ with a total derivative equal to $D$ but
  401. the question is whether for \underline{arbitrary} $f^i$ the integral
  402. $I$ is functionally dependent only on the $f^i$ and their derivatives,
  403. and not on integrals of $f^i.$ \\
  404. \underline{Preconditions:} \\
  405. $D$ is a polynomial in the $f^i$ and their derivatives. The number of
  406. functions and variables is free.
  407. For deciding the existence of $I$ only, the explicit occurrence of the
  408. variables $x^i$ is arbitrary. In order to actually
  409. calculate $I$ explicitly, $D$ must have the property that all terms in $D$
  410. must either contain an unknown function of $x^k$ or
  411. must be formally integrable w.r.t. $x^k.$
  412. That means if $I$ exists then
  413. only a special explicit occurrence of $x^k$ can prevent the
  414. calculation of $I$
  415. and furthermore only in those terms which do not contain
  416. any unknown function of $x^k.$
  417. If such terms occur in $D$ and $I$ exists then $I$ can still be expressed
  418. as a polynomial in the $f^i, f^i,_j, \ldots$ and terms containing
  419. indefinite integrals with integrands explicit in $x^k.$ \\
  420. \underline{Algorithm:} \\
  421. Successive partial integration of the term with the highest
  422. $x^k$-derivative of any $f^i.$ By that the
  423. differential order w.r.t. $x^k$ is reduced
  424. successively. This procedure is always applicable because steps involve only
  425. differentiations and the polynomial
  426. integration $(\int h^n\frac{\partial h}{\partial x}dx =
  427. h^{n+1}/(n+1))$ where $h$ is a partial derivative of some function
  428. $f^i.$ For a more detailed description see \cite{WoInt}.\\
  429. \underline{Stop:} \\
  430. Iteration stops if no term with any $x^k$-derivative of any $f^i$ is left.
  431. If in the remaining un-integrated terms any $f^i(x^k)$ itself occurs,
  432. then $I$ is not expressible with $f^i$ and its derivatives only. In
  433. case no $f^i(x^k)$ occurs then any remaining terms can contain $x^k$ only
  434. explicitly. Whether they can be integrated depends on their formal
  435. integrability. For their integration the REDUCE integrator is applied. \\
  436. \underline{Example :} \\
  437. We apply the above algorithm to
  438. \begin{equation}
  439. D := 2f,_yg' + 2f,_{xy}g + gg'^3 + xg'^4 + 3xgg'^2g'' = 0
  440. \label{D}
  441. \end{equation}
  442. with $f = f(x,y), \, g = g(x), \, '\equiv d/dx.$
  443. Starting with terms containing $g$
  444. and at first with the highest derivative $g,_{xx},$ the steps are
  445. \[
  446. \begin{array}{rcccl}
  447. \int 3xgg,_x^2g,_{xx} dx
  448. & = & \int d(xgg,_x^3)
  449. & - & \int \left( \partial_x(xg) g,_x^3\right) dx \\ \\
  450. & = & xgg,_x^3 & - & \int g,_x^3(g + xg,_x) dx,
  451. \end{array} \]
  452. \[ I := I + xgg,_x^3 \]
  453. \[ D := D - g,_x^3(g + xg,_x) \]
  454. The new terms $- g,_x^3(g + xg,_x)$ are of lower order than $g,_{xx}$
  455. and so in the expression $D$ the maximal order of $x$-derivatives
  456. of $g$ is lowered. The conditions that $D$ is exact are the following.
  457. \begin{itemize}
  458. \item The leading derivative must occur linearly before each partial
  459. integration step.
  460. \item After the partial integration of the terms with first order
  461. $x$-derivatives of $f$ the remaining $D$ must not contain $f$
  462. or other derivatives of $f$, because such terms cannot
  463. be integrated w.r.t.\ $x$ without specifying $f$.
  464. \end{itemize}
  465. The result of $x$- and $y$-integration in the above example is
  466. (remember $g=g(x)$)
  467. \begin{equation}
  468. 0 = 2fg + xygg,_x^3 + c_1(x) + c_2(y) \; \; (=I). \nonumber
  469. \end{equation}
  470. {\tt CRACK} can now eliminate $f$ and substitute
  471. for it in all other equations.
  472. \underline{Generalization:} \\
  473. If after applying the above basic algorithm, terms are left which contain
  474. functions of $x^k$ but each of these functions depends only on a subset of
  475. all $x^i, 1\leq i\leq n,$ then a generalized version of the above algorithm
  476. can still provide a formal expression for the integral $I$
  477. (see \cite{WoInt}). The price consists of
  478. additional differential conditions, but they are equations in less variables
  479. than occur in the integrated equation. Integrating for example
  480. \begin{equation}
  481. \tilde{D} = D + g^2(y^2 + x\sin y + x^2e^y) \label{Dnew}
  482. \end{equation}
  483. by introducing as few
  484. new functions and additional conditions as possible gives as the integral
  485. $\tilde{I}$
  486. \begin{eqnarray*}
  487. \tilde{I} & = & 2fg + xygg,_{x}^{3} + c_1(x) + c_2(y) \\
  488. & & + \frac{1}{3}y^3c_3'' - \cos y(xc_3'' - c_3)
  489. + e^y(x^2c_3'' - 2xc_3' + 2c_3)
  490. \end{eqnarray*}
  491. with $c_3 = c_3(x), \, '\equiv d/dx$ and the single additional
  492. condition $g^2 = c_3'''.$
  493. The integration of the new terms of (\ref{Dnew}) is
  494. achieved by partial integration again. For example
  495. \begin{eqnarray*}
  496. \int g^2x^2 dx & = & x^2\int g^2 dx - \int (2x\!\int g^2 dx) dx \\
  497. & = & x^2\int g^2 dx - 2x\int\!\!\int g^2 dx
  498. + 2 \int\!\!\int\!\!\int g^2 dx \\
  499. & = & x^2c_3'' - 2xc_3' + 2c_3
  500. \end{eqnarray*}
  501. \underline{Characterization:} \\
  502. This algorithm is a decision algorithm which does not involve any
  503. heuristic. It is fast because time and memory requirements grow only
  504. linearly with the number of terms in $D$ and with the order of
  505. the highest derivative.
  506. After integration the new equation is still a polynomial
  507. in $f^i$ and in the new constant or function of integration,.
  508. Therefore the algorithms for bringing the system into standard form can still
  509. be applied to the PDE-system
  510. after the equation $D = 0$ is replaced by $I = 0.$
  511. The complexity of algorithms for bringing a PDE-system into a standard
  512. form depends nonlinearly on the order of these equations because of
  513. the nonlinear increase of the number of different leading derivatives
  514. and by that the number of equations generated intermediately by such
  515. an algorithm. It therefore in general pays off to integrate equations (with
  516. linear expenses) during such a standard form algorithm. The increase
  517. in the number of unknown constants/functions through integration does
  518. not play a role for standard form algorithms because these functions
  519. have less variables and do not increase the number of possible leading
  520. derivatives and therefore not the number of equations to be maintained
  521. during execution of the standard form algorithm.
  522. If an $f^i,$ which depends on all variables, can be eliminated after an
  523. integration, then depending on its length
  524. it is in general helpful to substitute $f^i$ in other equations and
  525. to reduce the number of equations and functions by one. This is especially
  526. profitable if the replaced expression is short and
  527. contains only functions of less variables than $f^i.$
  528. \underline{Test:} \\
  529. The corresponding test input is
  530. \begin{verbatim}
  531. depend f,x,y;
  532. depend g,x;
  533. crack({2*df(f,y)*df(g,x)+2*df(f,x,y)*g+g*df(g,x)**3
  534. +x*df(g,x)**4+3*x*g*df(g,x)**2*df(g,x,2)
  535. +g**2*(y**2+x*sin y+x**2*e**y)},
  536. {f,g},{});
  537. \end{verbatim}
  538. The meaning of the REDUCE command {\tt depend} is to declare that $f$
  539. depends in an unknown way on $x$ and $y$. For more details on the
  540. algorithm see \cite{WoInt}, for an introduction to REDUCE see \cite{WM}.
  541. \subsection{Direct separation of PDEs}
  542. As a result of repeated integrations the functions in the
  543. remaining equations have less and less variables. It therefore may happen
  544. that after a substitution an equation results where at least one variable
  545. occurs only explicitly and not as an argument of an unknown function.
  546. Consequently all coefficients of linearly independent expressions in this
  547. variable can be set to zero individually. \\
  548. {\em Example:} \\
  549. $f = f(x,y), \;\; g = g(x), \;\; x,y,z$ are independent variables.
  550. The equation is
  551. \begin{equation}
  552. 0 = f,_y + z(f^2+g,_x) + z^2(g,_x+yg^2) \label{sep}
  553. \end{equation}
  554. $x$-separation? $\rightarrow$ no \\
  555. $y$-separation? $\rightarrow$ no \\
  556. $z$-separation? $\rightarrow$ yes: $0 \,=\, f,_y \,=\, f^2+g,_x \,=\,
  557. g,_x+yg^2$ \\
  558. $y$-separation? $\rightarrow$ yes: $0 = g,_x = g^2\;\;$
  559. (from the third equation from the $z$-separation)
  560. If $z^2$ had been replaced in (\ref{sep}) by a third
  561. function $h(z)$ then direct separation would not have been possible.
  562. The situation changes if $h$ is a parametric function which is
  563. assumed to be independently given and which should not be
  564. calculated, i.e.\ $f$ and $g$ should be calculated for any
  565. arbitrary given $h(z)$. Then the same separation could have been
  566. done with an extra treatment of the special case $h,_{zz} = 0,$
  567. i.e.\ $h$ linear in $z$. This different treatment of unknown functions
  568. makes it necessary to input explicitly the functions to be
  569. calculated as the second argument to {\tt CRACK}. The input
  570. in this case would be
  571. \begin{verbatim}
  572. depend f,x,y;
  573. depend g,x;
  574. depend h,z;
  575. crack({df(f,y)+z*f**2+(z+h)*df(g,x)+h*y*g**2},{f,g},{z});
  576. \end{verbatim}
  577. The third parameter for {\tt CRACK} is necessary to make clear that
  578. in addition to the variables of $f$ and $g$, $z$ is also an independent
  579. variable.
  580. If the flag {\tt independence\_} is not {\tt nil} then {\tt CRACK} will
  581. stop if linear independence of the explicit expressions of the
  582. separation variable (in the example $1,z,z^2$) is not clear and ask
  583. interactively whether separation should be done or not.
  584. \subsection{Indirect separation of PDEs}
  585. For the above direct separation a precondition is that at least one
  586. variable occurs only explicitly or as an argument of parametric
  587. functions. The situation where each variable is an argument of at least
  588. one function but no function contains all independent variables of an
  589. equation needs a more elaborate treatment.
  590. The steps are these
  591. \begin{itemize}
  592. \item A variable $x_a$ is chosen which occurs in as few functions as possible.
  593. This variable will be separated directly later which
  594. requires that all unknown functions $f_i$ containing $x_a$ are to be
  595. eliminated. Therefore, as long as $F:=\{f_i\}$ is not empty do the following:
  596. \begin{itemize}
  597. \item Choose the function $f_i(y_p)$ in $F$ with the smallest number of
  598. variables $y_p$ and with $z_{ij}$ as those variables on which $f_i$ does
  599. not depend.
  600. \item Identify all different products $P_{ik}$ of powers of
  601. $f_i$-derivatives and of $f_i$ in the equation.
  602. Determine the $z_{ij}$-dependent factors $C_{ik}$ of the coefficients
  603. of $P_{ik}$.
  604. \item Choose a $z_{ij}$ and for each $C_{il}$ ($i$ fixed, $l=1,\ldots)$:
  605. \begin{itemize}
  606. \item divide by $C_{il}$ the equation and all the $C_{im}$ with $m>l,$
  607. \item differentiate the equation and the $C_{im}$ w.r.t.\ $z_{ij}$
  608. \end{itemize}
  609. \end{itemize}
  610. \item The resulting equation no longer contains any unknown function of $x_a$
  611. and can be separated w.r.t.\ $x_a$ directly. The
  612. equations arising can be integrated, inverting the sequence of differentiation
  613. and division, by
  614. \begin{itemize}
  615. \item multiplying them and the $C_{im}$ with $m<l$ by the elements
  616. of the $C_{ik}$-lists in exactly the inverse order
  617. \item integrating these exact PDEs and $C_{im}$ w.r.t.\ $z_{ij}$.
  618. \end{itemize}
  619. \item The equations originating that way are used to simplify the original
  620. DE\@. For example direct separability w.r.t.\ $y_p$ could be tested, because
  621. those products which contain functions $f_i(y_p)$ and their derivatives
  622. have been evaluated up to constants so that $y_p$ can occur only explicitly.
  623. \item The whole procedure is repeated for another variable $x_b$ if the
  624. original DE still has the property that it contains only functions of
  625. a subset of all variables in the equation.
  626. \end{itemize}
  627. The additional bookkeeping of coefficients $C_{ik}$ and their updating by
  628. division, differentiation, integration and multiplication is done to use
  629. them as integrating factors for the backward integration.
  630. The following example makes this clearer. The equation is
  631. \begin{equation}
  632. 0 = f(x) g(y) - \frac{1}{2}xf'(x) - g'(y) - (1+x^2)y. \label{isep}
  633. \end{equation}
  634. The steps are (equal levels of indentation correspond to the general
  635. description of the algorithm)
  636. \begin{itemize}
  637. \item $x_1:=x, \, F=\{f\}$
  638. \begin{itemize}
  639. \item Identify $f_1:=f, \; \; \; \; \; y_1:=x, \; \; \; \; \; z_{11}:=y$
  640. \item and $P_1=\{f',f\}, \; \; \; \; \; C_1=\{1,g\}$
  641. \begin{itemize}
  642. \item Divide $C_{12}$ and
  643. (\ref{isep}) by $C_{11}=1$ and differentiate w.r.t. $z_{11}=y:$
  644. \begin{eqnarray}
  645. 0 & = & fg' - g'' - (1+x^2) \label{isep2} \\
  646. C_{12} & = & g' \nonumber
  647. \end{eqnarray}
  648. \item Divide (\ref{isep2}) by $C_{12}=g'$ and differentiate w.r.t. $z_{11}=y:$
  649. \[ 0 = - (g''/g')' - (1+x^2)(1/g')' \]
  650. \end{itemize}
  651. \end{itemize}
  652. \item Direct separation w.r.t.\ $x$ and integration:
  653. \[\begin{array}{rclclcl}
  654. x^2: 0 & = & (1/g')' & \Rightarrow & c_1g' = 1 & \Rightarrow &
  655. g = y/c_1 + c_2 \\
  656. x^0: 0 & = & (g''/g')' & \Rightarrow & c_3g' = g'' & \Rightarrow &
  657. c_3 = 0
  658. \end{array} \]
  659. \item Substitution of $g$ in the original DE
  660. \[0 = (y/c_1+c_2)f - \frac{1}{2}xf' - 1/c_1 - (1+x^2)y \]
  661. and further solution by direct separation w.r.t.\ $y$
  662. \[\begin{array}{rclcl}
  663. y^1: 0 & = & f/c_1 - 1 - x^2 & \Rightarrow & f' = 2c_1x \\
  664. y^0: 0 & = & c_2f - \frac{1}{2}xf' - 1/c_1 & \Rightarrow & 0 =
  665. c_2c_1(1+x^2) - c_1x^2 - 1/c_1
  666. \end{array}\]
  667. and direct separation w.r.t.\ $x$:
  668. \begin{eqnarray*}
  669. x^0: 0 & = & c_2c_1 - c_1 \\
  670. x^2: 0 & = & c_2c_1 - 1/c_1 \\
  671. & \Rightarrow & 0 = c_1 - 1/c_1 \\
  672. & \Rightarrow & c_1 = \pm 1 \Rightarrow c_2 = 1.
  673. \end{eqnarray*}
  674. \end{itemize}
  675. We get the two solutions $f = 1 + x^2, g = 1 + y$ and
  676. $f = - 1 - x^2, g = 1 - y.$ The corresponding input to {\tt CRACK} would be
  677. \begin{verbatim}
  678. depend f,x;
  679. depend g,y;
  680. crack({f*g-x*df(f,x)/2-df(g,x)-(1+x**2)*y},{f,g},{});
  681. \end{verbatim}
  682. \subsection{Solving standard ODEs}
  683. For solving standard ODEs the package {\tt ODESOLVE} by MacCallum
  684. \cite{Mal} is applied. This package is distributed with REDUCE 3.4
  685. and can be used independently of {\tt CRACK}. The syntax of
  686. {\tt ODESOLVE} is quite similar to that of {\tt CRACK} \\
  687. \verb+depend+ {\it function}, {\it variable}; \\
  688. \verb+odesolve(+ODE, {\it function}, {\it variable}); \\
  689. In the present form (spring 93) it solves standard first order ODEs
  690. (Bernoulli and Euler type, with separable variables, $\ldots$) and linear
  691. higher order ODEs with constant coefficients. Its applicability is
  692. increased by a subroutine which recognizes such PDEs in which there is only
  693. one unknown function of all variables and all occurring derivatives
  694. are only derivatives w.r.t. one variable of only one partial derivative.
  695. For example the PDE for $f(x,y)$
  696. \[ 0 = f,_{xxy} + f,_{xxyy} \]
  697. can be viewed as a first order ODE in $y$ for $f,_{xxy}.$
  698. In preparation is a subpackage
  699. written by Y.K.\ Man for solving first order ODEs with the Prelle-Singer
  700. algorithm.
  701. \section{Examples}
  702. \subsection{Investigating symmetries of ODEs/PDEs and systems of them}
  703. According to a theory of Sophus Lie the knowledge of an infinitesimal symmetry
  704. of a DE(-system), i.e. of generators $\xi, \eta$ such that the
  705. infinitesimal transformation
  706. \begin{eqnarray*}
  707. \tilde{x} & = & x + \epsilon\xi \\
  708. \tilde{y} & = & y + \epsilon\eta
  709. \end{eqnarray*}
  710. keeps the DE(-system) forminvariant up to terms $O(\epsilon^2)$, can be used
  711. to integrate the ODE. The resulting conditions for $\xi, \eta$ are a
  712. linear system of PDEs. If the DEs are PDEs then $x$ and $\xi$ get an
  713. index. If one investigates a system of DEs then $y$ and $\eta$ get an index.
  714. To determine for example point-symmetries of the ODE (6.97) in \cite{Ka}
  715. \begin{equation}
  716. 0 = x^4y'' - y'(2xy + x^3) + 4y^2 \label{k97}
  717. \end{equation}
  718. for $y = y(x)$ the input would be
  719. \begin{verbatim}
  720. depend y,x;
  721. de := {df(y,x,2) - (df(y,x)*(2*x*y+x**3) + 4*y**2)/x**4, y, x};
  722. mo := {0, nil, nil};
  723. LIEPDE(de,mo);
  724. \end{verbatim}
  725. The first argument to {\tt LIEPDE} is a list which includes
  726. a single equation or a list of equations,
  727. a single unknown function or a list of unknown functions and
  728. a single independent variables or a list of independent variables.
  729. The second argument to {\tt LIEPDE} specifies the mode of operation.
  730. It is a list {\tt mo = \{od, lp, fl\}} where
  731. \begin{itemize}
  732. \item {\tt od} is the order of the ansatz for $\xi, \eta.$ It is = 0 for
  733. point symmetries and = 1 for contact symmetries (only in case of
  734. one ODE/PDE for one unknown function).
  735. % and $>1$ for dynamical symmetries
  736. %(only in case of one ODE for one unknown function)
  737. \item If {\tt lp} is $nil$ then the standard ansatz for $\xi^i, \eta^\alpha$
  738. is taken which is
  739. \begin{itemize}
  740. \item for point symmetries ({\tt od}=0) $\xi^i = \xi^i(x^j,u^\beta),
  741. u^\alpha = u^\alpha(x^j,u^\beta)$
  742. \item for contact symmetries ({\tt od}=1)
  743. $ \xi^i := \Omega,_{u,_i}, \;\;\;
  744. \eta := u,_i\Omega,_{u_i} \; - \; \Omega, \;\;\;
  745. \Omega:=\Omega(x^i, u, u,_j)$
  746. %\item for dynamical symmetries ({\tt od}$>1$) \\
  747. % $ \xi := \Omega,_{u'}, \;\;\;
  748. % \eta := u'\Omega,_{u'} \; - \; \Omega, \;\;\;
  749. % \Omega:=\Omega(x, u, u',\ldots, u^{({\tt od}-1)})$
  750. % where {\tt od} must be less than the order of the ODE.
  751. \end{itemize}
  752. If {\tt lp} is not $nil$ then {\tt lp} is the ansatz for
  753. $\xi^i, \eta^\alpha$ and must have the form
  754. \begin{itemize}
  755. \item for point symmetries
  756. {\tt \{xi\_\mbox{$x1$} = ..., ..., eta\_\mbox{$u1$} = ..., ...\}}
  757. where {\tt xi\_, eta\_}
  758. are fixed and $x1, \ldots, u1$ are to be replaced by the actual names
  759. of the variables and functions.
  760. \item otherwise {\tt spot\_ = ...} where the expression on the right hand
  761. side is the ansatz for the Symmetry-POTential $\Omega.$
  762. \end{itemize}
  763. \item {\tt fl} is the list of free functions in the ansatz
  764. in case {\tt lp} is not $nil.$
  765. \end{itemize}
  766. The conditions for the symmetry generators $\xi, \eta$ to provide
  767. infinitesimal transformations
  768. which leave (\ref{k97}) form-invariant to order $O(\varepsilon^2)$ are
  769. formulated by the program {\tt LIEPDE} to be
  770. \begin{eqnarray}
  771. 0 & = & \frac{1}{2}x^3\eta,_{yy} - x^3\xi,_{xy} - x^2\xi,_y - 2y\xi,_y
  772. \label{con1} \\
  773. 0 & = & 12y^2\xi,_y - x^4\xi,_{xx} - x^3\xi,_x - 2xy\xi,_x
  774. + 2x^4\eta,_{xy} + x^2\xi + 6y\xi - 2x\eta \\
  775. 0 & = & 2y^2\xi - xy^2\xi,_x - \frac{1}{8}x^5\eta,_{xx}
  776. + \frac{1}{8}x^4\eta,_x
  777. + \frac{1}{4}x^2y\eta,_x + \frac{1}{2}xy^2\eta,_y
  778. - xy\eta \\
  779. 0 & = & \xi,_{yy}. \label{con2}
  780. \end{eqnarray}
  781. {\tt LIEPDE} then calls {\tt CRACK} to solve this system.
  782. First (\ref{con2}) is integrated to $0 = \xi + c_1y + c_2$
  783. with new functions $c_1(x), c_2(x).$
  784. Then $\xi$ is substituted into the other three equations. Now (\ref{con1})
  785. can be integrated to
  786. \[ 0 = x^3\eta + x^3y^2c_1' - x^3yc_3 - x^3c_4 + x^2y^2c_1
  787. + \frac{2}{3}y^3c_1 \]
  788. with new functions $c_3(x), c_4(x)$ and $\eta$ can be substituted.
  789. Because the functions $c_1,\ldots,c_4$ are functions of $x$ only,
  790. a separation of the remaining two equations w.r.t.\ the independent
  791. variable $y$ becomes possible which yields 5 and 4 equations. One of
  792. them is $c_1=0$.
  793. After setting $c_1$ to zero, the exact second order ODE
  794. $0 = xc_4'' + 3c_4'$ can be integrated once and
  795. the resulting first order ODE can be solved by
  796. {\tt ODESOLVE} \cite{Mal} to give $c_4 = x^2c_6 - c_5/2$
  797. with constants $c_5, c_6$. From another equation $c_3$ can be eliminated
  798. and substituted: $c_3 = c_2' - 3c_2/x$. The last function $c_2(x)$ is
  799. solved by {\tt ODESOLVE} from $0 = x^2c_2'' - xc_2' + c_2$ to give
  800. $c_2 = x(c_8\log x + c_7)$. Because now only constants are involved in
  801. the remaining two equations, {\tt CRACK} separates them w.r.t.\ $x$ to obtain 4
  802. conditions which are solved to give $c_5 = 0$ and $c_6 = - c_8$,
  803. finally obtaining two symmetries (for $c_7 = 0, \, c_8 = -1$ and
  804. $c_7 = -1, \, c_8 = 0$):
  805. \[
  806. \begin{array}{rclrcl}
  807. \xi_1 & = & x\log x,\hspace{0.5in} & \eta_1 & = & 2y\log x + x^2 - y \\
  808. \xi_2 & = & x, & \eta_2 & = & 2y .
  809. \end{array} \]
  810. Applying Lie's algorithm by hand, the general solution of (\ref{k97})
  811. is \cite{Ka}
  812. \[ y = \left\{ \begin{array}{l}
  813. x^2(1 + c_9\tan(c_9\log x + c_{10})) \\
  814. x^2(1 - c_9\tanh(c_9\log x + c_{10})) \\
  815. x^2(1 - c_9\coth(c_9\log x + c_{10}))
  816. \end{array}
  817. \right. \]
  818. with constant $c_9, c_{10}$.
  819. If symmetries of a PDE or of a system of equations shall be determined then
  820. {\tt LIEPDE} does this iteratively by formulating some of the conditions and
  821. solving them by calling {\tt CRACK} to simplify the formulation of the
  822. remaining conditions. If a system of DEs is investigated then the conditions
  823. following from the form-invariance of each single equation are investigated
  824. successively. If a PDE is investigated then conditions which result from
  825. setting to zero the coefficients of the highest derivatives of $y$ are
  826. investigated first. For more details on this iteration see \cite{Alex},
  827. \cite{Step} and \cite{LIEPDE}.
  828. A more difficult system of PDEs are the Karpman equations \cite{Karp}
  829. which play a role in plasma physics. In their real form, which is used to
  830. determine symmetries, they are (\cite{Cham})
  831. \[\rho,_t+w_1\rho,_z+\frac{1}{2}\left[s_1(2\rho,_x\phi,_x+2\rho,_y\phi,_y
  832. +\rho\phi,_{xx}+\rho\phi,_{yy})+
  833. s_2(2\rho,_z\phi,_z+\rho\phi,_{zz})\right] = 0\]
  834. \[\phi,_t+w_1\phi,_z-\frac{1}{2}\left[s_1\left(\frac{\rho,_{xx}}{\rho}
  835. +\frac{\rho,_{yy}}{\rho}-\phi,_x^2-\phi,_y^2\right)+
  836. s_2\left(\frac{\rho,_{zz}}{\rho}-\phi,_z^2\right)\right]+a_1\nu = 0\]
  837. \[\nu,_{tt}-(w_2)^2(\nu,_{xx}+\nu,_{yy}+\nu,_{zz})-
  838. 2a_2\rho(\rho,_{xx}+\rho,_{yy}+\rho,_{zz})-2a_2(\rho,_x^2+\rho,_y^2+\rho,_z^2) = 0\]
  839. with the three functions $\rho,\phi,\nu$ of four variables $t,x,y,z$ and
  840. with constant parameters $a_i,s_i,w_i.$
  841. At first, preliminary symmetry conditions are
  842. derived and solved successively
  843. for each of the three equations.
  844. The solution
  845. of the preliminary conditions for the
  846. first equation
  847. requires 31 integrations and states that all $\xi^i$ are
  848. functions of $t,x,y,z$ only.
  849. The preliminary conditions of the second equation do not provide new
  850. constraints.
  851. The result from the preliminary conditions for the third equation
  852. is that $\nu$ is a function of $t,x,y,z$ only. This needs 4
  853. integrations.
  854. After 7.1/0.1 sec the full conditions for the first equation are derived
  855. which to solve requires further 77 integrations.
  856. The remaining full conditions for the second equation
  857. to solve requires 6 integrations. Finally,
  858. the full conditions for the last equation are
  859. solved with three more integrations.
  860. The general solution for the symmetry generators then reads
  861. \[ \begin{array}{rclrcl}
  862. \xi^x & = & - y c_1 + c_2 \;\;\;\;\; & \eta^r & = & 0 \\
  863. \xi^y & = & x c_1 + c_3 & \eta^\phi & = & a_1 c_6 t^2 + a_1 c_7 t + c_8 \\
  864. \xi^z & = & c_4 & \eta^v & = & - c_6 t - c_7 \\
  865. \xi^t & = & c_5 & & &
  866. \end{array}
  867. \]
  868. with constants $c_1, \ldots, c_8.$ The corresponding 8 symmetry generators are
  869. \begin{eqnarray*}
  870. X_1 = \partial_x & \;\;\;\;\;\;\;\;\;\; & X_5 = y\partial_x - x\partial_y \\
  871. X_2 = \partial_y & & X_6 = \partial_\phi \\
  872. X_3 = \partial_z & & X_7 = a_1t\partial_\phi - \partial_\nu \\
  873. X_4 = \partial_t & & X_8 = a_1t^2\partial_\phi - 2t\partial_\nu.
  874. \end{eqnarray*}
  875. The total time in a test run with {\tt lisp(print\_:=nil);} was
  876. 260/3.2 seconds on a PC486 with 33 MHz and 4MB RAM,
  877. i.e. less than 5 min.
  878. For comparison, the same calculation reported in \cite{Cham}, also split
  879. into 6 parts but with integrations done by hand, took more than 2 hours CPU
  880. on a VAX 8600 to formulate and simplify the symmetry conditions using the
  881. program {\tt SYMMGRP.MAX} written in MACSYMA.
  882. The corresponding input for {\tt LIEPDE} is
  883. \begin{verbatim}
  884. depend r,x,y,z,tt;
  885. depend f,x,y,z,tt;
  886. depend v,x,y,z,tt;
  887. de := {{df(r,tt)+w1*df(r,z)
  888. + s1*(df(r,x)*df(f,x)+df(r,y)*df(f,y)+r*df(f,x,2)/2+r*df(f,y,2)/2)
  889. + s2*(df(r,z)*df(f,z)+r*df(f,z,2)/2),
  890. df(f,tt)+w1*df(f,z)
  891. - (s1*(df(r,x,2)/r+df(r,y,2)/r-df(f,x)**2-df(f,y)**2) +
  892. s2*(df(r,z,2)/r-df(f,z)**2))/2 + a1*v,
  893. df(v,tt,2)-w2**2*(df(v,x,2)+df(v,y,2)+df(v,z,2))
  894. - 2*a2*r*(df(r,x,2)+df(r,y,2)+df(r,z,2))
  895. - 2*a2*(df(r,x)**2+df(r,y)**2+df(r,z)**2)},
  896. {r,f,v}, {x,y,z,tt}};
  897. mo := {0, nil, nil};
  898. LIEPDE(de,mo);
  899. \end{verbatim}
  900. \subsection{Determining integrating factors}
  901. Another way to solve or simplify nonlinear DEs is to determine first
  902. integrals by finding integrating factors. For the equation (6.37) of
  903. \cite{Ka} (which has no point symmetry)
  904. \begin{equation}
  905. 0 = y'' + y'(2y + F(x)) + F(x)y^2 - H(x) \label{k37}
  906. \end{equation}
  907. for $y(x)$ and parametric functions $F, H$ of $x$ the input
  908. consists of
  909. \begin{verbatim}
  910. depend f,x;
  911. depend h,x;
  912. depend y,x;
  913. de := {df(y,x,2) = -(2*y+f)*df(y,x)-f*y**2+h, y, x};
  914. mo := {0,{},2};
  915. FIRINT(de,mo);
  916. \end{verbatim}
  917. The arguments to {\tt FIRINT} are similar to those of {\tt LIEPDE}\@.
  918. Here {\tt mo = \{fi,fl,dg\}} specifies an ansatz for the first integral.
  919. For {\tt fi=0} the ansatz for the first integral is determined by
  920. {\tt dg}: The first integral is assumed to be a
  921. polynomial of degree {\tt dg} in $y^{(n-1)}$ (with $n$ as the order of the ODE)
  922. and with arbitrary functions of $x, y,\ldots,y^{(n-2)}$ as coefficients.
  923. In this case
  924. {\tt fl} has no meaning and is set to \{\}.
  925. For {\tt fi}$\neq${\tt 0, fi} is the ansatz for the first integral and
  926. {\tt fl} is a list of
  927. unknown functions in the ansatz, which are to be solved for. In this case
  928. {\tt dg} has no meaning.
  929. The above example determines first integrals which are at most quadratic
  930. in $y'$ for equation (6.37) in \cite{Ka}.
  931. {\tt FIRINT} starts with the ansatz
  932. \begin{equation}
  933. {\rm const.} = h_2(x,y)y'^2 + h_1(x,y)y' + h_0(x,y) \label{fians}
  934. \end{equation}
  935. and formulates the determining system by total differentiation of
  936. (\ref{fians}), identification of $y''$ with $y''$ in (\ref{k37}) and
  937. direct separation of $y',$ to produce
  938. \begin{eqnarray*}
  939. 0 & = & h_2,_y \\
  940. 0 & = & (H - F y^2)h_1 + h_0,_x \\
  941. 0 & = & h_1,_x + h_2,x - (2F + 4y)h_2 \\
  942. 0 & = & 2(H - Fy^2)h_2 - (F - 2y)h_1 + h_0,y + h_1,x.
  943. \end{eqnarray*}
  944. It then calls {\tt CRACK} which provides the solution for $h_0,h_1,h_2.$
  945. The first integral is
  946. \begin{equation}
  947. \mbox{const.} = \left( \frac{dy}{dx}+y^2 \right) e^{\int \!F\,dx} -
  948. \int He^{\int \!F\,dx} dx
  949. \end{equation}
  950. which is linear in $y'$. Many other nonlinear ODEs in \cite{Ka} have quadratic
  951. first integrals.
  952. \subsection{Determining a Lagrangian for a given 2nd order ODE}
  953. The knowledge of a Lagrangian $L$ for a given set of differential
  954. equations may be useful in solving and understanding these equations.
  955. If $L$ is known it is easier to determine symmetries, conserved
  956. quantities and singular points. An equivalent variational principle
  957. could also be useful for a more efficient numerical solution.
  958. This problem is known as the inverse problem of variational calculus.
  959. For example, the first transcendental Painlev\'{e} equation
  960. \begin{equation}
  961. y'' = 6y^2 + x \label{pain}
  962. \end{equation}
  963. has no point symmetries but proves to have a Lagrangian with the
  964. structure
  965. \begin{equation}
  966. L = u(x,y)(y')^2 + v(x,y). \label{lagr}
  967. \end{equation}
  968. (The other 5 transcendental Painlev\'{e} equations have a Lagrangian
  969. of this structure as well.)
  970. A program {\tt LAGRAN} formulates the conditions for $u$ and $v$ (a first
  971. order PDE-system). The call is
  972. \begin{verbatim}
  973. depend f,x; depend y,x;
  974. de := {df(y,x,2) = 6*y**2 + x, y, x};
  975. mo := {0,{}};
  976. LAGRAN(de,mo);
  977. \end{verbatim}
  978. If a system of ODEs or a PDE with at least two variables is given,
  979. then the existence of an equivalent Lagrangian $L$ is not guaranteed.
  980. Only in the case of
  981. a single 2nd order ODE, which is treated by the program {\tt LAGRAN},
  982. must a Lagrangian which is locally equivalent to the ODE
  983. exist. As a consequence the determination of $L$ for a second order
  984. ODE is in general not simpler than the solution of the ODE itself.
  985. Therefore the structure of
  986. $L$ must be specified, which is done through (\ref{lagr}).
  987. In the call of {\tt LAGRAN} the second argument {\tt mo=\{lg,fl\}} allows
  988. input of an ansatz for the Lagrangian.
  989. For {\tt lg=0} the default ansatz for the first integral is as given in
  990. (\ref{lagr}).
  991. For {\tt lg$\neq$0, lg} is the ansatz for the Lagrangian and {\tt fl} is a
  992. list of unknown functions in the ansatz which are to be solved.
  993. For equation (\ref{pain}) the resulting equivalent Lagrangian is
  994. \[ L = y'^2 + xy + 4y^3. \]
  995. Because the first order system for $u$ and $v$ is normally not too
  996. difficult, more complicated problems can also be solved, such as the
  997. determination of $L$ for the 6'th transcendental Painlev\'{e} equation
  998. \begin{eqnarray}
  999. y'' = & \frac{1}{2}\left(\frac{1}{y}+\frac{1}{y-1}+\frac{1}{y-x}\right) y'^2
  1000. - \left(\frac{1}{x}+\frac{1}{x-1}+\frac{1}{y-x}\right)y' \nonumber \\
  1001. & + \frac{y(y-1)(y-x)}{x^2(x-1)^2}\left(a+\frac{bx}{y^2}+\frac{c(x-1)}{(y-1)^2}
  1002. +\frac{dx(x-1)}{(y-x)^2}\right)
  1003. \end{eqnarray}
  1004. for which $L$ turns out to be
  1005. \[
  1006. \begin{array}{rcll}
  1007. L & = & 1/[xy(x-y)(x+1)(x-1)(y-1)] \cdot [(x+1)(x-1)^2x^2y'^2 \\
  1008. & & - 2a(xy+x+y)(x-y)(y-1)y + 2b(x+y+1)(x-y)(y-1)x \\
  1009. & & + 2c(x+y)(x-y)(x-1)y - 2d(x-1)(y+1)(y-1)xy ].
  1010. \end{array} \]
  1011. \subsection{A factorization ansatz for a given ODE}
  1012. A further possible way to integrate an $n$'th order ODE is to decompose it
  1013. into two ODEs of order $k$ and $n-k$. If one specifies the structure of the
  1014. $k$'th order ODE and demands that these ODEs can be solved successively then
  1015. this leads to a system of PDEs in the variables
  1016. $x, y, \ldots, y^{k-1}$ with a good chance of solution.
  1017. To solve the ODE (6.122) in \cite{Ka}
  1018. \begin{equation}
  1019. 0 = yy'' - y'^2 + F(x)yy' + Q(x)y^2 \label{6.122}
  1020. \end{equation}
  1021. the input would be
  1022. \begin{verbatim}
  1023. depend f,x;
  1024. depend q,x;
  1025. depend y,x;
  1026. de := {df(y,x,2) = df(y,x)**2/y - f*df(y,x) - y*q, y, x};
  1027. mo := {2,{}};
  1028. DECOMP(de,mo);
  1029. \end{verbatim}
  1030. In contrast to {\tt FIRINT}, {\tt LAGRAN} the ODE could here
  1031. be in the implicit form $0 = \ldots \;$ as well.
  1032. The second argument {\tt mo = \{as,fl\}} specifies an ansatz for the $k$'th
  1033. order ODE. If {\tt as} is an integer between 1 and 4 inclusive
  1034. then a default ansatz
  1035. is taken and {\tt fl} (the list of further unknown functions) is \{\}.
  1036. The 4 ans\"atze for \verb+as+ $\in$ [1,4] are
  1037. \begin{eqnarray}
  1038. y' & = & a(x)\,b(y) \nonumber \\
  1039. y' & = & a(x)\,y + b(x) \label{d2} \\
  1040. y' & = & a(x)\,y^n + b(x)\,y \nonumber \\
  1041. y' & = & a(x)\,y^2 + b(x)\,y + c(x) \nonumber
  1042. \end{eqnarray}
  1043. For {\tt as}$\not\in$[1,4], {\tt as} itself is the ansatz for the $k$'th
  1044. order ODE with $y^{(k)}$ eliminated on the left side and {\tt fl} is
  1045. a list of unknown functions in the ansatz, which are to be solved for.
  1046. The program {\tt DECOMP} formulates the determining system, in the above
  1047. example
  1048. \begin{eqnarray*}
  1049. 0 & = & b^2 \\
  1050. 0 & = & - F(x)b - b' + ab \\
  1051. 0 & = & - F(x)a - Q(x) - a'
  1052. \end{eqnarray*}
  1053. and calls {\tt CRACK} to solve it. Because the result
  1054. \begin{eqnarray*}
  1055. a(x) & = & \left(c_1 - \int Qe^{-\int F dx} dx\right)e^{-\int F dx} \\
  1056. b(x) & = & 0
  1057. \end{eqnarray*}
  1058. contains $n-k = 1$ constant(s) of integration, this factorization ansatz
  1059. does not restrict the solution space of (\ref{6.122})
  1060. and because of (\ref{d2}) the general solution is
  1061. \[y = c_2e^{\int \left[\left(c_1 - \int Qe^{-\int F dx} dx\right)e^{-\int F dx}
  1062. \right] dx}.\]
  1063. \subsection{General remarks on complexity}
  1064. In general, PDE-systems are easier to solve, the fewer arbitrary functions of
  1065. fewer variables are contained in the general solution. This in turn
  1066. is the case if more and more equations have to be satisfied for less functions,
  1067. i.e. the more restrictive is the PDE-system.
  1068. Having more equations to solve for a given number of functions
  1069. improves the
  1070. chance of finding an integrable one among them and provides
  1071. more possibilities to combine them and find a quick way to solve
  1072. them. For example, it is usually more difficult to find all
  1073. point symmetries of a very simple ODE with many point symmetries
  1074. than to show that an ODE that is possibly more difficult
  1075. to solve has no point symmetry.
  1076. An appropriate strategy could therefore be to start an
  1077. investigation with a very restrictive ansatz and later to try
  1078. less restrictive ones. For example, an ODE could be investigated at first
  1079. with respect to point symmetries and if none is found then one
  1080. could look for contact and then for dynamical symmetries.
  1081. Experience shows that nonlinear systems may lead to an
  1082. explosion in the length of generated equations much quicker
  1083. than linear equations
  1084. even if they have more independent variables or are of higher order.
  1085. For solving ODEs one should therefore investigate infinitesimal
  1086. symmetries or integrating factors first which provide linear systems
  1087. and only later consider the factorization into two ODEs of lower order.
  1088. \subsection{Acknowledgement}
  1089. We want to thank especially Francis Wright and Herbert Melenk for
  1090. continuous help in respect with special features and bugs of REDUCE.
  1091. \newpage
  1092. \begin{thebibliography}{99}
  1093. \bibitem{Riq} C. Riquier, Les syst\`{e}mes d'\'{e}quations aux d\'{e}riv\'{e}es
  1094. partielles, Gauthier--Villars, Paris (1910).
  1095. \bibitem{Th} J. Thomas, Differential Systems, AMS, Colloquium
  1096. publications, v. 21, N.Y. (1937).
  1097. \bibitem{Ja} M. Janet, Le\c{c}ons sur les syst\`{e}mes d'\'{e}quations aux
  1098. d\'{e}riv\'{e}es, Gauthier--Villars, Paris (1929).
  1099. \bibitem{Topu} V.L. Topunov, Reducing Systems of Linear Differential
  1100. Equations to a Passive Form, Acta Appl. Math. 16 (1989) 191--206.
  1101. \bibitem{Alex} A.V. Bocharov and M.L. Bronstein, Efficiently
  1102. Implementing Two Methods of the Geometrical Theory of Differential
  1103. Equations: An Experience in Algorithm and Software Design, Acta. Appl.
  1104. Math. 16 (1989) 143--166.
  1105. \bibitem{Reid1} G.J. Reid, A triangularization algorithm which
  1106. determines the Lie symmetry algebra of any system of PDEs, J.Phys. A:
  1107. Math. Gen. 23 (1990) L853-L859.
  1108. \bibitem{FS} F. Schwarz, Automatically Determining Symmetries of Partial
  1109. Differential Equations, Computing 34, (1985) 91-106.
  1110. \bibitem{Fush} W.I. Fushchich and V.V. Kornyak, Computer Algebra
  1111. Application for Determining Lie and Lie--B\"{a}cklund Symmetries of
  1112. Differential Equations, J. Symb. Comp. 7 (1989) 611--619.
  1113. \bibitem{Ka} E. Kamke, Differentialgleichungen, L\"{o}sungsmethoden
  1114. und L\"{o}sungen, Band 1, Gew\"{o}hnliche Differentialgleichungen,
  1115. Chelsea Publishing Company, New York, 1959.
  1116. \bibitem{Wo} T. Wolf, An Analytic Algorithm for Decoupling and Integrating
  1117. systems of Nonlinear Partial Differential Equations, J. Comp. Phys.,
  1118. no. 3, 60 (1985) 437-446 and, Zur analytischen Untersuchung und exakten
  1119. L\"{o}sung von Differentialgleichungen mit Computeralgebrasystemen,
  1120. Dissertation B, Jena (1989).
  1121. \bibitem{WoInt} T. Wolf, The Symbolic Integration of Exact PDEs,
  1122. preprint, submitted to J.\ Symb.\ Comp. (1991).
  1123. \bibitem{WM} M.A.H. MacCallum, F.J. Wright, Algebraic Computing with REDUCE,
  1124. Clarendon Press, Oxford (1991).
  1125. \bibitem{Mal} M.A.H. MacCallum, An Ordinary Differential Equation
  1126. Solver for REDUCE, Proc. ISAAC'88, Springer Lect. Notes in Comp Sci.
  1127. 358, 196--205.
  1128. \bibitem{Step} H. Stephani, Differential equations, Their solution using
  1129. symmetries, Cambridge University Press (1989).
  1130. \bibitem{LIEPDE} T. Wolf, An efficiency improved program {\tt LIEPDE}
  1131. for determining Lie-symmetries of PDEs, Proceedings of the workshop on
  1132. Modern group theory methods in Acireale (Sicily) Nov. (1992)
  1133. \bibitem{Karp} V.I. Karpman, Phys. Lett. A 136, 216 (1989)
  1134. \bibitem{Cham} B. Champagne, W. Hereman and P. Winternitz, The computer
  1135. calculation of Lie point symmetries of large systems of differential
  1136. equation, Comp. Phys. Comm. 66, 319-340 (1991)
  1137. \end{thebibliography}
  1138. \end{document}