spde.tex 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. \documentstyle[11pt,reduce]{article}
  2. \title{The Package SPDE for Determining Symmetries of Partial
  3. Differential Equations}
  4. \date{}
  5. \author{Fritz Schwarz \\ GMD, Institut F1 \\
  6. Postfach 1240 \\ 5205 St. Augustin \\
  7. GERMANY \\[0.05in]
  8. Telephone: +49-2241-142782 \\
  9. Email: fritz.schwarz@gmd.de}
  10. \begin{document}
  11. \maketitle
  12. The package SPDE provides a set of functions which may be applied
  13. to determine the symmetry group of Lie- or point-symmetries of a
  14. given system of partial differential equations. Preferably it is
  15. used interactively on a computer terminal. In many cases the
  16. determining system is solved completely automatically. In some
  17. other cases the user has to provide some additional input
  18. information for the solution algorithm to terminate. The package
  19. should only be used in compiled form.
  20. For all theoretical questions, a description of the algorithm and
  21. numerous examples the following articles should be consulted:
  22. ``Automatically Determining Symmetries of Partial Differential
  23. Equations'', Computing vol. 34, page 91-106(1985) and vol. 36, page
  24. 279-280(1986), ``Symmetries of Differential Equations: From Sophus
  25. Lie to Computer Algebra'', SIAM Review, to appear, and Chapter 2
  26. of the Lecture Notes ``Computer Algebra and Differential Equations
  27. of Mathematical Physics'', to appear.
  28. \section{Description of the System Functions and Variables}
  29. The symmetry analysis of partial differential equations logically
  30. falls into three parts. Accordingly the most important functions
  31. provided by the package are:
  32. \begin{table}
  33. \begin{center}
  34. \begin{tabular}{| c | c | }\hline
  35. Function name & Operation \\ \hline \hline
  36. \ttindex{CRESYS}
  37. CRESYS(\s{arguments}) & Constructs determining system \\ \hline
  38. \ttindex{SIMPSYS}
  39. SIMPSYS() & Solves determining system \\ \hline
  40. \ttindex{RESULT}
  41. RESULT() & Prints infinitesimal generators \\
  42. & and commutator table \\ \hline
  43. \end{tabular}
  44. \end{center}
  45. \caption{SPDE Functions}
  46. \end{table}
  47. Some other useful functions for obtaining various kinds of output
  48. are:
  49. \begin{table}
  50. \begin{center}
  51. \begin{tabular}{| c | c |} \hline
  52. Function name & Operation \\ \hline \hline
  53. \ttindex{PRSYS}
  54. PRSYS() & Prints determining system \\ \hline
  55. \ttindex{PRGEN}
  56. PRGEN() & Prints infinitesimal generators \\ \hline
  57. \ttindex{COMM}
  58. COMM(U,V) & Prints commutator of generators U and V \\ \hline
  59. \end{tabular}
  60. \end{center}
  61. \caption{SPDE Useful Output Functions}\label{spde:useful}
  62. \end{table}
  63. There are several global variables defined by the system which should
  64. not be used for any other purpose than that given in
  65. Table~\ref{spde:intt} and~\ref{spde:op}. The three globals of the type
  66. integer are:
  67. \begin{table}
  68. \begin{center}
  69. \begin{tabular}{| c | c |}\hline
  70. Variable name & Meaning \\ \hline \hline
  71. \ttindex{NN}
  72. NN & Number of independent variables \\ \hline
  73. \ttindex{MM}
  74. MM & Number of dependent variables \\ \hline
  75. \ttindex{PCLASS}
  76. PCLASS=0, 1 or 2 & Controls amount of output \\ \hline
  77. \end{tabular}
  78. \end{center}
  79. \caption{SPDE Integer valued globals}\label{spde:intt}
  80. \end{table}
  81. In addition there are the following global variables of type
  82. operator:
  83. \begin{table}
  84. \begin{center}
  85. \begin{tabular}{| c | c |}\hline
  86. Variable name & Meaning \\ \hline \hline
  87. \ttindex{X(I)}
  88. X(I) & Independent variable $x_i$ \\ \hline
  89. \ttindex{U(ALFA)}
  90. U(ALFA) & Dependent variable $u^{alfa}$ \\ \hline
  91. \ttindex{U(ALFA,I)}
  92. U(ALFA,I) & Derivative of $u^{alfa}$ w.r.t. $x_i$ \\ \hline
  93. \ttindex{DEQ(I)}
  94. DEQ(I) & i-th differential equation \\ \hline
  95. \ttindex{SDER(I)}
  96. SDER(I) & Derivative w.r.t. which DEQ(I) is resolved \\ \hline
  97. \ttindex{GL(I)}
  98. GL(I) & i-th equation of determining system \\ \hline
  99. \ttindex{GEN(I)}
  100. GEN(I) & i-th infinitesimal generator \\ \hline
  101. \ttindex{XI(I)} \ttindex{ETA(ALFA)} \ttindex{ZETA(ALFA,I)}
  102. XI(I), ETA(ALFA) & See definition given in the \\
  103. ZETA(ALFA,I) & references quoted in the introduction. \\ \hline
  104. \ttindex{C(I)}
  105. C(I) & i-th function used for substitution \\ \hline
  106. \end{tabular}
  107. \end{center}
  108. \caption{SPDE Operator type global variables}\label{spde:op}
  109. \end{table}
  110. The differential equations of the system at issue have to be assigned
  111. as values to the operator deq i applying the notation which is defined
  112. in Table~\ref{spde:op}. The entries in the third and the last line of
  113. that Table have obvious extensions to higher derivatives.
  114. The derivative w.r.t. which the i-th differential equation deq i is
  115. resolved has to be assigned to sder i. Exception: If there is a single
  116. differential equation and no assignment has been made by the user, the
  117. highest derivative is taken by default.
  118. When the appropriate assignments are made to the variable deq, the
  119. values of NN and MM (Table~\ref{spde:useful}) are determined
  120. automatically, i.e. they have not to be assigned by the user.
  121. \ttindex{CRESYS}
  122. The function CRESYS may be called with any number of arguments, i.e.
  123. \begin{verbatim}
  124. CRESYS(); or CRESYS(deq 1,deq 2,... );
  125. \end{verbatim}
  126. are legal calls. If it is called without any argument, all current
  127. assignments to deq are taken into account. Example: If deq 1, deq 2
  128. and deq 3 have been assigned a differential equation and the symmetry
  129. group of the full system comprising all three equations is desired,
  130. equivalent calls are
  131. \begin{verbatim}
  132. CRESYS(); or CRESYS(deq 1,deq 2,deq 3);
  133. \end{verbatim}
  134. The first alternative saves some typing. If later in the session the
  135. symmetry group of deq 1 alone has to be determined, the correct call
  136. is
  137. \begin{verbatim}
  138. CRESYS deq 1;
  139. \end{verbatim}
  140. \ttindex{SIMPSYS}
  141. After the determining system has bee created, SIMPSYS which has no
  142. arguments may be called for solving it. The amount of intermediate
  143. output produced by SIMPSYS is controlled by the global variable PCLASS
  144. with the default value 0. \ttindex{PCLASS} With PCLASS equal to 0, no
  145. intermediate steps are shown. With PCLASS equal to 1, all intermediate
  146. steps are displayed so that the solution algorithm may be followed
  147. \index{tracing ! SPDE package} through in detail. Each time the algorithm
  148. passes through the top of the main solution loop the message
  149. \begin{verbatim}
  150. Entering main loop
  151. \end{verbatim}
  152. is written. PCLASS equal 2 produces a lot of LISP output and is of no
  153. interest for the normal user.
  154. If with PCLASS=0 the procedure SIMPSYS terminates without any
  155. response, the determining system is completely solved. In some cases
  156. SIMPSYS does not solve the determining system completely in a single
  157. run. In general this is true if there are only genuine differential
  158. equations left which the algorithm cannot handle at present. If a case
  159. like this occurs, SIMPSYS returns the remaining equations of the
  160. determining system. To proceed with the solution algorithm,
  161. appropriate assignments have to be transmitted by the user, e.g. the
  162. explicit solution for one of the returned differential equations. Any
  163. new functions which are introduced thereby must be operators of the
  164. form c(k) with the correct dependencies generated by a depend
  165. statement (see the ``REDUCE User's Guide''). Its enumeration has to be
  166. chosen in agreement with the current number of functions which have
  167. alreday been introduced. This value is returned by SIMPSYS too.
  168. After the determining system has been solved, the procedure RESULT,
  169. which has no arguments, may be called. It displays the infinitesimal
  170. generators and its non-vanishing commutators.
  171. \section{How to Use the Package}
  172. In this Section it is explained by way of several examples how the
  173. package SPDE is used interactively to determine the symmetry group of
  174. partial differential equations. Consider first the diffusion equation
  175. which in the notation given above may be written as
  176. \begin{verbatim}
  177. deq 1:=u(1,1)+u(1,2,2);
  178. \end{verbatim}
  179. It has been assigned as the value of deq 1 by this statement. There
  180. is no need to assign a value to sder 1 here because the system
  181. comprises only a single equation.
  182. The determining system is constructed by calling
  183. \begin{verbatim}
  184. CRESYS(); or CRESYS deq 1;
  185. \end{verbatim}
  186. The latter call is compulsory if there are other assignments to the
  187. operator deq i than for i=1.
  188. The error message
  189. \begin{verbatim}
  190. ***** Differential equations not defined
  191. \end{verbatim}
  192. appears if there are no differential equations assigned to any deq.
  193. If the user wants the determining system displayed for inspection
  194. before starting the solution algorithm he may call
  195. \ttindex{PRSYS}
  196. \begin{verbatim}
  197. PRSYS();
  198. \end{verbatim}
  199. and gets the answer
  200. \begin{verbatim}
  201. GL(1):=2*DF(ETA(1),U(1),X(2)) - DF(XI(2),X(2),2) -
  202. DF(XI(2),X(1))
  203. GL(2):=DF(ETA(1),U(1),2) - 2*DF(XI(2),U(1),X(2))
  204. GL(3):=DF(ETA(1),X(2),2) + DF(ETA(1),X(1))
  205. GL(4):=DF(XI(2),U(1),2)
  206. GL(5):=DF(XI(2),U(1)) - DF(XI(1),U(1),X(2))
  207. GL(6):=2*DF(XI(2),X(2)) - DF(XI(1),X(2),2) - DF(XI(1),X(1))
  208. GL(7):=DF(XI(1),U(1),2)
  209. GL(8):=DF(XI(1),U(1))
  210. GL(9):=DF(XI(1),X(2))
  211. The remaining dependencies
  212. XI(2) depends on U(1),X(2),X(1)
  213. XI(1) depends on U(1),X(2),X(1)
  214. ETA(1) depends on U(1),X(2),X(1)
  215. \end{verbatim}
  216. The last message means that all three functions XI(1), XI(2) and
  217. ETA(1) depend on X(1), X(2) and U(1). Without this information the
  218. nine equations GL(1) to GL(9) forming the determining system are
  219. meaningless. Now the solution algorithm may be activated by calling
  220. \ttindex{SIMPSYS}
  221. \begin{verbatim}
  222. SIMPSYS();
  223. \end{verbatim}
  224. \ttindex{PCLASS}
  225. If the print flag PCLASS has its default value which is 0 no
  226. intermediate output is produced and the answer is
  227. \begin{verbatim}
  228. Determining system is not completely solved
  229. The remaining equations are
  230. GL(1):=DF(C(1),X(2),2) + DF(C(1),X(1))
  231. Number of functions is 16
  232. The remaining dependencies
  233. C(1) depends on X(2),X(1)
  234. \end{verbatim}
  235. With PCLASS equal to 1 about 6 pages of intermediate output are
  236. obtained. It allows the user to follow through each step of the
  237. solution algorithm.
  238. In this example the algorithm did not solve the determining system
  239. completely as it is shown by the last message. This was to be expected
  240. because the diffusion equation is linear and therefore the symmetry
  241. group contains a generator depending on a function which solves the
  242. original differential equation. In cases like this the user has to
  243. provide some additional information to the system so that the solution
  244. algorithm may continue. In the example under consideration the
  245. appropriate input is
  246. \begin{verbatim}
  247. DF(C(1),X(1)) := - DF(C(1),X(2),2);
  248. \end{verbatim}
  249. If now the solution algorithm is activated again by
  250. \begin{verbatim}
  251. SIMPSYS();
  252. \end{verbatim}
  253. the solution algorithm terminates without any further message, i.e.
  254. there are no equations of the determining system left unsolved. To
  255. obtain the symmetry generators one has to say finally
  256. \begin{verbatim}
  257. RESULT();
  258. \end{verbatim}
  259. and obtains the answer
  260. \begin{verbatim}
  261. The differential equation
  262. DEQ(1):=U(1,2,2) + U(1,1)
  263. The symmetry generators are
  264. GEN(1):= DX(1)
  265. GEN(2):= DX(2)
  266. GEN(3):= 2*DX(2)*X(1) + DU(1)*U(1)*X(2)
  267. GEN(4):= DU(1)*U(1)
  268. GEN(5):= 2*DX(1)*X(1) + DX(2)*X(2)
  269. 2
  270. GEN(6):= 4*DX(1)*X(1)
  271. + 4*DX(2)*X(2)*X(1)
  272. 2
  273. + DU(1)*U(1)*(X(2) - 2*X(1))
  274. GEN(7):= DU(1)*C(1)
  275. The remaining dependencies
  276. C(1) depends on X(2),X(1)
  277. Constraints
  278. DF(C(1),X(1)):= - DF(C(1),X(2),2)
  279. The non-vanishing commutators of the finite subgroup
  280. COMM(1,3):= 2*DX(2)
  281. COMM(1,5):= 2*DX(1)
  282. COMM(1,6):= 8*DX(1)*X(1) + 4*DX(2)*X(2) - 2*DU(1)*U(1)
  283. COMM(2,3):= DU(1)*U(1)
  284. COMM(2,5):= DX(2)
  285. COMM(2,6):= 4*DX(2)*X(1) + 2*DU(1)*U(1)*X(2)
  286. COMM(3,5):= - (2*DX(2)*X(1) + DU(1)*U(1)*X(2))
  287. 2
  288. COMM(5,6):= 8*DX(1)*X(1)
  289. + 8*DX(2)*X(2)*X(1)
  290. 2
  291. + 2*DU(1)*U(1)*(X(2) - 2*X(1))
  292. \end{verbatim}
  293. The message ``Constraints'' which appears after the symmetry generators
  294. are displayed means that the function c(1) depends on x(1) and x(2)
  295. and satisfies the diffusion equation.
  296. More examples which may used for test runs are given in the final
  297. section.
  298. \index{ansatz of symmetry generator}
  299. If the user wants to test a certain ansatz of a symmetry generator for
  300. given differential equations, the correct proceeding is as follows.
  301. Create the determining system as described above. Make the appropriate
  302. assignments for the generator and call PRSYS() after that. The
  303. determining system with this ansatz substituted is returned. Example:
  304. Assume again that the determining system for the diffusion equation
  305. has been created. To check the correctness for example of generator GEN
  306. 3 which has been obtained above, the assignments
  307. \begin{verbatim}
  308. XI(1):=0; XI(2):=2*X(1); ETA(1):=X(2)*U(1);
  309. \end{verbatim}
  310. have to be made. If now PRSYS() is called all GL(K) are zero
  311. proving the correctness of this generator.
  312. Sometimes a user only wants to know some of the functions ZETA for for
  313. various values of its possible arguments and given values of MM and
  314. NN. In these cases the user has to assign the desired values of MM and
  315. NN and may call the ZETAs after that. Example:
  316. \begin{verbatim}
  317. MM:=1; NN:=2;
  318. FACTOR U(1,2),U(1,1),U(1,1,2),U(1,1,1);
  319. ON LIST;
  320. ZETA(1,1);
  321. -U(1,2)*U(1,1)*DF(XI(2),U(1))
  322. -U(1,2)*DF(XI(2),X(1))
  323. 2
  324. -U(1,1) *DF(XI(1),U(1))
  325. +U(1,1)*(DF(ETA(1),U(1)) -DF(XI(1),X(1)))
  326. +DF(ETA(1),X(1))
  327. ZETA(1,1,1);
  328. -2*U(1,1,2)*U(1,1)*DF(XI(2),U(1))
  329. -2*U(1,1,2)*DF(XI(2),X(1))
  330. -U(1,1,1)*U(1,2)*DF(XI(2),U(1))
  331. -3*U(1,1,1)*U(1,1)*DF(XI(1),U(1))
  332. +U(1,1,1)*(DF(ETA(1),U(1)) -2*DF(XI(1),X(1)))
  333. 2
  334. -U(1,2)*U(1,1) *DF(XI(2),U(1),2)
  335. -2*U(1,2)*U(1,1)*DF(XI(2),U(1),X(1))
  336. -U(1,2)*DF(XI(2),X(1),2)
  337. 3
  338. -U(1,1) *DF(XI(1),U(1),2)
  339. 2
  340. +U(1,1) *(DF(ETA(1),U(1),2) -2*DF(XI(1),U(1),X(1)))
  341. +U(1,1)*(2*DF(ETA(1),U(1),X(1)) -DF(XI(1),X(1),2))
  342. +DF(ETA(1),X(1),2)
  343. \end{verbatim}
  344. If by error no values to MM or NN and have been assigned the message
  345. \begin{verbatim}
  346. ***** Number of variables not defined
  347. \end{verbatim}
  348. is returned. Often the functions ZETA are desired for special values
  349. of its arguments ETA(ALFA) and XI(K). To this end they have to be
  350. assigned first to some other variable. After that they may be
  351. evaluated for the special arguments. In the previous example this may
  352. be achieved by
  353. \begin{verbatim}
  354. Z11:=ZETA(1,1)$ Z111:=ZETA(1,1,1)$
  355. \end{verbatim}
  356. Now assign the following values to XI 1, XI 2 and ETA 1:
  357. \begin{verbatim}
  358. XI 1:=4*X(1)**2; XI 2:=4*X(2)*X(1);
  359. ETA 1:=U(1)*(X(2)**2 - 2*X(1));
  360. \end{verbatim}
  361. They correspond to the generator GEN 6 of the diffusion equation which
  362. has been obtained above. Now the desired expressions are obtained by
  363. calling
  364. \begin{verbatim}
  365. Z11;
  366. 2
  367. - (4*U(1,2)*X(2) - U(1,1)*X(2) + 10*U(1,1)*X(1) + 2*U(1))
  368. Z111;
  369. 2
  370. - (8*U(1,1,2)*X(2) - U(1,1,1)*X(2) + 18*U(1,1,1)*X(1) +
  371. 12*U(1,1))
  372. \end{verbatim}
  373. \section{Test File}
  374. This appendix is a test file. The symmetry groups for various
  375. equations or systems of equations are determined. The variable PCLASS
  376. has the default value 0 and may be changed by the user before running
  377. it. The output may be compared with the results which are given in the
  378. references.
  379. \begin{verbatim}
  380. %The Burgers equations
  381. deq 1:=u(1,1)+u 1*u(1,2)+u(1,2,2)$
  382. cresys deq 1$ simpsys()$ result()$
  383. %The Kadomtsev-Petviashvili equation
  384. deq 1:=3*u(1,3,3)+u(1,2,2,2,2)+6*u(1,2,2)*u 1
  385. +6*u(1,2)**2+4*u(1,1,2)$
  386. cresys deq 1$ simpsys()$ result()$
  387. %The modified Kadomtsev-Petviashvili equation
  388. deq 1:=u(1,1,2)-u(1,2,2,2,2)-3*u(1,3,3)
  389. +6*u(1,2)**2*u(1,2,2)+6*u(1,3)*u(1,2,2)$
  390. cresys deq 1$ simpsys()$ result()$
  391. %The real- and the imaginary part of the nonlinear
  392. %Schroedinger equation
  393. deq 1:= u(1,1)+u(2,2,2)+2*u 1**2*u 2+2*u 2**3$
  394. deq 2:=-u(2,1)+u(1,2,2)+2*u 1*u 2**2+2*u 1**3$
  395. %Because this is not a single equation the two assignments
  396. sder 1:=u(2,2,2)$ sder 2:=u(1,2,2)$
  397. %are necessary.
  398. cresys()$ simpsys()$ result()$
  399. %The symmetries of the system comprising the four equations
  400. deq 1:=u(1,1)+u 1*u(1,2)+u(1,2,2)$
  401. deq 2:=u(2,1)+u(2,2,2)$
  402. deq 3:=u 1*u 2-2*u(2,2)$
  403. deq 4:=4*u(2,1)+u 2*(u 1**2+2*u(1,2))$
  404. sder 1:=u(1,2,2)$ sder 2:=u(2,2,2)$ sder 3:=u(2,2)$
  405. sder 4:=u(2,1)$
  406. %is obtained by calling
  407. cresys()$ simpsys()$
  408. df(c 5,x 1):=-df(c 5,x 2,2)$
  409. df(c 5,x 2,x 1):=-df(c 5,x 2,3)$
  410. simpsys()$ result()$
  411. % The symmetries of the subsystem comprising equation 1
  412. % and 3 are obtained by
  413. cresys(deq 1,deq 3)$ simpsys()$ result()$
  414. % The result for all possible subsystems is discussed in
  415. % detail in ``Symmetries and Involution Systems: Some
  416. % Experiments in Computer Algebra'', contribution to the
  417. % Proceedings of the Oberwolfach Meeting on Nonlinear
  418. % Evolution Equations, Summer 1986, to appear.
  419. \end{verbatim}
  420. \end{document}