applysym.tst 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. load crack,applysym$
  2. %*******************************************************************%
  3. % %
  4. % A P P L Y S Y M . T S T %
  5. % ----------------------- %
  6. % applysym.tst contains test examples to test the procedure %
  7. % quasilinpde in the file applysym.red. %
  8. % %
  9. % Author: Thomas Wolf %
  10. % Date: 22 May 1998 %
  11. % %
  12. % You need crack.red and applysym.red to run this demo. %
  13. % To use other contents of the program applysym, not demonstrated %
  14. % in this demo you need the program liepde.red. %
  15. % %
  16. % To run this demo you read in files with %
  17. % in "crack.red"$ %
  18. % in "applysym.red"$ %
  19. % or, to speed up the calculation you compile them before with %
  20. % faslout "crack"$ %
  21. % in "crack.red"$ %
  22. % faslend$ %
  23. % faslout "applysym"$ %
  24. % in "applysym.red"$ %
  25. % faslend$ %
  26. % and then load them with %
  27. % load crack,applysym$ %
  28. % %
  29. %*******************************************************************%
  30. load crack;
  31. lisp(depl!*:=nil)$ % clearing of all dependencies
  32. setcrackflags()$
  33. lisp(print_:=nil)$
  34. on dfprint$
  35. comment
  36. -------------------------------------------------------
  37. This file is supposed to provide an automatic test of
  38. the program APPLYSYM. On the other hand the application
  39. of APPLYSYM is an interactive process, therefore the
  40. interested user should inspect the example described
  41. in APPLYSYM.TEX which demonstrates the application
  42. of symmetries to integrate a 2nd order ODE.
  43. Here the program QUASILINPDE for integrating first
  44. order quasilinear PDE is demonstrated.
  45. The following equation comes up in the elimination
  46. of resonant terms in normal forms of singularities
  47. of vector fields (C.Herssens, P.Bonckaert, Limburgs
  48. Universitair Centrum/Belgium, private communication);
  49. write"-------------------"$
  50. lisp(print_:=nil)$
  51. depend w,x,y,z$
  52. QUASILINPDE( df(w,x)*x+df(w,y)*y+2*df(w,z)*z-2*w-x*y, w, {x,y,z} )$
  53. nodepend w,x,y,z$
  54. comment
  55. -------------------------------------------------------
  56. The result means that w is defined implicitly through
  57. x*y - log(z)*x*y + 2*w y
  58. 0 = ff(-----,---------------------,---------)
  59. z z sqrt(z)
  60. with an arbitrary function ff of 3 arguments. As the PDE
  61. was linear, the arguments of ff are such that we can
  62. solve for w:
  63. x*y y
  64. w = log(z)*x*y/2 + z*f(-----,---------)
  65. z sqrt(z)
  66. with an arbitrary function f of 2 arguments.
  67. -------------------------------------------------------
  68. The following PDEs are taken from E. Kamke,
  69. Loesungsmethoden und Loesungen von Differential-
  70. gleichungen, Partielle Differentialgleichungen
  71. erster Ordnung, B.G. Teubner, Stuttgart (1979);
  72. write"-------------------"$% equation 1.4 ----------------------
  73. lisp(depl!*:=nil)$
  74. depend z,x,y$
  75. QUASILINPDE( x*df(z,x)-y, z, {x,y})$
  76. write"-------------------"$% equation 2.5 ----------------------
  77. lisp(depl!*:=nil)$
  78. depend z,x,y$
  79. QUASILINPDE( x**2*df(z,x)+y**2*df(z,y), z, {x,y})$
  80. write"-------------------"$% equation 2.6 ----------------------
  81. lisp(depl!*:=nil)$
  82. depend z,x,y$
  83. QUASILINPDE( (x**2-y**2)*df(z,x)+2*x*y*df(z,y), z, {x,y})$
  84. write"-------------------"$% equation 2.7 ----------------------
  85. lisp(depl!*:=nil)$
  86. depend z,x,y$
  87. QUASILINPDE( (a0*x-a1)*df(z,x)+(a0*y-a2)*df(z,y), z, {x,y})$
  88. write"-------------------"$% equation 2.14 ---------------------
  89. lisp(depl!*:=nil)$
  90. depend z,x,y$
  91. QUASILINPDE( a*df(z,x)+b*df(z,y)-x**2+y**2, z, {x,y})$
  92. write"-------------------"$% equation 2.16 ---------------------
  93. lisp(depl!*:=nil)$
  94. depend z,x,y$
  95. QUASILINPDE( x*df(z,x)+y*df(z,y)-a*x, z, {x,y})$
  96. write"-------------------"$% equation 2.20 ---------------------
  97. lisp(depl!*:=nil)$
  98. depend z,x,y$
  99. QUASILINPDE( df(z,x)+df(z,y)-a*z, z, {x,y})$
  100. write"-------------------"$% equation 2.21 ---------------------
  101. lisp(depl!*:=nil)$
  102. depend z,x,y$
  103. QUASILINPDE( df(z,x)-y*df(z,y)+z, z, {x,y})$
  104. write"-------------------"$% equation 2.22 ---------------------
  105. lisp(depl!*:=nil)$
  106. depend z,x,y$
  107. QUASILINPDE( 2*df(z,x)-y*df(z,y)+z, z, {x,y})$
  108. write"-------------------"$% equation 2.23 ---------------------
  109. lisp(depl!*:=nil)$
  110. depend z,x,y$
  111. QUASILINPDE( a*df(z,x)+y*df(z,y)-b*z, z, {x,y})$
  112. write"-------------------"$% equation 2.24 ---------------------
  113. lisp(depl!*:=nil)$
  114. depend z,x,y$
  115. QUASILINPDE( x*(df(z,x)-df(z,y))-y*df(z,y), z,{x,y})$
  116. write"-------------------"$% equation 2.25 ---------------------
  117. lisp(depl!*:=nil)$
  118. depend z,x,y$
  119. QUASILINPDE( x*df(z,x)+y*df(z,y)-az, z, {x,y})$
  120. write"-------------------"$% equation 2.26 ---------------------
  121. lisp(depl!*:=nil)$
  122. depend z,x,y$
  123. QUASILINPDE( x*df(z,x)+y*df(z,y)-z+x**2+y**2-1, z, {x,y})$
  124. write"-------------------"$% equation 2.39 ---------------------
  125. lisp(depl!*:=nil)$
  126. depend z,x,y$
  127. QUASILINPDE( a*x**2*df(z,x)+b*y**2*df(z,y)-c*z**2, z, {x,y})$
  128. write"-------------------"$% equation 2.40 ---------------------
  129. lisp(depl!*:=nil)$
  130. depend z,x,y$
  131. QUASILINPDE( x*y**2*df(z,x)+2*y**3*df(z,y)-2*(y*z-x**2)**2, z,
  132. {x,y})$
  133. write"-------------------"$% equation 3.12 ---------------------
  134. lisp(depl!*:=nil)$
  135. depend w,x,y,z$
  136. QUASILINPDE( x*df(w,x)+(a*x+b*y)*df(w,y)+(c*x+d*y+f*z)*df(w,z), w,
  137. {x,y,z})$
  138. write"-------------------"$% end -------------------------------
  139. lisp(depl!*:=nil)$
  140. end$