123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599 |
- \documentstyle[11pt,reduce]{article}
- \title{The Package SPDE for Determining Symmetries of Partial
- Differential Equations}
- \date{}
- \author{Fritz Schwarz \\ GMD, Institut F1 \\
- Postfach 1240 \\ 5205 St. Augustin \\
- GERMANY \\[0.05in]
- Telephone: +49-2241-142782 \\
- Email: fritz.schwarz@gmd.de}
- \begin{document}
- \maketitle
- The package SPDE provides a set of functions which may be applied
- to determine the symmetry group of Lie- or point-symmetries of a
- given system of partial differential equations. Preferably it is
- used interactively on a computer terminal. In many cases the
- determining system is solved completely automatically. In some
- other cases the user has to provide some additional input
- information for the solution algorithm to terminate. The package
- should only be used in compiled form.
- For all theoretical questions, a description of the algorithm and
- numerous examples the following articles should be consulted:
- ``Automatically Determining Symmetries of Partial Differential
- Equations'', Computing vol. 34, page 91-106(1985) and vol. 36, page
- 279-280(1986), ``Symmetries of Differential Equations: From Sophus
- Lie to Computer Algebra'', SIAM Review, to appear, and Chapter 2
- of the Lecture Notes ``Computer Algebra and Differential Equations
- of Mathematical Physics'', to appear.
- \section{Description of the System Functions and Variables}
- The symmetry analysis of partial differential equations logically
- falls into three parts. Accordingly the most important functions
- provided by the package are:
- \begin{table}
- \begin{center}
- \begin{tabular}{| c | c | }\hline
- Function name & Operation \\ \hline \hline
- \ttindex{CRESYS}
- CRESYS(\s{arguments}) & Constructs determining system \\ \hline
- \ttindex{SIMPSYS}
- SIMPSYS() & Solves determining system \\ \hline
- \ttindex{RESULT}
- RESULT() & Prints infinitesimal generators \\
- & and commutator table \\ \hline
- \end{tabular}
- \end{center}
- \caption{SPDE Functions}
- \end{table}
- Some other useful functions for obtaining various kinds of output
- are:
- \begin{table}
- \begin{center}
- \begin{tabular}{| c | c |} \hline
- Function name & Operation \\ \hline \hline
- \ttindex{PRSYS}
- PRSYS() & Prints determining system \\ \hline
- \ttindex{PRGEN}
- PRGEN() & Prints infinitesimal generators \\ \hline
- \ttindex{COMM}
- COMM(U,V) & Prints commutator of generators U and V \\ \hline
- \end{tabular}
- \end{center}
- \caption{SPDE Useful Output Functions}\label{spde:useful}
- \end{table}
- There are several global variables defined by the system which should
- not be used for any other purpose than that given in
- Table~\ref{spde:intt} and~\ref{spde:op}. The three globals of the type
- integer are:
- \begin{table}
- \begin{center}
- \begin{tabular}{| c | c |}\hline
- Variable name & Meaning \\ \hline \hline
- \ttindex{NN}
- NN & Number of independent variables \\ \hline
- \ttindex{MM}
- MM & Number of dependent variables \\ \hline
- \ttindex{PCLASS}
- PCLASS=0, 1 or 2 & Controls amount of output \\ \hline
- \end{tabular}
- \end{center}
- \caption{SPDE Integer valued globals}\label{spde:intt}
- \end{table}
- In addition there are the following global variables of type
- operator:
- \begin{table}
- \begin{center}
- \begin{tabular}{| c | c |}\hline
- Variable name & Meaning \\ \hline \hline
- \ttindex{X(I)}
- X(I) & Independent variable $x_i$ \\ \hline
- \ttindex{U(ALFA)}
- U(ALFA) & Dependent variable $u^{alfa}$ \\ \hline
- \ttindex{U(ALFA,I)}
- U(ALFA,I) & Derivative of $u^{alfa}$ w.r.t. $x_i$ \\ \hline
- \ttindex{DEQ(I)}
- DEQ(I) & i-th differential equation \\ \hline
- \ttindex{SDER(I)}
- SDER(I) & Derivative w.r.t. which DEQ(I) is resolved \\ \hline
- \ttindex{GL(I)}
- GL(I) & i-th equation of determining system \\ \hline
- \ttindex{GEN(I)}
- GEN(I) & i-th infinitesimal generator \\ \hline
- \ttindex{XI(I)} \ttindex{ETA(ALFA)} \ttindex{ZETA(ALFA,I)}
- XI(I), ETA(ALFA) & See definition given in the \\
- ZETA(ALFA,I) & references quoted in the introduction. \\ \hline
- \ttindex{C(I)}
- C(I) & i-th function used for substitution \\ \hline
- \end{tabular}
- \end{center}
- \caption{SPDE Operator type global variables}\label{spde:op}
- \end{table}
- The differential equations of the system at issue have to be assigned
- as values to the operator deq i applying the notation which is defined
- in Table~\ref{spde:op}. The entries in the third and the last line of
- that Table have obvious extensions to higher derivatives.
- The derivative w.r.t. which the i-th differential equation deq i is
- resolved has to be assigned to sder i. Exception: If there is a single
- differential equation and no assignment has been made by the user, the
- highest derivative is taken by default.
- When the appropriate assignments are made to the variable deq, the
- values of NN and MM (Table~\ref{spde:useful}) are determined
- automatically, i.e. they have not to be assigned by the user.
- \ttindex{CRESYS}
- The function CRESYS may be called with any number of arguments, i.e.
- \begin{verbatim}
- CRESYS(); or CRESYS(deq 1,deq 2,... );
- \end{verbatim}
- are legal calls. If it is called without any argument, all current
- assignments to deq are taken into account. Example: If deq 1, deq 2
- and deq 3 have been assigned a differential equation and the symmetry
- group of the full system comprising all three equations is desired,
- equivalent calls are
- \begin{verbatim}
- CRESYS(); or CRESYS(deq 1,deq 2,deq 3);
- \end{verbatim}
- The first alternative saves some typing. If later in the session the
- symmetry group of deq 1 alone has to be determined, the correct call
- is
- \begin{verbatim}
- CRESYS deq 1;
- \end{verbatim}
- \ttindex{SIMPSYS}
- After the determining system has bee created, SIMPSYS which has no
- arguments may be called for solving it. The amount of intermediate
- output produced by SIMPSYS is controlled by the global variable PCLASS
- with the default value 0. \ttindex{PCLASS} With PCLASS equal to 0, no
- intermediate steps are shown. With PCLASS equal to 1, all intermediate
- steps are displayed so that the solution algorithm may be followed
- \index{tracing ! SPDE package} through in detail. Each time the algorithm
- passes through the top of the main solution loop the message
- \begin{verbatim}
- Entering main loop
- \end{verbatim}
- is written. PCLASS equal 2 produces a lot of LISP output and is of no
- interest for the normal user.
- If with PCLASS=0 the procedure SIMPSYS terminates without any
- response, the determining system is completely solved. In some cases
- SIMPSYS does not solve the determining system completely in a single
- run. In general this is true if there are only genuine differential
- equations left which the algorithm cannot handle at present. If a case
- like this occurs, SIMPSYS returns the remaining equations of the
- determining system. To proceed with the solution algorithm,
- appropriate assignments have to be transmitted by the user, e.g. the
- explicit solution for one of the returned differential equations. Any
- new functions which are introduced thereby must be operators of the
- form c(k) with the correct dependencies generated by a depend
- statement (see the ``REDUCE User's Guide''). Its enumeration has to be
- chosen in agreement with the current number of functions which have
- alreday been introduced. This value is returned by SIMPSYS too.
- After the determining system has been solved, the procedure RESULT,
- which has no arguments, may be called. It displays the infinitesimal
- generators and its non-vanishing commutators.
- \section{How to Use the Package}
- In this Section it is explained by way of several examples how the
- package SPDE is used interactively to determine the symmetry group of
- partial differential equations. Consider first the diffusion equation
- which in the notation given above may be written as
- \begin{verbatim}
- deq 1:=u(1,1)+u(1,2,2);
- \end{verbatim}
- It has been assigned as the value of deq 1 by this statement. There
- is no need to assign a value to sder 1 here because the system
- comprises only a single equation.
- The determining system is constructed by calling
- \begin{verbatim}
- CRESYS(); or CRESYS deq 1;
- \end{verbatim}
- The latter call is compulsory if there are other assignments to the
- operator deq i than for i=1.
- The error message
- \begin{verbatim}
- ***** Differential equations not defined
- \end{verbatim}
- appears if there are no differential equations assigned to any deq.
- If the user wants the determining system displayed for inspection
- before starting the solution algorithm he may call
- \ttindex{PRSYS}
- \begin{verbatim}
- PRSYS();
- \end{verbatim}
- and gets the answer
- \begin{verbatim}
- GL(1):=2*DF(ETA(1),U(1),X(2)) - DF(XI(2),X(2),2) -
- DF(XI(2),X(1))
- GL(2):=DF(ETA(1),U(1),2) - 2*DF(XI(2),U(1),X(2))
- GL(3):=DF(ETA(1),X(2),2) + DF(ETA(1),X(1))
- GL(4):=DF(XI(2),U(1),2)
- GL(5):=DF(XI(2),U(1)) - DF(XI(1),U(1),X(2))
- GL(6):=2*DF(XI(2),X(2)) - DF(XI(1),X(2),2) - DF(XI(1),X(1))
- GL(7):=DF(XI(1),U(1),2)
- GL(8):=DF(XI(1),U(1))
- GL(9):=DF(XI(1),X(2))
- The remaining dependencies
- XI(2) depends on U(1),X(2),X(1)
- XI(1) depends on U(1),X(2),X(1)
- ETA(1) depends on U(1),X(2),X(1)
- \end{verbatim}
- The last message means that all three functions XI(1), XI(2) and
- ETA(1) depend on X(1), X(2) and U(1). Without this information the
- nine equations GL(1) to GL(9) forming the determining system are
- meaningless. Now the solution algorithm may be activated by calling
- \ttindex{SIMPSYS}
- \begin{verbatim}
- SIMPSYS();
- \end{verbatim}
- \ttindex{PCLASS}
- If the print flag PCLASS has its default value which is 0 no
- intermediate output is produced and the answer is
- \begin{verbatim}
- Determining system is not completely solved
- The remaining equations are
- GL(1):=DF(C(1),X(2),2) + DF(C(1),X(1))
- Number of functions is 16
- The remaining dependencies
- C(1) depends on X(2),X(1)
- \end{verbatim}
- With PCLASS equal to 1 about 6 pages of intermediate output are
- obtained. It allows the user to follow through each step of the
- solution algorithm.
- In this example the algorithm did not solve the determining system
- completely as it is shown by the last message. This was to be expected
- because the diffusion equation is linear and therefore the symmetry
- group contains a generator depending on a function which solves the
- original differential equation. In cases like this the user has to
- provide some additional information to the system so that the solution
- algorithm may continue. In the example under consideration the
- appropriate input is
- \begin{verbatim}
- DF(C(1),X(1)) := - DF(C(1),X(2),2);
- \end{verbatim}
- If now the solution algorithm is activated again by
- \begin{verbatim}
- SIMPSYS();
- \end{verbatim}
- the solution algorithm terminates without any further message, i.e.
- there are no equations of the determining system left unsolved. To
- obtain the symmetry generators one has to say finally
- \begin{verbatim}
- RESULT();
- \end{verbatim}
- and obtains the answer
- \begin{verbatim}
- The differential equation
- DEQ(1):=U(1,2,2) + U(1,1)
- The symmetry generators are
- GEN(1):= DX(1)
- GEN(2):= DX(2)
- GEN(3):= 2*DX(2)*X(1) + DU(1)*U(1)*X(2)
- GEN(4):= DU(1)*U(1)
- GEN(5):= 2*DX(1)*X(1) + DX(2)*X(2)
- 2
- GEN(6):= 4*DX(1)*X(1)
- + 4*DX(2)*X(2)*X(1)
- 2
- + DU(1)*U(1)*(X(2) - 2*X(1))
- GEN(7):= DU(1)*C(1)
- The remaining dependencies
- C(1) depends on X(2),X(1)
- Constraints
- DF(C(1),X(1)):= - DF(C(1),X(2),2)
- The non-vanishing commutators of the finite subgroup
- COMM(1,3):= 2*DX(2)
- COMM(1,5):= 2*DX(1)
- COMM(1,6):= 8*DX(1)*X(1) + 4*DX(2)*X(2) - 2*DU(1)*U(1)
- COMM(2,3):= DU(1)*U(1)
- COMM(2,5):= DX(2)
- COMM(2,6):= 4*DX(2)*X(1) + 2*DU(1)*U(1)*X(2)
- COMM(3,5):= - (2*DX(2)*X(1) + DU(1)*U(1)*X(2))
- 2
- COMM(5,6):= 8*DX(1)*X(1)
- + 8*DX(2)*X(2)*X(1)
- 2
- + 2*DU(1)*U(1)*(X(2) - 2*X(1))
- \end{verbatim}
- The message ``Constraints'' which appears after the symmetry generators
- are displayed means that the function c(1) depends on x(1) and x(2)
- and satisfies the diffusion equation.
- More examples which may used for test runs are given in the final
- section.
- \index{ansatz of symmetry generator}
- If the user wants to test a certain ansatz of a symmetry generator for
- given differential equations, the correct proceeding is as follows.
- Create the determining system as described above. Make the appropriate
- assignments for the generator and call PRSYS() after that. The
- determining system with this ansatz substituted is returned. Example:
- Assume again that the determining system for the diffusion equation
- has been created. To check the correctness for example of generator GEN
- 3 which has been obtained above, the assignments
- \begin{verbatim}
- XI(1):=0; XI(2):=2*X(1); ETA(1):=X(2)*U(1);
- \end{verbatim}
- have to be made. If now PRSYS() is called all GL(K) are zero
- proving the correctness of this generator.
- Sometimes a user only wants to know some of the functions ZETA for for
- various values of its possible arguments and given values of MM and
- NN. In these cases the user has to assign the desired values of MM and
- NN and may call the ZETAs after that. Example:
- \begin{verbatim}
- MM:=1; NN:=2;
- FACTOR U(1,2),U(1,1),U(1,1,2),U(1,1,1);
- ON LIST;
- ZETA(1,1);
- -U(1,2)*U(1,1)*DF(XI(2),U(1))
- -U(1,2)*DF(XI(2),X(1))
- 2
- -U(1,1) *DF(XI(1),U(1))
- +U(1,1)*(DF(ETA(1),U(1)) -DF(XI(1),X(1)))
- +DF(ETA(1),X(1))
- ZETA(1,1,1);
- -2*U(1,1,2)*U(1,1)*DF(XI(2),U(1))
- -2*U(1,1,2)*DF(XI(2),X(1))
- -U(1,1,1)*U(1,2)*DF(XI(2),U(1))
- -3*U(1,1,1)*U(1,1)*DF(XI(1),U(1))
- +U(1,1,1)*(DF(ETA(1),U(1)) -2*DF(XI(1),X(1)))
- 2
- -U(1,2)*U(1,1) *DF(XI(2),U(1),2)
- -2*U(1,2)*U(1,1)*DF(XI(2),U(1),X(1))
- -U(1,2)*DF(XI(2),X(1),2)
- 3
- -U(1,1) *DF(XI(1),U(1),2)
- 2
- +U(1,1) *(DF(ETA(1),U(1),2) -2*DF(XI(1),U(1),X(1)))
- +U(1,1)*(2*DF(ETA(1),U(1),X(1)) -DF(XI(1),X(1),2))
- +DF(ETA(1),X(1),2)
- \end{verbatim}
- If by error no values to MM or NN and have been assigned the message
- \begin{verbatim}
- ***** Number of variables not defined
- \end{verbatim}
- is returned. Often the functions ZETA are desired for special values
- of its arguments ETA(ALFA) and XI(K). To this end they have to be
- assigned first to some other variable. After that they may be
- evaluated for the special arguments. In the previous example this may
- be achieved by
- \begin{verbatim}
- Z11:=ZETA(1,1)$ Z111:=ZETA(1,1,1)$
- \end{verbatim}
- Now assign the following values to XI 1, XI 2 and ETA 1:
- \begin{verbatim}
- XI 1:=4*X(1)**2; XI 2:=4*X(2)*X(1);
- ETA 1:=U(1)*(X(2)**2 - 2*X(1));
- \end{verbatim}
- They correspond to the generator GEN 6 of the diffusion equation which
- has been obtained above. Now the desired expressions are obtained by
- calling
- \begin{verbatim}
- Z11;
- 2
- - (4*U(1,2)*X(2) - U(1,1)*X(2) + 10*U(1,1)*X(1) + 2*U(1))
- Z111;
- 2
- - (8*U(1,1,2)*X(2) - U(1,1,1)*X(2) + 18*U(1,1,1)*X(1) +
- 12*U(1,1))
- \end{verbatim}
- \section{Test File}
- This appendix is a test file. The symmetry groups for various
- equations or systems of equations are determined. The variable PCLASS
- has the default value 0 and may be changed by the user before running
- it. The output may be compared with the results which are given in the
- references.
- \begin{verbatim}
- %The Burgers equations
- deq 1:=u(1,1)+u 1*u(1,2)+u(1,2,2)$
- cresys deq 1$ simpsys()$ result()$
- %The Kadomtsev-Petviashvili equation
- deq 1:=3*u(1,3,3)+u(1,2,2,2,2)+6*u(1,2,2)*u 1
- +6*u(1,2)**2+4*u(1,1,2)$
- cresys deq 1$ simpsys()$ result()$
- %The modified Kadomtsev-Petviashvili equation
- deq 1:=u(1,1,2)-u(1,2,2,2,2)-3*u(1,3,3)
- +6*u(1,2)**2*u(1,2,2)+6*u(1,3)*u(1,2,2)$
- cresys deq 1$ simpsys()$ result()$
- %The real- and the imaginary part of the nonlinear
- %Schroedinger equation
- deq 1:= u(1,1)+u(2,2,2)+2*u 1**2*u 2+2*u 2**3$
- deq 2:=-u(2,1)+u(1,2,2)+2*u 1*u 2**2+2*u 1**3$
- %Because this is not a single equation the two assignments
- sder 1:=u(2,2,2)$ sder 2:=u(1,2,2)$
- %are necessary.
- cresys()$ simpsys()$ result()$
- %The symmetries of the system comprising the four equations
- deq 1:=u(1,1)+u 1*u(1,2)+u(1,2,2)$
- deq 2:=u(2,1)+u(2,2,2)$
- deq 3:=u 1*u 2-2*u(2,2)$
- deq 4:=4*u(2,1)+u 2*(u 1**2+2*u(1,2))$
- sder 1:=u(1,2,2)$ sder 2:=u(2,2,2)$ sder 3:=u(2,2)$
- sder 4:=u(2,1)$
- %is obtained by calling
- cresys()$ simpsys()$
- df(c 5,x 1):=-df(c 5,x 2,2)$
- df(c 5,x 2,x 1):=-df(c 5,x 2,3)$
- simpsys()$ result()$
- % The symmetries of the subsystem comprising equation 1
- % and 3 are obtained by
- cresys(deq 1,deq 3)$ simpsys()$ result()$
- % The result for all possible subsystems is discussed in
- % detail in ``Symmetries and Involution Systems: Some
- % Experiments in Computer Algebra'', contribution to the
- % Proceedings of the Oberwolfach Meeting on Nonlinear
- % Evolution Equations, Summer 1986, to appear.
- \end{verbatim}
- \end{document}
|