
% Dear Mike,
%
% We now discovered that perhaps we should send the article to Tony Scott.
% Since we are still not sure, we are sending the article to you and to Tony
% Scott anyway. Thank you and excuse us if we made a mistake in sending the
% article to you.
%
% Regards,
%                             Edgardo
%
% PS: Following are:
%     1) the article we are submitting;
%     2) the input lines of the paper;
%     3) a biographical note on the authors.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Created by Maple V Release 3
\documentstyle[maplems]{article}
\begin{document}

\title{A Maple 5.3 Package for the Analytical Solving of Partial
                      Differential Equations}

\author{E.S.Cheb-Terrab and K. von B\"ulow \\
\     \\
{\em Departamento de  F\'\i sica Te\'orica}  \\
{\em Instituto de F\'\i sica}  \\
{\em Universidade do Estado do Rio de Janeiro}  \\
{\em RJ 20550 - Brazil}}
\date{}
\maketitle
\thispagestyle{empty}

\section*{Introduction}

Partial differential equations (PDE's) play a major role in the mathematical
representation of problems in almost all branches of science.  On the other
hand, as far as we know, the tools required for finding their analytical
solutions in an automated manner are not yet implemented in general-purpose
symbolic computing systems.

This paper presents the {\it PDEtools} package of commands, for working with
and analytically solving PDE's, implemented using {\bf Maple V}\footnote{The
commands and routines here presented were built to work in the {\bf Maple V}
Release 5.3 environment, and are not intended to work with any other
computer algebra system.}.

The {\it PDEtools} package allows its User to look for analytical solutions
of a PDE in either a completely automated or an interactive manner.
Furthermore, there are no restrictions as to the type (linear, non-linear,
etc..), differential order, or number of independent variables of the PDE's
which can be treated by the package's commands\footnote{This does not mean
that the commands will succeed in all cases.}.

The plan for the exposition is as follows.  In Sec.1, the objectives of the
package are discussed and its commands are introduced. Sec.2 contains a few
examples, presenting the main different manners of using the PDE solver
({\bf pdsolve}) and the other commands of the package. Sec.3 illustrates
some of the solving methods already implemented and gives an idea of how to
use the commands in an interactive manner. Finally, the Conclusions contain
a brief discussion about this work and its possible extensions.

\section*{The {\it PDEtools} package}

\subsection*{\it The objectives of a PDE-solving package}

The first point to be discussed, with respect to a program that intends to
obtain the analytical solution of PDE's, is what the program should return
as the result. This is not obvious, since a PDE may have many different
types of solutions. Our proposal was:

\begin{quote}

{\it Given a PDE, our command should return the most general solution it
could find. At least, it should try to return a system of non-coupled ODE's,
with all the variables separated, giving the User the option of asking for
the integration of these ODE's in order to arrive at the complete
solution\footnote{Complete solutions are usually discussed in the context of
first-order PDE's. The meaning we are giving here to the complete solution
of a higher order PDE is a natural extension of that given in the
first-order case.} of the PDE.}

\end{quote}

As auxiliary tools, we proposed that the commands of the package should
permit the User to make changes of variables ({\bf dchange} command),
propose {\it hints} for solving the given PDE (the \verb-HINT- option), and
test the results obtained by {\bf pdsolve} ({\bf pdtest} command).  This
division into separate subroutines, as well as the {\it hint} idea, were
thought up to make the package as flexible as possible, so that, at any
time, new methods and/or tools may be added to it.  In this way, the
greatest handicap of any PDE-solving program, i.e., that there is no general,
ever-efficient method to solve PDE's, became of less consequence.

\subsection*{\it The commands of the package}

A brief overview of the commands of the package is as follows:

\begin{itemize}

\item {\bf pdsolve} looks for the general solution or the complete
separation of the variables in a given PDE. The main {\it options} the User
has are: to ask for the automatic integration of the system of non-coupled
ODE's obtained when a separation of variables is performed, and to suggest
a {\it hint} to be taken as departure point\footnote{This becomes clearer in
the examples.} in searching for the PDE's solution.

\item {\bf pdtest} tests the solution found by {\bf pdsolve} for a given PDE
by making a careful simplification of the PDE with respect to this solution.

\item {\bf dchange} performs changes of variables in PDE's and other
algebraic objects (integrals, sums, limits, etc...). This command is useful
to change the format of a PDE from one that is {\it difficult to solve} to
one that is {\it solvable}\footnote{Some of {\bf pdsolve}'s subroutines use
the {\bf dchange} command with this purpose.}, and to study the invariance
groups underlying it.

\item {\bf strip} evaluates the {\it characteristic strip} associated to a
first-order PDE; i.e., it builds the system of coupled ODE's equivalent to
that PDE.

\item {\bf splitstrip} evaluates the {\it strip} associated to a PDE as
does the {\bf strip} command, but returns this strip, when possible, split
into subsets, each one with ODE's {\it coupled among themselves}, but not
coupled to the ODE's of the other subsets.  This command is also used by
{\bf pdsolve} when the \verb-HINT=strip- option is indicated by the User.

\item {\bf build} takes a solution found by {\bf pdsolve} and with it builds
the final expression for the corresponding PDE's indeterminate function.

\end{itemize}

\section*{How to use the commands and what they do}

This Section briefly illustrates the ways to use the PDEtools package
in studying and solving partial differential equations (for more information
see the pdetools.tex file in the Maple Share Library).

To start with, let's see how {\bf pdsolve} returns its results:

\begin{mapleinput}
read `pdetools.txt`:
\end{mapleinput}
\begin{mapleinput}
PDE := diff(f(x,y,z),y)^2*exp(2*y)+diff(f(x,y,z),x)/cos(x)/z=diff(f(x,y,z),z);
\end{mapleinput}

\begin{maplelatex}
\[
{\it PDE} :=  \left( \! \,{\frac {{ \partial}}{{ \partial}{y}}}\,
{\rm f}(\,{x}, {y}, {z}\,)\, \!  \right) ^{2}\,{\rm e}^{(\,2\,{y}
\,)} + {\displaystyle \frac {{\frac {{ \partial}}{{ \partial}{x}
}}\,{\rm f}(\,{x}, {y}, {z}\,)}{{\rm cos}(\,{x}\,)\,{z}}}=
{\frac {{ \partial}}{{ \partial}{z}}}\,{\rm f}(\,{x}, {y}, {z}\,)
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(");
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm f}(\,{x}, {y}, {z}\,)={\rm \_f1}(\,{x}\,) +
{\rm \_f2}(\,{y}\,) + {\rm \_f3}(\,{z}\,)\,)\,{\rm \&Where}} \\
 & &  \left[ \! \, \left\{ \! \,{\frac {{ \partial}}{{ \partial}{
x}}}\,{\rm \_f1}(\,{x}\,)={{\it \_c}_{1}}\,{\rm cos}(\,{x}\,),
{\frac {{ \partial}}{{ \partial}{z}}}\,{\rm \_f3}(\,{z}\,)=
{\displaystyle \frac {{{\it \_c}_{1}}}{{z}}} + {{\it \_c}_{2}},
 \left( \! \,{\frac {{ \partial}}{{ \partial}{y}}}\,{\rm \_f2}(\,
{y}\,)\, \!  \right) ^{2}={\rm e}^{(\, - 2\,{y}\,)}\,{{\it \_c}_{
2}}\, \!  \right\} \, \!  \right]
\end{eqnarray*}
\end{maplelatex}

\noindent That is, when {\bf pdsolve} succeeds in solving a PDE, the result
is returned using the \&Where function\footnote{We use \&Where instead of
\&where in order to avoid conflicts with the {\it liesymm} package.};  to
the left comes the result found for the indeterminate function, and to the
right comes a list.  In the example above, the list contains a set of ODE's
for the functions \_f1, \_f2 and \_f3, introduced by {\bf pdsolve} when
building the result. We will see in other examples that the list may also
contain an indication of any arbitrary functions and/or changes of variables
introduced by {\bf pdsolve} during the solving process.

\noindent Note also the introduction of constants $\_c_i$ when separating
the variables. One should also expect the appearing of constants $\_C...$ of
integration if one asks for the integration of the ODE's.  To ask {\bf
pdsolve} to do that integration automatically, it is necessary to give it
the extra argument \verb-INTEGRATE-:

\begin{mapleinput}
pdsolve(PDE,INTEGRATE);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm f}(\,{x}, {y}, {z}\,)={\rm \_f1}(\,{x}\,) +
{\rm \_f2}(\,{y}\,) + {\rm \_f3}(\,{z}\,)\,)\,{\rm \&Where}
 \left[ {\vrule height0.51em width0em depth0.51em} \right. \! \!
 \left\{ {\vrule height0.51em width0em depth0.51em} \right. \!
\! } \\
 & &  \left\{ \! \,{\rm \_f3}(\,{z}\,)={{\it \_c}_{2}}\,{z} + {
{\it \_c}_{1}}\,{\rm ln}(\,{z}\,) + {\it \_C3}\, \!  \right\} ,
 \\
 & &  \left\{ \! \,{\rm \_f2}(\,{y}\,)= - \sqrt {{\rm e}^{(\, - 2
\,{y}\,)}\,{{\it \_c}_{2}}} + {\it \_C2}, {\rm \_f2}(\,{y}\,)=
\sqrt {{\rm e}^{(\, - 2\,{y}\,)}\,{{\it \_c}_{2}}} + {\it \_C2}\,
 \!  \right\} ,  \\
 & &  \left\{ \! \,{\rm \_f1}(\,{x}\,)={\rm sin}(\,{x}\,)\,{{\it
\_c}_{1}} + {\it \_C1}\, \!  \right\}  \! \! \left. {\vrule
height0.51em width0em depth0.51em} \right\}  \! \! \left.
{\vrule height0.51em width0em depth0.51em} \right]
\end{eqnarray*}
\end{maplelatex}

\noindent The task of integrating the ODE's was sent by {\bf pdsolve} to the
standard {\bf dsolve} command.

\noindent To see the resulting expression for the indeterminate function
f(x,y), it is possible to use the {\bf build} command\footnote{It is not
necessary to give {\bf pdsolve} the \verb-INTEGRATE- option before using the
{\bf build} command.}:

\begin{mapleinput}
build(");
\end{mapleinput}
\begin{maplelatex}
\[
{\rm f}(\,{x}, {y}, {z}\,)={\rm sin}(\,{x}\,)\,{{\it \_c}_{1}} +
{\it \_C1} - \sqrt {{\displaystyle \frac {{{\it \_c}_{2}}}{(\,
{\rm e}^{{y}}\,)^{2}}}} + {\it \_C2} + {{\it \_c}_{2}}\,{z} + {
{\it \_c}_{1}}\,{\rm ln}(\,{z}\,) + {\it \_C3}
\]
\end{maplelatex}

Let's now illustrate the giving of a \verb-HINT- to {\bf pdsolve}:

\begin{mapleinput}
PDE :=x^2*diff(f(x,y),x$2)-2*x*y*diff(f(x,y),x,y)+y^2*diff(f(x,y),y$2)+x*
\end{mapleinput}
\begin{mapleinput}
diff(f(x,y),x)=0;
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} := {x}^{2}\, \left( \! \,{\frac {{ \partial}^{2}}{{
\partial}{x}^{2}}}\,{\rm f}(\,{x}, {y}\,)\, \!  \right)  - 2\,{x}
\,{y}\, \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{y}\,{
\partial}{x}}}\,{\rm f}(\,{x}, {y}\,)\, \!  \right)  + {y}^{2}\,
 \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{y}^{2}}}\,{\rm
f}(\,{x}, {y}\,)\, \!  \right)  + {x}\, \left( \! \,{\frac {{
\partial}}{{ \partial}{x}}}\,{\rm f}(\,{x}, {y}\,)\, \!  \right)
=0
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE,HINT=x*g(y)+y*h(x));
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm f}(\,{x}, {y}\,)={x}\,{\rm g}(\,{y}\,) + {y}\,
{\rm h}(\,{x}\,)\,)\,{\rm \&Where}} \\
 & &  \left[ \! \, \left\{ \! \,{\frac {{ \partial}^{2}}{{
\partial}{x}^{2}}}\,{\rm h}(\,{x}\,)={\displaystyle \frac {{{\it
\_c}_{1}}}{{x}}} + {\displaystyle \frac {{\frac {{ \partial}}{{
\partial}{x}}}\,{\rm h}(\,{x}\,)}{{x}}}, {\frac {{ \partial}^{2}
}{{ \partial}{y}^{2}}}\,{\rm g}(\,{y}\,)= - \,{\displaystyle
\frac {{{\it \_c}_{1}}}{{y}}} + {\displaystyle \frac {2\,{y}\,
 \left( \! \,{\frac {{ \partial}}{{ \partial}{y}}}\,{\rm g}(\,{y}
\,)\, \!  \right)  - {\rm g}(\,{y}\,)}{{y}^{2}}}\, \!  \right\}
\, \!  \right]
\end{eqnarray*}
\end{maplelatex}

\noindent The \verb-HINT- above means, to {\bf pdsolve}, that it should take
the indicated expression as start-point in looking for a solution to the
PDE. Three different situations may then arise:

\begin{enumerate}

\item the proposed \verb-HINT- may lead directly to a complete or general
result;

\item the proposed \verb-HINT- may lead to a partial solution (a reduced
problem); in this case, {\bf pdsolve} re-enters itself with the reduced
problem as argument, and tackles it using different methods. When these
other methods are successful, the result appears as a composition of the
given \verb-HINT- with them;

\item the proposed \verb-HINT- may turn out to be useless in solving the
PDE; in this case, a warning message is returned.

\end{enumerate}

Another command of the package is {\bf pdtest}. This command takes the PDE
as first argument and the result found by {\bf pdsolve} as the second one,
returning 0 when the result checks OK:

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

If {\bf pdsolve}'s result is incorrect, {\bf pdtest} will return the
expression obtained after simplifying the PDE with respect to this wrong
result (this expression will then not be zero).

When a change of variables is automatically introduced during the solving
process, the transformation equations appear through the \&and function and
the result can be tested with {\bf pdtest} as well. For example,

\begin{mapleinput}
PDE := diff(f(x,y),x,x) + diff(f(x,y),y,x) + diff(f(x,y),y,y)=0;
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} :=  \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{x}
^{2}}}\,{\rm f}(\,{x}, {y}\,)\, \!  \right)  +  \left( \! \,
{\frac {{ \partial}^{2}}{{ \partial}{x}\,{ \partial}{y}}}\,{\rm f
}(\,{x}, {y}\,)\, \!  \right)  +  \left( \! \,{\frac {{ \partial}
^{2}}{{ \partial}{y}^{2}}}\,{\rm f}(\,{x}, {y}\,)\, \!  \right) =
0
\]
\end{maplelatex}

\begin{mapleinput}
sol := pdsolve(PDE);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{{\it sol} := (\,{\rm f}(\,{x}, {y}\,)={\rm \_f1}(\,{\_
\xi 1}\,)\,{\rm \_f2}(\,{\_ \xi 2}\,)\,)\,{\rm \&Where} \left[
{\vrule height0.85em width0em depth0.85em} \right. \! \! } \\
 & &  \left\{ \! \,{\frac {{ \partial}^{2}}{{ \partial}{\_ \xi 1}
^{2}}}\,{\rm \_f1}(\,{\_ \xi 1}\,)={{\it \_c}_{1}}\,{\rm \_f1}(\,
{\_ \xi 1}\,), {\frac {{ \partial}^{2}}{{ \partial}{\_ \xi 2}^{2}
}}\,{\rm \_f2}(\,{\_ \xi 2}\,)= - {{\it \_c}_{1}}\,{\rm \_f2}(\,{
\_ \xi 2}\,)\, \!  \right\} ,  \\
 & & {\rm \&and} \left( \! \, \left\{ \! \,{\_ \xi 2}= - \,
{\displaystyle \frac {1}{2}}\,\sqrt {3}\,{x}, {\_ \xi 1}={y} -
{\displaystyle \frac {1}{2}}\,{x}\, \!  \right\} \, \!  \right)
 \! \! \left. {\vrule height0.85em width0em depth0.85em} \right]
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,sol);
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

When {\bf pdsolve} makes changes of variables in PDE's, it uses the {\bf dchange}
command.  To illustrate it, let's first use the solve command to invert the
transformation equations of the example above

\begin{mapleinput}
select(has,op(2,sol),`&and`):
\end{mapleinput}
\begin{mapleinput}
itr := indets(",`=`);
\end{mapleinput}
\begin{mapleinput}
tr := solve(",{x,y});
\end{mapleinput}
\begin{maplelatex}
\[
{\it itr} :=  \left\{ \! \,{\_ \xi 2}= - \,{\displaystyle \frac {
1}{2}}\,\sqrt {3}\,{x}, {\_ \xi 1}={y} - {\displaystyle \frac {1
}{2}}\,{x}\, \!  \right\}
\]
\end{maplelatex}
\begin{maplelatex}
\[
{\it tr} :=  \left\{ \! \,{x}= - \,{\displaystyle \frac {2}{3}}\,
\sqrt {3}\,{\_ \xi 2}, {y}= - \,{\displaystyle \frac {1}{3}}\,
\sqrt {3}\,{\_ \xi 2} + {\_ \xi 1}\, \!  \right\}
\]
\end{maplelatex}

\noindent The {\bf dchange} calling sequence is:

\begin{mapleinput}
dchange(transf, target, inv_transf, [new_vars], known=..., unknown=...,simp_proc):
\end{mapleinput}

\noindent where only the two first arguments are mandatory.  The list with
the variables to be taken as new is not required if those variables are
contained in the right-hand-sides of the transformation equations.  The
other arguments are almost {\it always optional}, but sometimes the giving
of the inverse transformation may allow the introduction, in the result, of
special functions unknown to the system (see the ON-LINE help for {\bf
dchange}). Thus the PDE really solved above by {\bf pdsolve} was

\begin{mapleinput}
dchange(tr,PDE,simplify);
\end{mapleinput}
\begin{maplelatex}
\[
{\displaystyle \frac {3}{4}}\, \left( \! \,{\frac {{ \partial}^{2
}}{{ \partial}{\_ \xi 1}^{2}}}\,{\rm f}(\,{\_ \xi 1}, {\_ \xi 2}
\,)\, \!  \right)  + {\displaystyle \frac {3}{4}}\, \left( \! \,
{\frac {{ \partial}^{2}}{{ \partial}{\_ \xi 2}^{2}}}\,{\rm f}(\,{
\_ \xi 1}, {\_ \xi 2}\,)\, \!  \right) =0
\]
\end{maplelatex}

\noindent To arrive at this result, {\bf dchange} takes $$f(x,y) \rightarrow
f(\,{\_ \xi 1}, {\_ \xi 2}\,)$$ i.e., it looks at f as an ``unknown"
function (by default, if no rule for the derivatives of f is defined, f is
viewed as unknown). However, it is possible to force {\bf dchange} to look
at f as a ``known" function, in which case one will receive $$f(x,y)
\rightarrow f(x(\,{\_ \xi 1}, {\_ \xi 2}\,),y(\,{\_ \xi 1}, {\_ \xi 2}\,)).
$$ as in, for example,

\begin{mapleinput}
dchange(tr,f(x,y),known=f);
\end{mapleinput}
\begin{maplelatex}
\[
{\rm f} \left( \! \, - \,{\displaystyle \frac {2}{3}}\,{\_ \xi 2}
\,\sqrt {3}, {\_ \xi 1} - {\displaystyle \frac {1}{3}}\,{\_ \xi 2
}\,\sqrt {3}\, \!  \right)
\]
\end{maplelatex}

\section*{Some of the implemented solving methods}

The {\bf pdsolve} command is an implementation of some standard techniques
for solving PDE's which can be found in text-books such as Courant-Hilbert's
``Mathematical Methods for Physics", or Smirnov's ``Course of Higher
Mathematics", among others (see the references).

>From the point of view of the strategy, the core of the program was thought
as a mechanism of algebraic manipulations aiming at the separation of the
variables; while the surface contains a number of subroutines dedicated
either to propose a \verb-HINT- leading to the general solution or to
determine what would be the path (also a \verb-HINT-) to attain that
separation.

What follows is a quick commented tour illustrating some of the methods
known to {\bf pdsolve}, giving the User an idea of what would be the best
way to tackle his/her PDE's. In some cases, it is enough to give only the
PDE to {\bf pdsolve}.  In other cases, or just to study the same PDE under
different points of view, a \verb-HINT- may be useful...

1) Hamilton-Jacobi-type equation (Mechanics).

\noindent The solution given below is obtained through separation of
variables and is complete:

\begin{mapleinput}
PDE := -diff(S(xi,eta,t,phi),t) = 2/m/(xi+eta)*(xi*diff(S(xi,eta,t,phi
\end{mapleinput}
\begin{mapleinput}
),xi)^2+eta*diff(S(xi,eta,t,phi),eta)^2)+1/2/m/xi/eta*diff(S(xi,eta,t,phi
\end{mapleinput}
\begin{mapleinput}
),phi)^2+(2*alpha-1/2*F*xi^2+1/2*F*eta^2)/(xi+eta)+f(phi)/xi/eta;
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{{\it PDE} :=  -  \left( \! \,{\frac {{ \partial}}{{
\partial}{t}}}\,{\rm S}(\,{ \xi}, { \eta}, {t}, { \phi}\,)\, \!
 \right) =2\,{\displaystyle \frac {{ \xi}\, \left( \! \,{\frac {{
 \partial}}{{ \partial}{ \xi}}}\,{\rm S}(\,{ \xi}, { \eta}, {t},
{ \phi}\,)\, \!  \right) ^{2} + { \eta}\, \left( \! \,{\frac {{
\partial}}{{ \partial}{ \eta}}}\,{\rm S}(\,{ \xi}, { \eta}, {t},
{ \phi}\,)\, \!  \right) ^{2}}{{m}\,(\,{ \xi} + { \eta}\,)}}} \\
 & & \mbox{} + {\displaystyle \frac {1}{2}}\,{\displaystyle
\frac { \left( \! \,{\frac {{ \partial}}{{ \partial}{ \phi}}}\,
{\rm S}(\,{ \xi}, { \eta}, {t}, { \phi}\,)\, \!  \right) ^{2}}{{m
}\,{ \xi}\,{ \eta}}} + {\displaystyle \frac {2\,{ \alpha} -
{\displaystyle \frac {1}{2}}\,{F}\,{ \xi}^{2} + {\displaystyle
\frac {1}{2}}\,{F}\,{ \eta}^{2}}{{ \xi} + { \eta}}} +
{\displaystyle \frac {{\rm f}(\,{ \phi}\,)}{{ \xi}\,{ \eta}}}
\mbox{\hspace{48pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm S}(\,{ \xi}, { \eta}, {t}, { \phi}\,)={\rm \_S1}
(\,{ \xi}\,) + {\rm \_S2}(\,{ \eta}\,) + {\rm \_S3}(\,{t}\,) +
{\rm \_S4}(\,{ \phi}\,)\,)\,{\rm \&Where} \left[ {\vrule
height0.96em width0em depth0.96em} \right. \! \!  \left\{
{\vrule height0.96em width0em depth0.96em} \right. \! \! } \\
 & &  \left( \! \,{\frac {{ \partial}}{{ \partial}{ \eta}}}\,
{\rm \_S2}(\,{ \eta}\,)\, \!  \right) ^{2}={\displaystyle \frac {
1}{2}}\,{\displaystyle \frac {{m}\,{{\it \_c}_{1}}}{{ \eta}}} -
{\displaystyle \frac {1}{4}}\,{\displaystyle \frac {{{\it \_c}_{4
}}}{{ \eta}^{2}}} - {\displaystyle \frac {1}{2}}\,{{\it \_c}_{3}}
\,{m} - {\displaystyle \frac {1}{4}}\,{\displaystyle \frac {
 \left( \! \,4\,{ \alpha} + {F}\,{ \eta}^{2}\, \!  \right) \,{m}
}{{ \eta}}},  \\
 & &  \left( \! \,{\frac {{ \partial}}{{ \partial}{ \xi}}}\,{\rm
\_S1}(\,{ \xi}\,)\, \!  \right) ^{2}= - \,{\displaystyle \frac {1
}{2}}\,{\displaystyle \frac {{m}\,{{\it \_c}_{1}}}{{ \xi}}} -
{\displaystyle \frac {1}{4}}\,{\displaystyle \frac {{{\it \_c}_{4
}}}{{ \xi}^{2}}} - {\displaystyle \frac {1}{2}}\,{{\it \_c}_{3}}
\,{m} + {\displaystyle \frac {1}{4}}\,{F}\,{ \xi}\,{m}, {\frac {{
 \partial}}{{ \partial}{t}}}\,{\rm \_S3}(\,{t}\,)={{\it \_c}_{3}}
,  \\
 & &  \left( \! \,{\frac {{ \partial}}{{ \partial}{ \phi}}}\,
{\rm \_S4}(\,{ \phi}\,)\, \!  \right) ^{2}={{\it \_c}_{4}} - 2\,
{\rm f}(\,{ \phi}\,)\,{m} \! \! \left. {\vrule
height0.96em width0em depth0.96em} \right\}  \! \! \left.
{\vrule height0.96em width0em depth0.96em} \right]
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

2) For first-order equations, it is possible to calculate the associated
characteristic strip through the {\bf strip} and {\bf splitstrip} commands.
The command {\bf splitstrip} subdivides the strip into sets containing
equations only coupled among themselves.

\begin{mapleinput}
PDE := x*diff(f(x,y,z,t),y)-diff(f(x,y,z,t),x)+t*diff(f(x,y,z,t),z)=f(x,y,
\end{mapleinput}
\begin{mapleinput}
z,t)/y;
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} := {x}\, \left( \! \,{\frac {{ \partial}}{{ \partial}{y}
}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!  \right)  -  \left( \!
\,{\frac {{ \partial}}{{ \partial}{x}}}\,{\rm f}(\,{x}, {y}, {z}
, {t}\,)\, \!  \right)  + {t}\, \left( \! \,{\frac {{ \partial}}{
{ \partial}{z}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!  \right) =
{\displaystyle \frac {{\rm f}(\,{x}, {y}, {z}, {t}\,)}{{y}}}
\]
\end{maplelatex}

\begin{mapleinput}
splitstrip(PDE,f(x,y,z,t));
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{ \left\{ {\vrule height0.80em width0em depth0.80em}
 \right. \! \!  \left\{ \! \,{\frac {{ \partial}}{{ \partial}
{\it \_s}}}\,{\rm x}(\,{\it \_s}\,)=-1, {\frac {{ \partial}}{{
\partial}{\it \_s}}}\,{\rm f}(\,{\it \_s}\,)={\displaystyle
\frac {{\rm f}(\,{\it \_s}\,)}{{\rm y}(\,{\it \_s}\,)}}, {\frac {
{ \partial}}{{ \partial}{\it \_s}}}\,{\rm y}(\,{\it \_s}\,)={\rm
x}(\,{\it \_s}\,)\, \!  \right\} , } \\
 & &  \left\{ \! \,{\frac {{ \partial}}{{ \partial}{\it \_s}}}\,
{\rm z}(\,{\it \_s}\,)={\rm t}(\,{\it \_s}\,), {\frac {{ \partial
}}{{ \partial}{\it \_s}}}\,{\rm t}(\,{\it \_s}\,)=0\, \!
 \right\}  \! \! \left. {\vrule height0.80em width0em depth0.80em
} \right\} \mbox{\hspace{74pt}}
\end{eqnarray*}
\end{maplelatex}

\noindent Also, one can use the characteristic strip method for solving
PDE's by indicating it as a \verb-HINT- to the {\bf pdsolve} command. In
this case, {\bf pdsolve} will try to find the differential invariants
associated to the given PDE in order to arrive at its general solution. In
the present version, this is usually possible when the characteristic strip
does not require the extension of the configuration space by introducing the
partial derivatives of the indeterminate function as variables. For example,

\begin{mapleinput}
pdsolve(PDE,HINT=strip);
\end{mapleinput}
\begin{maplelatex}
\[
{\it Complete\:solution\:of\:the\:strip:}
\]
\end{maplelatex}
\begin{maplelatex}
\[
{\it
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
}
\]
\end{maplelatex}
\begin{maplelatex}
\[
{\:}
\]
\end{maplelatex}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{ \left( \! \,{\rm f}(\,{x}, {y}, {z}, {t}\,)={\rm e}^{
 \left( \! \, - 2\,\frac {{\rm arctanh} \left( \! \,\frac {{x}}{
\sqrt {2\,{y} + {x}^{2}}}\, \!  \right) }{\sqrt {2\,{y} + {x}^{2}
}}\, \!  \right) }\,{\rm \_f1} \left( \! \,{t}, {y} +
{\displaystyle \frac {1}{2}}\,{x}^{2} - {\displaystyle \frac {1}{
2}}\,{\it \_C1}^{2}, {z} + {t}\,{x} - {t}\,{\it \_C1}\, \!
 \right) \, \!  \right) \,{\rm \&Where}} \\
 & &  \left[ \! \, \left( \! \,{\rm }{\rm \_f1} \left( \! \,{t},
{y} + {\displaystyle \frac {1}{2}}\,{x}^{2} - {\displaystyle
\frac {1}{2}}\,{\it \_C1}^{2}, {z} + {t}\,{x} - {t}\,{\it \_C1}\,
 \!  \right) , {\it \:are\:arbitrary\:functions.}\, \!  \right)
\, \!  \right] \mbox{\hspace{29pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[ 0 \]
\end{maplelatex}

\noindent When {\bf pdsolve} is unable to determine the differential
invariants, the result is returned, after integrating the system of coupled
ODE's obtained by {\bf splitstrip}\footnote{For the case of systems of
coupled ODE's, a special routine was developed to manage the solving process
(when {\bf dsolve} fails), sending the equations to {\bf dsolve} one at a
time, trying to solve them sequentially. This often leads to the desired
result.}, depending on a parameter $\_s$.

3) Case of a PDE containing only mixed derivatives: in this case it is
possible to find a solution in terms of functions of a restricted set of
variables such as to annul each partial mixed derivative:

\begin{mapleinput}
PDE := diff(f(x,y,z,t),x,y)+diff(f(x,y,z,t),x,z,y)*g(x,y);
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} :=  \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{x}
\,{ \partial}{y}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!
 \right)  +  \left( \! \,{\frac {{ \partial}^{3}}{{ \partial}{x}
\,{ \partial}{z}\,{ \partial}{y}}}\,{\rm f}(\,{x}, {y}, {z}, {t}
\,)\, \!  \right) \,{\rm g}(\,{x}, {y}\,)
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(");
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm f}(\,{x}, {y}, {z}, {t}\,)={\rm \_f1}(\,{x}, {z}
, {t}\,) + {\rm \_f2}(\,{y}, {z}, {t}\,)\,)\,{\rm \&Where}} \\
 & & [\,(\,{\rm }{\rm \_f1}(\,{x}, {z}, {t}\,), {\rm \_f2}(\,{y}
, {z}, {t}\,), {\it \:are\:arbitrary\:functions.}\,)\,]
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

4) Second-order equations of the hyperbolic, elliptic and parabolic type
(with derivatives with respect to only two variables and with constant
coefficients for those derivatives) are first reduced by {\bf pdsolve} to
canonical form, through a change of variables, and then solved;  sometimes
{\bf pdsolve} is able to arrive at a general solution (as in this example),
other times at a complete one.

The following is an equation of hyperbolic type.

\begin{mapleinput}
PDE := 1/4*diff(f(x,y,z),x,y) +2*diff(f(x,y,z),y,y)-diff(f(x,y,z),x,x);
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} := {\displaystyle \frac {1}{4}}\, \left( \! \,{\frac {{
\partial}^{2}}{{ \partial}{x}\,{ \partial}{y}}}\,{\rm f}(\,{x}, {
y}, {z}\,)\, \!  \right)  + 2\, \left( \! \,{\frac {{ \partial}^{
2}}{{ \partial}{y}^{2}}}\,{\rm f}(\,{x}, {y}, {z}\,)\, \!
 \right)  -  \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{x}
^{2}}}\,{\rm f}(\,{x}, {y}, {z}\,)\, \!  \right)
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm f}(\,{x}, {y}, {z}\,)={\rm \_f1}(\,{z}, {\_ \xi
1}\,) + {\rm \_f2}(\,{z}, {\_ \xi 2}\,)\,)\,{\rm \&Where} \left[
{\vrule height0.79em width0em depth0.79em} \right. \! \! } \\
 & & (\,{\rm }{\rm \_f1}(\,{z}, {\_ \xi 1}\,), {\rm \_f2}(\,{z},
{\_ \xi 2}\,), {\it \:are\:arbitrary\:functions.}\,),  \\
 & & {\rm \&and} \left( \! \, \left\{ \! \,{\_ \xi 1}={y} - {x}\,
 \left( \! \, - \,{\displaystyle \frac {1}{8}} - {\displaystyle
\frac {1}{8}}\,\sqrt {129}\, \!  \right) , {\_ \xi 2}={y} - {x}\,
 \left( \! \, - \,{\displaystyle \frac {1}{8}} + {\displaystyle
\frac {1}{8}}\,\sqrt {129}\, \!  \right) \, \!  \right\} \, \!
 \right)  \! \! \left. {\vrule height0.79em width0em depth0.79em}
 \right]
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
build(");
\end{mapleinput}
\begin{maplelatex}
\[
{\rm f}(\,{x}, {y}, {z}\,)={\rm \_f1} \left( \! \,{z}, {y} - {x}
\, \left( \! \, - \,{\displaystyle \frac {1}{8}} -
{\displaystyle \frac {1}{8}}\,\sqrt {129}\, \!  \right) \, \!
 \right)  + {\rm \_f2} \left( \! \,{z}, {y} - {x}\, \left( \! \,
 - \,{\displaystyle \frac {1}{8}} + {\displaystyle \frac {1}{8}}
\,\sqrt {129}\, \!  \right) \, \!  \right)
\]
\end{maplelatex}

5) Linear equations that are not solvable by any of the more specific
methods used by {\bf pdsolve} are usually tackled taking separation of
variables by product as starting point.

\begin{mapleinput}
PDE := -diff(diff(u(x,y,z),x),x)*x^n/y^2/G(y^(1/2)) = diff(diff(u(x,y,z),y
\end{mapleinput}
\begin{mapleinput}
),y)*(H(x^n)*n^2/x^2*ln(y)-x^n*n/x^2*ln(y));
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} :=  - \,{\displaystyle \frac { \left( \! \,{\frac {{
\partial}^{2}}{{ \partial}{x}^{2}}}\,{\rm u}(\,{x}, {y}, {z}\,)\,
 \!  \right) \,{x}^{{n}}}{{y}^{2}\,{\rm G} \left( \! \,\sqrt {{y}
}\, \!  \right) }}= \left( \! \,{\frac {{ \partial}^{2}}{{
\partial}{y}^{2}}}\,{\rm u}(\,{x}, {y}, {z}\,)\, \!  \right) \,
 \left( \! \,{\displaystyle \frac {{\rm H}(\,{x}^{{n}}\,)\,{n}^{2
}\,{\rm ln}(\,{y}\,)}{{x}^{2}}} - {\displaystyle \frac {{x}^{{n}}
\,{n}\,{\rm ln}(\,{y}\,)}{{x}^{2}}}\, \!  \right)
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm u}(\,{x}, {y}, {z}\,)={\rm \_u1}(\,{x}\,)\,{\rm
\_u2}(\,{y}\,)\,{\rm \_u0}(\,{z}\,)\,)\,{\rm \&Where} \left[
{\vrule height0.94em width0em depth0.94em} \right. \! \!
 \left\{ {\vrule height0.94em width0em depth0.94em} \right. \!
\!  - {\rm \_u0}(\,{z}\,)\,{{\it \_c}_{1}}=0, } \\
 & & {\frac {{ \partial}^{2}}{{ \partial}{y}^{2}}}\,{\rm \_u2}(\,
{y}\,)={\displaystyle \frac {{{\it \_c}_{2}}\,{\rm \_u2}(\,{y}\,)
}{{\rm ln}(\,{y}\,)\,{y}^{2}\,{\rm G} \left( \! \,\sqrt {{y}}\,
 \!  \right) }},  \\
 & & {\frac {{ \partial}^{2}}{{ \partial}{x}^{2}}}\,{\rm \_u1}(\,
{x}\,)={x}^{(\, - {n}\,)}\,{{\it \_c}_{1}} - {\displaystyle
\frac {{\rm \_u1}(\,{x}\,)\,{n}\,(\,{x}^{(\, - {n}\,)}\,{\rm H}(
\,{x}^{{n}}\,)\,{n} - 1\,)\,{{\it \_c}_{2}}}{{x}^{2}}} \!
\! \left. {\vrule height0.94em width0em depth0.94em} \right\}
 \! \! \left. {\vrule height0.94em width0em depth0.94em} \right]
\mbox{\hspace{0pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

6) The equation below is a non-linear PDE. Since there is more than one
function being differentiated, the indeterminate function must be specified
in the arguments of {\bf pdsolve}. This example illustrates the internal
{\it heuristic} algorithm, used when the PDE does not belong to any of the
families recognized (up to now) by {\bf pdsolve}. The result is a mixture of
various solving methods:

\begin{mapleinput}
PDE := exp(diff(f(x,y,z),x$5,z))+diff(f(x,y,z),y$4)+diff(h(y,z),y);
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} := {\rm e}^{ \left( \! \,{\frac {{ \partial}^{6}}{{
\partial}{x}^{5}\,{ \partial}{z}}}\,{\rm f}(\,{x}, {y}, {z}\,)\,
 \!  \right) } +  \left( \! \,{\frac {{ \partial}^{4}}{{ \partial
}{y}^{4}}}\,{\rm f}(\,{x}, {y}, {z}\,)\, \!  \right)  +  \left(
\! \,{\frac {{ \partial}}{{ \partial}{y}}}\,{\rm h}(\,{y}, {z}\,)
\, \!  \right)
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE,f);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{ \left( {\vrule height1.15em width0em depth1.15em}
 \right. \! \! {\rm f}(\,{x}, {y}, {z}\,)={\rm \_f1}(\,{x}\,) +
{\rm \_f1}(\,{x}\,)\,{\rm \_f3}(\,{z}\,) + {\rm \_\_f44}(\,{z}\,)
 - {\displaystyle \int} {\displaystyle \int} {\displaystyle \int
} {\displaystyle \int} {\frac {{ \partial}}{{ \partial}{y}}}\,
{\rm h}(\,{y}, {z}\,)\,{d}{y}\,{d}{y}\,{d}{y}\,{d}{y}} \\
 & & \mbox{} + {\rm \_\_f42}(\,{z}\,)\,{\displaystyle \int} {y}\,
{d}{y} + {\rm \_\_f41}(\,{z}\,)\,{\displaystyle \int}
{\displaystyle \int} {y}\,{d}{y}\,{d}{y} - {\rm e}^{ \left( \! \,
{{\it \_c}_{1}}\, \left( \! \,{\frac {{ \partial}}{{ \partial}{z}
}}\,{\rm \_f3}(\,{z}\,)\, \!  \right) \, \!  \right) }\,
{\displaystyle \int} {\displaystyle \int} {\displaystyle \int} {y
}\,{d}{y}\,{d}{y}\,{d}{y} + {\it \_C4} \\
 & & \mbox{} + {\it \_C1}\,{\displaystyle \int} {\displaystyle
 \int} {y}\,{d}{y}\,{d}{y} + {\it \_C2}\,{\displaystyle \int} {y}
\,{d}{y} + (\,{\it \_C3} + {\rm \_\_f43}(\,{z}\,)\,)\,{y} \!
\! \left. {\vrule height1.15em width0em depth1.15em} \right)
{\rm \&Where} \left[ {\vrule height0.79em width0em depth0.79em}
 \right. \! \!  \\
 & &  \left\{ \! \,{\frac {{ \partial}^{5}}{{ \partial}{x}^{5}}}
\,{\rm \_f1}(\,{x}\,)={{\it \_c}_{1}}\, \!  \right\} ,  \\
 & & (\,{\rm }{\rm \_\_f41}(\,{z}\,), {\rm \_\_f42}(\,{z}\,),
{\rm \_\_f43}(\,{z}\,), {\rm \_\_f44}(\,{z}\,), {\rm \_f3}(\,{z}
\,), {\it \:are\:arbitrary\:functions.}\,) \! \! \left. {\vrule
height0.79em width0em depth0.79em} \right]
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
build(");
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{{\rm f}(\,{x}, {y}, {z}\,)={\displaystyle \frac {1}{120
}}\,{{\it \_c}_{1}}\,{x}^{5} + {\it \_C1} + {\it \_C2}\,{x} +
{\it \_C3}\,{x}^{2} + {\it \_C4}\,{x}^{3} + {\it \_C5}\,{x}^{4}
 + {\displaystyle \frac {1}{120}}\,{\rm \_f3}(\,{z}\,)\,{{\it \_c
}_{1}}\,{x}^{5}} \\
 & & \mbox{} + {\rm \_f3}(\,{z}\,)\,{\it \_C1} + {\rm \_f3}(\,{z}
\,)\,{\it \_C2}\,{x} + {\rm \_f3}(\,{z}\,)\,{\it \_C3}\,{x}^{2}
 + {\rm \_f3}(\,{z}\,)\,{\it \_C4}\,{x}^{3} \\
 & & \mbox{} + {\rm \_f3}(\,{z}\,)\,{\it \_C5}\,{x}^{4} + {\rm
\_\_f44}(\,{z}\,) - {\displaystyle \int} {\displaystyle \int}
{\displaystyle \int} {\rm h}(\,{y}, {z}\,)\,{d}{y}\,{d}{y}\,{d}{y
} + {\displaystyle \frac {1}{2}}\,{\rm \_\_f42}(\,{z}\,)\,{y}^{2}
 \\
 & & \mbox{} + {\displaystyle \frac {1}{6}}\,{\rm \_\_f41}(\,{z}
\,)\,{y}^{3} - {\displaystyle \frac {1}{24}}\,{\rm e}^{ \left(
\! \,{{\it \_c}_{1}}\, \left( \! \,{\frac {{ \partial}}{{
\partial}{z}}}\,{\rm \_f3}(\,{z}\,)\, \!  \right) \, \!  \right)
}\,{y}^{4} + {\it \_C4} + {\displaystyle \frac {1}{6}}\,{\it \_C1
}\,{y}^{3} + {\displaystyle \frac {1}{2}}\,{\it \_C2}\,{y}^{2} +
{\it \_C3}\,{y} \\
 & & \mbox{} + {\rm \_\_f43}(\,{z}\,)\,{y}\mbox{\hspace{307pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,"");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

7) Some PDE's can be solved through {\bf pdsolve} both directly and with a
\verb-HINT-.  In the following example, different solutions are reached in
each case, and the User has the possibility to select the one that is most
suitable to his (her) purposes.

\begin{mapleinput}
PDE := a*diff(f(x,y,z,t),x)+b*diff(f(x,y,z,t),y)+c*diff(f(x,y,z,t),z)+
\end{mapleinput}
\begin{mapleinput}
d*diff(f(x,y,z,t),t) = f(x,y,z,t);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{{\it PDE} := {a}\, \left( \! \,{\frac {{ \partial}}{{
\partial}{x}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!  \right)  +
{b}\, \left( \! \,{\frac {{ \partial}}{{ \partial}{y}}}\,{\rm f}(
\,{x}, {y}, {z}, {t}\,)\, \!  \right)  + {c}\, \left( \! \,
{\frac {{ \partial}}{{ \partial}{z}}}\,{\rm f}(\,{x}, {y}, {z}, {
t}\,)\, \!  \right)  + {d}\, \left( \! \,{\frac {{ \partial}}{{
\partial}{t}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!  \right) }
 \\
 & & ={\rm f}(\,{x}, {y}, {z}, {t}\,)\mbox{\hspace{310pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{ \left( {\vrule height0.95em width0em depth0.95em}
 \right. \! \! \,{\rm f}(\,{x}, {y}, {z}, {t}\,)={\rm e}^{
 \left( \! \,\frac {{t} - {\it \_C1}}{{d}}\, \!  \right) }\,{\rm
\_f1} \left( \! \,{\displaystyle \frac {{x}\,{d} - {a}\,{t} + {a}
\,{\it \_C1}}{{d}}},  - \,{\displaystyle \frac { - {y}\,{d} + {b}
\,{t} - {b}\,{\it \_C1}}{{d}}},  - \,{\displaystyle \frac { - {z}
\,{d} + {c}\,{t} - {c}\,{\it \_C1}}{{d}}}\, \!  \right) } \\
 & &  \! \! \left. {\vrule height0.95em width0em depth0.95em}
 \right) {\rm \&Where} \left[ {\vrule
height0.80em width0em depth0.80em} \right. \! \!  \left( {\vrule
height0.80em width0em depth0.80em} \right. \! \! \,{\rm }{\rm
\_f1} \left( \! \,{\displaystyle \frac {{x}\,{d} - {a}\,{t} + {a}
\,{\it \_C1}}{{d}}},  - \,{\displaystyle \frac { - {y}\,{d} + {b}
\,{t} - {b}\,{\it \_C1}}{{d}}},  - \,{\displaystyle \frac { - {z}
\,{d} + {c}\,{t} - {c}\,{\it \_C1}}{{d}}}\, \!  \right) ,  \\
 & & {\it \:are\:arbitrary\:functions.} \! \! \left. {\vrule
height0.80em width0em depth0.80em} \right)  \! \! \left. {\vrule
height0.80em width0em depth0.80em} \right] \mbox{\hspace{251pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE,HINT=`*`);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{(\,{\rm f}(\,{x}, {y}, {z}, {t}\,)={\rm \_f1}(\,{x}\,)\,
{\rm \_f2}(\,{y}\,)\,{\rm \_f3}(\,{z}\,)\,{\rm \_f4}(\,{t}\,)\,)
\,{\rm \&Where} \left[ {\vrule height0.90em width0em depth0.90em}
 \right. \! \!  \left\{ {\vrule height0.90em width0em depth0.90em
} \right. \! \! {\frac {{ \partial}}{{ \partial}{x}}}\,{\rm \_f1}
(\,{x}\,)={{\it \_c}_{1}}\,{\rm \_f1}(\,{x}\,), } \\
 & & {\frac {{ \partial}}{{ \partial}{t}}}\,{\rm \_f4}(\,{t}\,)=
 - \,{\displaystyle \frac {{a}\,{\rm \_f4}(\,{t}\,)\,{{\it \_c}_{
1}}}{{d}}} - {\displaystyle \frac {{b}\,{\rm \_f4}(\,{t}\,)\,{
{\it \_c}_{2}}}{{d}}} - {\displaystyle \frac {{c}\,{\rm \_f4}(\,{
t}\,)\,{{\it \_c}_{3}}}{{d}}} + {\displaystyle \frac {{\rm \_f4}(
\,{t}\,)}{{d}}},  \\
 & & {\frac {{ \partial}}{{ \partial}{y}}}\,{\rm \_f2}(\,{y}\,)={
{\it \_c}_{2}}\,{\rm \_f2}(\,{y}\,), {\frac {{ \partial}}{{
\partial}{z}}}\,{\rm \_f3}(\,{z}\,)={{\it \_c}_{3}}\,{\rm \_f3}(
\,{z}\,) \! \! \left. {\vrule height0.90em width0em depth0.90em}
 \right\}  \! \! \left. {\vrule height0.90em width0em depth0.90em
} \right] \mbox{\hspace{114pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}
This example can also be solved via \verb-pdsolve(PDE,HINT=`+`);-.

8) One of the most useful features of the {\bf pdsolve} command is the {\it
functional hint} option.  In other words, when solving a PDE, it is possible
to give a \verb-HINT- to {\bf pdsolve} as to the FORM that the indeterminate
function should have in the result:

\begin{mapleinput}
PDE := diff(f(x,y,z,t),t,z)-diff(f(x,y,z,t),t)=diff(f(x,y,z,t),y,x)+t;
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} :=  \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{z}
\,{ \partial}{t}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!
 \right)  -  \left( \! \,{\frac {{ \partial}}{{ \partial}{t}}}\,
{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!  \right) = \left( \! \,
{\frac {{ \partial}^{2}}{{ \partial}{x}\,{ \partial}{y}}}\,{\rm f
}(\,{x}, {y}, {z}, {t}\,)\, \!  \right)  + {t}
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE,HINT=g(x,z)+h(t,y));
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{ \left( \! \,{\rm f}(\,{x}, {y}, {z}, {t}\,)={\rm g}(\,{
x}, {z}\,) + {\rm \_h1}(\,{y}\,) - {\displaystyle \frac {1}{2}}\,
{t}^{2} + {\it \_C1}\, \!  \right) \,{\rm \&Where}} \\
 & & [\,(\,{\rm }{\rm \_h1}(\,{y}\,), {\rm g}(\,{x}, {z}\,),
{\it \:are\:arbitrary\:functions.}\,)\,]\mbox{\hspace{6pt}}
\end{eqnarray*}
\end{maplelatex}

\noindent Another example (takes around one minute):

\begin{mapleinput}
PDE := 1/4*diff(f(x,y,z,t),x,y) +2*diff(f(x,y,z,t),y,y)+diff(f(x,y,z,t),x,
\end{mapleinput}
\begin{mapleinput}
x)+(diff(f(x,y,z,t),z,t)-diff(f(x,y,z,t),t,t)+diff(f(x,y,z,t),z,z));
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{{\it PDE} := {\displaystyle \frac {1}{4}}\, \left( \! \,
{\frac {{ \partial}^{2}}{{ \partial}{x}\,{ \partial}{y}}}\,{\rm f
}(\,{x}, {y}, {z}, {t}\,)\, \!  \right)  + 2\, \left( \! \,
{\frac {{ \partial}^{2}}{{ \partial}{y}^{2}}}\,{\rm f}(\,{x}, {y}
, {z}, {t}\,)\, \!  \right)  +  \left( \! \,{\frac {{ \partial}^{
2}}{{ \partial}{x}^{2}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!
 \right) } \\
 & & \mbox{} +  \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{
z}\,{ \partial}{t}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!
 \right)  -  \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{t}
^{2}}}\,{\rm f}(\,{x}, {y}, {z}, {t}\,)\, \!  \right)  +  \left(
\! \,{\frac {{ \partial}^{2}}{{ \partial}{z}^{2}}}\,{\rm f}(\,{x}
, {y}, {z}, {t}\,)\, \!  \right) \mbox{\hspace{4pt}}
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE,HINT=g(x,y)+h(z,t));
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{ \left( {\vrule height0.79em width0em depth0.79em}
 \right. \! \! {\rm f}(\,{x}, {y}, {z}, {t}\,)={\rm \_g1}(\,{\_
\xi 1}\,) + {\rm \_g2}(\,{\_ \xi 2}\,) + {\rm \_h2}(\,{\_ \xi 3}
\,) + {\rm \_h1}(\,{\_ \xi 4}\,) + {\it \_C2} + {\it \_C1}\,{\_
\xi 4}} \\
 & & \mbox{} +  \left( \! \,{\displaystyle \frac {127}{320}}\,{
{\it \_c}_{3}} + {\displaystyle \frac {127}{320}}\,{{\it \_c}_{4}
}\, \!  \right) \,{\_ \xi 4}\,{\_ \xi 3} \! \! \left. {\vrule
height0.79em width0em depth0.79em} \right) {\rm \&Where} \left[
{\vrule height0.85em width0em depth0.85em} \right. \! \!  \\
 & &  \left\{ \! \,{\frac {{ \partial}^{2}}{{ \partial}{\_ \xi 1}
^{2}}}\,{\rm \_g1}(\,{\_ \xi 1}\,)={{\it \_c}_{3}}, {\frac {{
\partial}^{2}}{{ \partial}{\_ \xi 2}^{2}}}\,{\rm \_g2}(\,{\_ \xi
2}\,)={{\it \_c}_{4}}\, \!  \right\} ,  \\
 & & (\,{\rm }{\rm \_h1}(\,{\_ \xi 4}\,), {\rm \_h2}(\,{\_ \xi 3}
\,), {\it \:are\:arbitrary\:functions.}\,), {\rm \&and} \left(
{\vrule height0.79em width0em depth0.79em} \right. \! \!
 \left\{ {\vrule height0.79em width0em depth0.79em} \right. \!
\!  \\
 & & \left.
 {\_ \xi 4}={t} - {z}\, \left( \! \,{\displaystyle \frac {1}{
2}} - {\displaystyle \frac {1}{2}}\,\sqrt {5}\, \!  \right) , {\_
 \xi 3}={t} - {z}\, \left( \! \,{\displaystyle \frac {1}{2}} +
{\displaystyle \frac {1}{2}}\,\sqrt {5}\, \!  \right) , {\_ \xi 2
}= - \,{\displaystyle \frac {1}{8}}\,\sqrt {127}\,{x}, {\_ \xi 1}
={y} - {\displaystyle \frac {1}{8}}\,{x}\, \! \! \left. {\vrule
height0.79em width0em depth0.79em} \right\}  \! \! \left.
{\vrule height0.79em width0em depth0.79em} \right)  \right]
\end{eqnarray*}
\end{maplelatex}

\begin{mapleinput}
pdtest(PDE,");
\end{mapleinput}
\begin{maplelatex}
\[
0
\]
\end{maplelatex}

\begin{mapleinput}
collect(build(""),[x,y,z,t],factor);
\end{mapleinput}
\begin{maplelatex}
\begin{eqnarray*}
\lefteqn{{\rm f}(\,{x}, {y}, {z}, {t}\,)= \left( \! \,
{\displaystyle \frac {1}{128}}\,{{\it \_c}_{3}} + {\displaystyle
\frac {127}{128}}\,{{\it \_c}_{4}}\, \!  \right) \,{x}^{2} +
 \left( \! \, - \,{\displaystyle \frac {1}{8}}\,{{\it \_c}_{3}}\,
{y} - {\displaystyle \frac {1}{8}}\,{\it \_C2} - {\displaystyle
\frac {1}{8}}\,{\it \_C4}\,\sqrt {127}\, \!  \right) \,{x} +
{\displaystyle \frac {1}{2}}\,{{\it \_c}_{3}}\,{y}^{2}} \\
 & & \mbox{} + {\it \_C2}\,{y} +  \left( \! \, - \,
{\displaystyle \frac {127}{320}}\,{{\it \_c}_{4}} -
{\displaystyle \frac {127}{320}}\,{{\it \_c}_{3}}\, \!  \right)
\,{z}^{2} \\
 & & \mbox{} +  \left( \! \, \left( \! \, - \,{\displaystyle
\frac {127}{320}}\,{{\it \_c}_{4}} - {\displaystyle \frac {127}{
320}}\,{{\it \_c}_{3}}\, \!  \right) \,{t} + {\displaystyle
\frac {1}{2}}\,{\it \_C1}\, \left( \! \,\sqrt {5} - 1\, \!
 \right) \, \!  \right) \,{z} +  \left( \! \,{\displaystyle
\frac {127}{320}}\,{{\it \_c}_{3}} + {\displaystyle \frac {127}{
320}}\,{{\it \_c}_{4}}\, \!  \right) \,{t}^{2} \\
 & & \mbox{} + {\it \_C1}\,{t} + {\rm \_h2} \left( \! \,{t} -
{\displaystyle \frac {1}{2}}\,{z} - {\displaystyle \frac {1}{2}}
\,{z}\,\sqrt {5}\, \!  \right)  + {\rm \_h1} \left( \! \,{t} -
{\displaystyle \frac {1}{2}}\,{z} + {\displaystyle \frac {1}{2}}
\,{z}\,\sqrt {5}\, \!  \right)  + {\it \_C3} + {\it \_C1} + {\it
\_C2}\mbox{\hspace{5pt}}
\end{eqnarray*}
\end{maplelatex}

9) When an equation is not solved directly by {\bf pdsolve}, one possibility
is to make a suitable change of variables and then try again.

\begin{mapleinput}
PDE := S(x,y)*diff(S(x,y),x$2) + diff(S(x,y),x)^2-S(x,y)*diff(S(x,y),y$2)
\end{mapleinput}
\begin{mapleinput}
- diff(S(x,y),y)^2=1;
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE} := {\rm S}(\,{x}, {y}\,)\, \left( \! \,{\frac {{
\partial}^{2}}{{ \partial}{x}^{2}}}\,{\rm S}(\,{x}, {y}\,)\, \!
 \right)  +  \left( \! \,{\frac {{ \partial}}{{ \partial}{x}}}\,
{\rm S}(\,{x}, {y}\,)\, \!  \right) ^{2} - {\rm S}(\,{x}, {y}\,)
\, \left( \! \,{\frac {{ \partial}^{2}}{{ \partial}{y}^{2}}}\,
{\rm S}(\,{x}, {y}\,)\, \!  \right)  -  \left( \! \,{\frac {{
\partial}}{{ \partial}{y}}}\,{\rm S}(\,{x}, {y}\,)\, \!  \right)
^{2}=1
\]
\end{maplelatex}

\begin{mapleinput}
pdsolve(PDE):
\end{mapleinput}
\begin{maplelatex}
\[
{\it Warning:\:\:No\:solutions\:found}
\]
\end{maplelatex}

\noindent To undertake the change of variables, we will use the {\bf
dchange} command.

\begin{mapleinput}
tr := {x=xi+eta,y=xi-eta};
\end{mapleinput}
\begin{maplelatex}
\[
{\it tr} := \{\,{y}={ \xi} - { \eta}, {x}={ \xi} + { \eta}\,\}
\]
\end{maplelatex}

\begin{mapleinput}
PDE1 := dchange(tr,PDE,expand);
\end{mapleinput}
\begin{maplelatex}
\[
{\it PDE1} := {\rm S}(\,{ \eta}, { \xi}\,)\, \left( \! \,{\frac {{
 \partial}^{2}}{{ \partial}{ \eta}\,{ \partial}{ \xi}}}\,{\rm S}(
\,{ \eta}, { \xi}\,)\, \!  \right)  +  \left( \! \,{\frac {{
\partial}}{{ \partial}{ \eta}}}\,{\rm S}(\,{ \eta}, { \xi}\,)\,
 \!  \right) \, \left( \! \,{\frac {{ \partial}}{{ \partial}{ \xi
}}}\,{\rm S}(\,{ \eta}, { \xi}\,)\, \!  \right) =1
\]
\end{maplelatex}

\noindent The above equation is still not solved directly by {\bf pdsolve};
however, if the User gives a \verb-HINT-, {\bf pdsolve} succeeds in finding
a solution.

\begin{mapleinput}
pdsolve(PDE1,HINT=`+`);
\end{mapleinput}
\begin{maplelatex}
\[
(\,{\rm S}(\,{ \eta}, { \xi}\,)={\rm \_S1}(\,{ \eta}\,) + {\rm
\_S2}(\,{ \xi}\,)\,)\,{\rm \&Where}\, \left[ \! \, \left\{ \! \,
{\frac {{ \partial}}{{ \partial}{ \eta}}}\,{\rm \_S1}(\,{ \eta}\,
)={{\it \_c}_{1}}, {\frac {{ \partial}}{{ \partial}{ \xi}}}\,
{\rm \_S2}(\,{ \xi}\,)={\displaystyle \frac {1}{{{\it \_c}_{1}}}}
\, \!  \right\} \, \!  \right]
\]
\end{maplelatex}

\begin{mapleinput}
build(");
\end{mapleinput}
\begin{maplelatex}
\[
{\rm S}(\,{ \eta}, { \xi}\,)={{\it \_c}_{1}}\,{ \eta} + {\it \_C1
} + {\displaystyle \frac {{ \xi}}{{{\it \_c}_{1}}}} + {\it \_C2}
\]
\end{maplelatex}

\begin{mapleinput}
build(pdsolve(PDE1,HINT=`*`));
\end{mapleinput}
\begin{maplelatex}
\[
{\rm S}(\,{ \eta}, { \xi}\,)=\sqrt {2\,{{\it \_c}_{1}}\,{ \eta}
 + {\it \_C1}}\,\sqrt {{\displaystyle \frac {{ \xi}}{{{\it \_c}_{
1}}}} + {\it \_C2}}
\]
\end{maplelatex}

\begin{mapleinput}
HINT=P(xi,eta)^(1/2);
\end{mapleinput}
\begin{maplelatex}
\[
{\it HINT}=\sqrt {{\rm P}(\,{ \xi}, { \eta}\,)}
\]
\end{maplelatex}

\begin{mapleinput}
build(pdsolve(PDE1,"));
\end{mapleinput}
\begin{maplelatex}
\[
{\rm S}(\,{ \eta}, { \xi}\,)=\sqrt {{\rm \_P2}(\,{ \xi}\,) +
{\rm \_P1}(\,{ \eta}\,) + 2\,{ \xi}\,{ \eta} + {\it \_C1}\,{ \eta
} + {\it \_C2}}
\]
\end{maplelatex}

\noindent More examples and information can be seen in the ON-LINE Help (see
?PDEtools).

\section*{Conclusions}

As far as we know, standard methods for the analytical solving of PDE's have
not yet been implemented in general purpose symbolic algebra systems.

In this context, a package such as {\bf PDEtools} appears as a concrete
extension of the use of symbolic algebra systems, providing a new tool for
solving and working with PDE's.

Now, there is still no general method able to solve {\it all} possible
PDE's.  Accordingly, the aim of the PDEtools package has been to solve as
many PDE's as possible, but also to allow the User to study a given equation
under different angles and participate in that process (using the
\verb-HINT- option and the {\bf dchange} command).

This first version of the PDEtools package does not make use of the theory
of Lie of invariance of PDE's with respect to Lie groups of
transformations\cite{olver}.  This method, as well as other standard methods
(specially for solving systems of PDE's) are expected to be included in
future versions, creating a link between the PDEtools and liesymm packages.
Other limitations of the present version of the package are pointed out in
the {\bf pdsolve} and {\bf dchange} ON-LINE helps.

These subjects are now under study and will be reported elsewhere.

\begin{thebibliography}{10}

\bibitem{partials} E. S. Cheb-Terrab, {\it Maple Procedures for Partial and
Functional Derivatives}, Computer Physics Communications, 79 (1994) 409-424.

\bibitem{Courant} R. Courant \& D. Hilbert, {\it Methods of Mathematical
Physics}, New York Intersciennce, 1961.

\bibitem{Smirnov} V. I. Smirnov, {\it A Course of Higher Mathematics IV:
Integral Equations and Partial Differential Equations}, Pergamon Press, 1964.

\bibitem{pde} P. R. Garabedian, {\it Partial Differential Equations}, John
Wiley \&  Sons, New York, 1964.

\bibitem{olver} P. J. Olver, {\it Applications of Lie Groups to Differential
Equations}, Springer Verlag, New York, 1986.

\end{thebibliography}

\end{document}
%% End of Maple V Session Output
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#
# File with the input of the article
# "A Maple 5.3 Package for the Analytical Solving of Partial
#  Differential Equations".
#

read `pdetools.txt`:
PDE := diff(f(x,y,z),y)^2*exp(2*y)+diff(f(x,y,z),x)/cos(x)/z
=diff(f(x,y,z),z);
pdsolve(");
pdsolve(PDE,INTEGRATE);
build(");
PDE :=x^2*diff(f(x,y),x$2)-2*x*y*diff(f(x,y),x,y)+y^2*diff(f
(x,y),y$2)+x*diff(f(x,y),x)=0;
pdsolve(PDE,HINT=x*g(y)+y*h(x));
pdtest(PDE,");
PDE := diff(f(x,y),x,x) + diff(f(x,y),y,x) + diff(f(x,y),y,y
)=0;
sol := pdsolve(PDE);
pdtest(PDE,sol);
select(has,op(2,sol),`&and`):
itr := indets(",`=`);
tr := solve(",{x,y});
dchange(tr,PDE,simplify);
dchange(tr,f(x,y),known=f);
PDE := -diff(S(xi,eta,t,phi),t) = 2/m/(xi+eta)*(xi*diff(S(xi
,eta,t,phi),xi)^2+eta*diff(S(xi,eta,t,phi),eta)^2)+1/2/m/xi/
eta*diff(S(xi,eta,t,phi),phi)^2+(2*alpha-1/2*F*xi^2+1/2*F*eta^2)
/(xi+eta)+f(phi)/xi/eta;
pdsolve(PDE);
pdtest(PDE,");
PDE := x*diff(f(x,y,z,t),y)-diff(f(x,y,z,t),x)+t*diff(f(x,y,
z,t),z)=f(x,y,z,t)/y;
splitstrip(PDE,f(x,y,z,t));
pdsolve(PDE,HINT=strip);
pdtest(PDE,");
PDE := diff(f(x,y,z,t),x,y)+diff(f(x,y,z,t),x,z,y)*g(x,y);
pdsolve(");
pdtest(PDE,");
PDE := 1/4*diff(f(x,y,z),x,y) +2*diff(f(x,y,z),y,y)-diff(f(x
,y,z),x,x);
pdsolve(PDE);
build(");
PDE := -diff(diff(u(x,y,z),x),x)*x^n/y^2/G(y^(1/2)) = diff(
diff(u(x,y,z),y),y)*(H(x^n)*n^2/x^2*ln(y)-x^n*n/x^2*ln(y));
pdsolve(PDE);
pdtest(PDE,");
PDE := exp(diff(f(x,y,z),x$5,z))+diff(f(x,y,z),y$4)+diff(h(y
,z),y);
pdsolve(PDE,f);
build(");
pdtest(PDE,"");
PDE := a*diff(f(x,y,z,t),x)+b*diff(f(x,y,z,t),y)+c*diff(f(x,
y,z,t),z)+d*diff(f(x,y,z,t),t) = f(x,y,z,t);
pdsolve(PDE);
pdtest(PDE,");
pdsolve(PDE,HINT=`*`);
pdtest(PDE,");
PDE := diff(f(x,y,z,t),t,z)-diff(f(x,y,z,t),t)=diff(f(x,y,z,
t),y,x)+t;
pdsolve(PDE,HINT=g(x,z)+h(t,y));
PDE := 1/4*diff(f(x,y,z,t),x,y) +2*diff(f(x,y,z,t),y,y)+diff
(f(x,y,z,t),x,x)+(diff(f(x,y,z,t),z,t)-diff(f(x,y,z,t),t,t)+
diff(f(x,y,z,t),z,z));
pdsolve(PDE,HINT=g(x,y)+h(z,t));
pdtest(PDE,");
collect(build(""),[x,y,z,t],factor);
PDE := S(x,y)*diff(S(x,y),x$2) + diff(S(x,y),x)^2-S(x,y)*diff(
S(x,y),y$2)- diff(S(x,y),y)^2=1;
pdsolve(PDE):
tr := {x=xi+eta,y=xi-eta};
PDE1 := dchange(tr,PDE,expand);
pdsolve(PDE1,HINT=`+`);
build(");
build(pdsolve(PDE1,HINT=`*`));
HINT=P(xi,eta)^(1/2);
build(pdsolve(PDE1,"));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A Brief Biographical Note on the Authors

    Katherina von Bulow is a Mathematics student, currently beginning the 
Masters program at the Institute of Pure and Applied Mathematics of Rio de 
Janeiro.  She has been working with the Computational Physics Group of the 
Physics Institute at the State University of Rio de Janeiro, in Brazil, 
since 1992. Her main research interests are related to Partial Differential 
Equations.

    Edgardo S. Cheb-Terrab is a Doctor in Physics, and has been working with 
Computer Algebra - more specifically, with MapleV - since 1992.  He founded 
(and is currently coordinating) the above-mentioned Computational Physics 
Group. His main research interests are Quantum Field Theory (QFT) and the 
Maple implementation of related mathematical methods. He is also directing 
eight students, at under-graduate and graduate level; the projects range 
from solving open problems of QFT using these new implementations, to a 
Doctorate thesis consisting of the creation of a graduate course in physics 
using computers.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


