spde.doc 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. The Package SPDE for Determining Symmetries
  2. of Partial Differential Equations
  3. User's Manual
  4. Fritz Schwarz
  5. GMD, Institut F1
  6. Postfach 1240
  7. 5205 St. Augustin
  8. West Germany
  9. Tel. 02241-142782
  10. EARN ID: GF1002@DBNGMD21
  11. 1. General Information.
  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. 2. 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. ----------------------------------------------------------------
  33. | Function name | Operation |
  34. |--------------------------------------------------------------|
  35. |CRESYS(<arguments>)| Constructs determining system |
  36. |--------------------------------------------------------------|
  37. | SIMPSYS() | Solves determining system |
  38. |--------------------------------------------------------------|
  39. | RESULT() | Prints infinitesimal generators |
  40. | | and commutator table |
  41. ----------------------------------------------------------------
  42. Table 1.
  43. Some other useful functions for obtaining various kinds of output
  44. are:
  45. ----------------------------------------------------------------
  46. | PRSYS() | Prints determining system |
  47. |--------------------------------------------------------------|
  48. | PRGEN() | Prints infinitesimal generators |
  49. |--------------------------------------------------------------|
  50. | COMM(U,V) | Prints commutator of generators U and V |
  51. ----------------------------------------------------------------
  52. Table 2.
  53. There are several global variables defined by the system which
  54. should not be used for any other purpose than that given
  55. in Tables 3 and 4. The three globals of the type integer are:
  56. ---------------------------------------------------------------
  57. | Variable name | Meaning |
  58. |----------------------|--------------------------------------|
  59. | NN | Number of independent variables |
  60. |----------------------|--------------------------------------|
  61. | MM | Number of dependent variables |
  62. |----------------------|--------------------------------------|
  63. | PCLASS=0, 1 or 2 | Controls amount of output |
  64. ---------------------------------------------------------------
  65. Table 3.
  66. In addition there are the following global variables of type
  67. operator:
  68. ---------------------------------------------------------------
  69. | Variable name | Meaning |
  70. |----------------------|--------------------------------------|
  71. | X(I) | Independent variable x |
  72. | | i |
  73. |----------------------|--------------------------------------|
  74. | | alfa |
  75. | U(ALFA) | Dependent variable u |
  76. |----------------------|--------------------------------------|
  77. | | alfa |
  78. | U(ALFA,I) | Derivative of u w.r.t. x |
  79. | | i |
  80. |----------------------|--------------------------------------|
  81. | DEQ(I) | i-th differential equation |
  82. |----------------------|--------------------------------------|
  83. | SDER(I) | Derivative w.r.t. which DEQ(I) |
  84. | | is resolved |
  85. |----------------------|--------------------------------------|
  86. | GL(I) | i-th equation of determining system |
  87. |----------------------|--------------------------------------|
  88. | GEN(I) | i-th infinitesimal generator |
  89. |----------------------|--------------------------------------|
  90. | XI(I), ETA(ALFA) | See definition given in the |
  91. | | |
  92. | ZETA(ALFA,I) | references quoted in Section 1. |
  93. |----------------------|--------------------------------------|
  94. | C(I) | i-th function used for substitution |
  95. ---------------------------------------------------------------
  96. Table 4.
  97. The differential equations of the system at issue have to be assigned
  98. as values to the operator deq i applying the notation which is
  99. defined in Table 4. The entries in the third and the last line of
  100. that Table have obvious extensions to higher derivatives.
  101. The derivative w.r.t. which the i-th differential equation deq i is
  102. resolved has to be assigned to sder i. Exception: If there is a
  103. single differential equation and no assignment has been made by the
  104. user, the highest derivative is taken by default.
  105. When the appropriate assignments are made to the variable deq,
  106. the values of NN and MM ( Table 2 ) are determined automatically,
  107. i.e. they have not to be assigned by the user.
  108. The function CRESYS may be called with any number of arguments,
  109. i.e.
  110. CRESYS(); or CRESYS(deq 1,deq 2,... );
  111. are legal calls. If it is called without any argument, all current
  112. assignments to deq are taken into account. Example: If deq 1, deq 2
  113. and deq 3 have been assigned a differential equation and the
  114. symmetry group of the full system comprising all three equations
  115. is desired, equivalent calls are
  116. CRESYS(); or CRESYS(deq 1,deq 2,deq 3);
  117. The first alternative saves some typing. If later in the session
  118. the symmetry group of deq 1 alone has to be determined, the correct
  119. call is
  120. CRESYS deq 1;
  121. After the determining system has bee created, SIMPSYS which has
  122. no arguments may be called for solving it. The amount of
  123. intermediate output produced by SIMPSYS is controled by the
  124. global variable PCLASS with the default value 0. With PCLASS equal
  125. to 0, no intermediate steps are shown. With PCLASS equal to 1, all
  126. intermediate steps are displayed so that the solution algorithm
  127. may be followed through in detail. Each time the algorithm passes
  128. through the top of the main solution loop the message
  129. Entering main loop
  130. is written. PCLASS equal 2 produces a lot of LISP output and is of
  131. no interest for the normal user.
  132. If with PCLASS=0 the procedure SIMPSYS terminates without any
  133. response, the determining system is completely solved. In some
  134. cases SIMPSYS does not solve the determining system completely in a
  135. single run. In general this is true if there are only genuine
  136. differential equations left which the algorithm cannot handle at
  137. present. If a case like this occurs, SIMPSYS returns the remaining
  138. equations of the determining system. To proceed with the solution
  139. algorithm, appropriate assignments have to be transmitted by the
  140. user, e.g. the explicit solution for one of the returned
  141. differential equations. Any new functions which are introduced
  142. thereby must be operators of the form c(k) with the correct
  143. dependencies generated by a depend statement ( see REDUCE User's
  144. Guide ). Its enumeration has to be chosen in agreement with the
  145. current number of functions which have alreday been introduced.
  146. This value is returned by SIMPSYS too.
  147. After the determining system has been solved, the procedure RESULT
  148. which has no arguments may be called. It displays the infinitesimal
  149. generators and its non-vanishing commutators.
  150. 2. How to Use the Package. Examples.
  151. In this Section it is explained by way of several examples how the
  152. package SPDE is used interactively to determine the symmetry group
  153. of partial differential equations. Consider first the diffusion
  154. equation which in the notation given above may be written as
  155. deq 1:=u(1,1)+u(1,2,2);
  156. It has been assigned as the value of deq 1 by this statement.
  157. There is no need to assign a value to sder 1 here because the
  158. system comprises only a single equation.
  159. The determining system is constructed by calling
  160. CRESYS(); or CRESYS deq 1;
  161. The latter call is compulsory if there are other assignments to the
  162. operator deq i than for i=1.
  163. The error message
  164. ***** Differential equations not defined
  165. appears if there are no differential equations assigned to any deq.
  166. If the user wants the determining system displayed for inspection
  167. before starting the solution algorithm he may call
  168. PRSYS();
  169. and gets the answer
  170. GL(1):=2*DF(ETA(1),U(1),X(2)) - DF(XI(2),X(2),2) - DF(XI(2),X(1))
  171. GL(2):=DF(ETA(1),U(1),2) - 2*DF(XI(2),U(1),X(2))
  172. GL(3):=DF(ETA(1),X(2),2) + DF(ETA(1),X(1))
  173. GL(4):=DF(XI(2),U(1),2)
  174. GL(5):=DF(XI(2),U(1)) - DF(XI(1),U(1),X(2))
  175. GL(6):=2*DF(XI(2),X(2)) - DF(XI(1),X(2),2) - DF(XI(1),X(1))
  176. GL(7):=DF(XI(1),U(1),2)
  177. GL(8):=DF(XI(1),U(1))
  178. GL(9):=DF(XI(1),X(2))
  179. The remaining dependencies
  180. XI(2) depends on U(1),X(2),X(1)
  181. XI(1) depends on U(1),X(2),X(1)
  182. ETA(1) depends on U(1),X(2),X(1)
  183. The last message means that all three functions XI(1), XI(2) and
  184. ETA(1) depend on X(1), X(2) and U(1). Without this information the
  185. nine equations GL(1) to GL(9) forming the determining system are
  186. meaningless. Now the solution algorithm may be activated by calling
  187. SIMPSYS();
  188. If the print flag PCLASS has its default value which is 0 no inter-
  189. mediate output is produced and the answer is
  190. Determining system is not completely solved
  191. The remaining equations are
  192. GL(1):=DF(C(1),X(2),2) + DF(C(1),X(1))
  193. Number of functions is 16
  194. The remaining dependencies
  195. C(1) depends on X(2),X(1)
  196. With PCLASS equal to 1 about 6 pages of intermediate output are
  197. obtained. It allows the user to follow through each step of the
  198. solution algorithm.
  199. In this example the algorithm did not solve the determining system
  200. completely as it is shown by the last message. This was to be
  201. expected because the diffusion equation is linear and therefore the
  202. symmetry group contains a generator depending on a function which
  203. solves the original differential equation. In cases like this the
  204. user has to provide some additional information to the system so
  205. that the solution algorithm may continue. In the example under
  206. consideration the appropriate input is
  207. DF(C(1),X(1)) := - DF(C(1),X(2),2);
  208. If now the solution algorithm is activated again by
  209. SIMPSYS();
  210. the solution algorithm terminates without any further message, i.e.
  211. there are no equations of the determining system left unsolved. To
  212. obtain the symmetry generators one has to say finally
  213. RESULT();
  214. and obtains the answer
  215. The differential equation
  216. DEQ(1):=U(1,2,2) + U(1,1)
  217. The symmetry generators are
  218. GEN(1):= DX(1)
  219. GEN(2):= DX(2)
  220. GEN(3):= 2*DX(2)*X(1) + DU(1)*U(1)*X(2)
  221. GEN(4):= DU(1)*U(1)
  222. GEN(5):= 2*DX(1)*X(1) + DX(2)*X(2)
  223. 2
  224. GEN(6):= 4*DX(1)*X(1)
  225. + 4*DX(2)*X(2)*X(1)
  226. 2
  227. + DU(1)*U(1)*(X(2) - 2*X(1))
  228. GEN(7):= DU(1)*C(1)
  229. The remaining dependencies
  230. C(1) depends on X(2),X(1)
  231. Constraints
  232. DF(C(1),X(1)):= - DF(C(1),X(2),2)
  233. The non-vanishing commutators of the finite subgroup
  234. COMM(1,3):= 2*DX(2)
  235. COMM(1,5):= 2*DX(1)
  236. COMM(1,6):= 8*DX(1)*X(1) + 4*DX(2)*X(2) - 2*DU(1)*U(1)
  237. COMM(2,3):= DU(1)*U(1)
  238. COMM(2,5):= DX(2)
  239. COMM(2,6):= 4*DX(2)*X(1) + 2*DU(1)*U(1)*X(2)
  240. COMM(3,5):= - (2*DX(2)*X(1) + DU(1)*U(1)*X(2))
  241. 2
  242. COMM(5,6):= 8*DX(1)*X(1)
  243. + 8*DX(2)*X(2)*X(1)
  244. 2
  245. + 2*DU(1)*U(1)*(X(2) - 2*X(1))
  246. The message "Constraints" which appears after the symmetry
  247. generators are displayed means that the function c(1) depends on
  248. x(1) and x(2) and satisfies the diffusion equation.
  249. More examples which may used for test runs are given in the
  250. Appendix.
  251. If the user wants to test a certain ansatz of a symmetry generator
  252. for given differential equations, the correct proceeding is as
  253. follows. Create the determining system as described above. Make
  254. the appropriate assignements for the generator and call PRSYS()
  255. after that. The determining system with this ansatz substituted
  256. is returned. Example: Assume again that the determining system
  257. for the diffusion equation has been created. To check the
  258. correctnes for example of generator GEN 3 which has been obtained
  259. above, the assignments
  260. XI(1):=0; XI(2):=2*X(1); ETA(1):=X(2)*U(1);
  261. have to be made. If now PRSYS() is called all GL(K) are zero
  262. proving the correctness of this generator.
  263. Sometimes a user only wants to know some of the functions ZETA for
  264. for various values of its possible arguments and given values of MM
  265. and NN. In these cases the user has to assign the desired values of
  266. MM and NN and may call the ZETA's after that. Example:
  267. MM:=1; NN:=2;
  268. FACTOR U(1,2),U(1,1),U(1,1,2),U(1,1,1);
  269. ON LIST;
  270. ZETA(1,1);
  271. -U(1,2)*U(1,1)*DF(XI(2),U(1))
  272. -U(1,2)*DF(XI(2),X(1))
  273. 2
  274. -U(1,1) *DF(XI(1),U(1))
  275. +U(1,1)*(DF(ETA(1),U(1)) -DF(XI(1),X(1)))
  276. +DF(ETA(1),X(1))
  277. ZETA(1,1,1);
  278. -2*U(1,1,2)*U(1,1)*DF(XI(2),U(1))
  279. -2*U(1,1,2)*DF(XI(2),X(1))
  280. -U(1,1,1)*U(1,2)*DF(XI(2),U(1))
  281. -3*U(1,1,1)*U(1,1)*DF(XI(1),U(1))
  282. +U(1,1,1)*(DF(ETA(1),U(1)) -2*DF(XI(1),X(1)))
  283. 2
  284. -U(1,2)*U(1,1) *DF(XI(2),U(1),2)
  285. -2*U(1,2)*U(1,1)*DF(XI(2),U(1),X(1))
  286. -U(1,2)*DF(XI(2),X(1),2)
  287. 3
  288. -U(1,1) *DF(XI(1),U(1),2)
  289. 2
  290. +U(1,1) *(DF(ETA(1),U(1),2) -2*DF(XI(1),U(1),X(1)))
  291. +U(1,1)*(2*DF(ETA(1),U(1),X(1)) -DF(XI(1),X(1),2))
  292. +DF(ETA(1),X(1),2)
  293. If by error no values to MM or NN and have been assigned the message
  294. ***** Number of variables not defined
  295. is returned. Often the functions ZETA are desired for special
  296. values of its arguments ETA(ALFA) and XI(K). To this end they have
  297. to be assigned first to some other variable. After that they may be
  298. evaluated for the special arguments. In the previous example
  299. this may be achieved by
  300. Z11:=ZETA(1,1)$ Z111:=ZETA(1,1,1)$
  301. Now assign the following values to XI 1, XI 2 and ETA 1:
  302. XI 1:=4*X(1)**2; XI 2:=4*X(2)*X(1);
  303. ETA 1:=U(1)*(X(2)**2 - 2*X(1));
  304. They correspond to the generator GEN 6 of the diffusion equation
  305. which has been obtained above. Now the desired expressions are
  306. obtained by calling
  307. Z11;
  308. 2
  309. - (4*U(1,2)*X(2) - U(1,1)*X(2) + 10*U(1,1)*X(1) + 2*U(1))
  310. Z111;
  311. 2
  312. - (8*U(1,1,2)*X(2) - U(1,1,1)*X(2) + 18*U(1,1,1)*X(1) + 12*U(1,1))
  313. %Appendix (Testfile).
  314. %This appendix is a test file. The symmetry groups for various
  315. %equations or systems of equations are determined. The variable
  316. %PCLASS has the default value 0 and may be changed by the user
  317. %before running it. The output may be compared with the results
  318. %which are given in the references.
  319. %The Burgers equations
  320. deq 1:=u(1,1)+u 1*u(1,2)+u(1,2,2)$
  321. cresys deq 1$ simpsys()$ result()$
  322. %The Kadomtsev-Petviashvili equation
  323. deq 1:=3*u(1,3,3)+u(1,2,2,2,2)+6*u(1,2,2)*u 1
  324. +6*u(1,2)**2+4*u(1,1,2)$
  325. cresys deq 1$ simpsys()$ result()$
  326. %The modified Kadomtsev-Petviashvili equation
  327. deq 1:=u(1,1,2)-u(1,2,2,2,2)-3*u(1,3,3)
  328. +6*u(1,2)**2*u(1,2,2)+6*u(1,3)*u(1,2,2)$
  329. cresys deq 1$ simpsys()$ result()$
  330. %The real- and the imaginary part of the nonlinear Schroedinger
  331. %equation
  332. deq 1:= u(1,1)+u(2,2,2)+2*u 1**2*u 2+2*u 2**3$
  333. deq 2:=-u(2,1)+u(1,2,2)+2*u 1*u 2**2+2*u 1**3$
  334. %Because this is not a single equation the two assignments
  335. sder 1:=u(2,2,2)$ sder 2:=u(1,2,2)$
  336. %are necessary.
  337. cresys()$ simpsys()$ result()$
  338. %The symmetries of the system comprising the four equations
  339. deq 1:=u(1,1)+u 1*u(1,2)+u(1,2,2)$
  340. deq 2:=u(2,1)+u(2,2,2)$
  341. deq 3:=u 1*u 2-2*u(2,2)$
  342. deq 4:=4*u(2,1)+u 2*(u 1**2+2*u(1,2))$
  343. sder 1:=u(1,2,2)$ sder 2:=u(2,2,2)$ sder 3:=u(2,2)$ sder 4:=u(2,1)$
  344. %is obtained by calling
  345. cresys()$ simpsys()$
  346. df(c 5,x 1):=-df(c 5,x 2,2)$
  347. df(c 5,x 2,x 1):=-df(c 5,x 2,3)$
  348. simpsys()$ result()$
  349. %The symmetries of the subsystem comprising equation 1 and 3 are
  350. %obtained by
  351. cresys(deq 1,deq 3)$ simpsys()$ result()$
  352. %The result for all possible subsystems is discussed in detail in
  353. %''Symmetries and Involution Systems: Some Experiments in Computer
  354. %Algebra'', contribution to the Proceedings of the Oberwolfach
  355. %Meeting on Nonlinear Evolution Equations, Summer 1986, to appear.