PDEtools - Maple Programming Help

Home : Support : Online Help : Graphics : Packages : DEtools : PDEtools/PDEplot

PDEtools

 PDEplot
 plot the solution to a first order linear or nonlinear partial differential equation

 Calling Sequence PDEplot(PDE, inits, srange, options)

Parameters

 PDE - first order PDE containing one indeterminate function of n unknowns inits - list of $n+1$ expressions or equations specifying the parametric form of an $\left(n-1\right)$-dimensional manifold in $n+1$ dimensions; initial data srange - the range or ranges of the parameters for the initial data options - (optional) equations, described in PDEplot_options

Description

 • The PDEplot command produces the plot of the solution for a first order, linear or nonlinear partial differential equation (PDE), for given initial conditions.
 • Given initial data consisting of equations of a manifold in $\left(n+1\right)$-space depending on $n-1$ parameters (for $n=2$, this is a curve) through which the required integral hypersurface must pass, the method of characteristics is used to generate the solution, resulting in a system of coupled first order ODEs to which numerical methods can be applied. The default is to use an internal Runge-Kutta fourth order (fixed step size) method. Other dsolve/numeric methods can be chosen by way of the method optional equation. Note, however, that use of these external methods tends to slow considerably the creation of plots.
 • The first argument, PDE, can be any first order partial differential equation. PDEs involving piecewise functions are handled using hardware arithmetic (evalhf) as of Maple V Release 4. All arguments after the first can be given in any order.
 • The inits parameter is a list of $n+1$ elements specifying the parametric form of a curve in $\left(n+1\right)$-space through which the required integral surface must pass. The elements should depend on $n-1$ parameters. Using s and t as the parameters with $n=3$, for example, the elements of the list must be expressions such as $\left[\mathrm{f1}\left(s,t\right),\mathrm{f2}\left(s,t\right),\mathrm{f3}\left(s,t\right),\mathrm{f4}\left(s,t\right)\right]$, or equations of the form $\left[\mathrm{x2}=\mathrm{f1}\left(s,t\right),u=\mathrm{f2}\left(s,t\right),\mathrm{x1}=\mathrm{f3}\left(s,t\right),\mathrm{x3}=\mathrm{f4}\left(s,t\right)\right]$, where the $f\left(s,t\right)$ are explicit expressions of s and t that can be evaluated numerically. The two possible inputs are equivalent but if equations are given the order of the elements is irrelevant.
 • The srange parameter is a list of ranges for the parameters used in the initial data. It should be given as $[\mathrm{s1}=\mathrm{a1}\mathrm{..}\mathrm{b1},\mathrm{s2}=\mathrm{a2}\mathrm{..}\mathrm{b2},...]$.
 • If $n=2$, by default the solution surface is displayed as an opaque, colored membrane, with the initial conditions highlighted in black. For $2, by default a sequence of surfaces is shown in animation which together map out the required solution hypersurface. For more information, see plots[animate].
 • Remaining arguments are interpreted as options which are specified as equations of the form option = value. In particular, the style option allows one to plot the points as points only, or to interpolate them using line mode. See plot3d,option for more information.
 • This function is part of the PDEtools package, and so it can be used in the form PDEplot(..) only after executing the command with(PDEtools). However, it can always be accessed through the long form of the command by using PDEtools[PDEplot](..).

Examples

 > with(PDEtools):

We are given a nonlinear partial differential equation in two independent variables (pde1).

 > pde1 := diff(u(x,y),x)*diff(u(x,y),y)-x*y+u(x,y)=0;
 ${\mathrm{pde1}}{≔}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}\right)\right){}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}\right)\right){-}{x}{}{y}{+}{u}{}\left({x}{,}{y}\right){=}{0}$ (1)

Using the unit circle in the x-y plane as an initial curve, we can explore the integral surface of the partial differential equation using PDEplot.

 > PDEplot(pde1, [cos(t),sin(t),0], t=-Pi..Pi, ic_assumptions=[diff(u(x,y),x) = -cos(t)]);

Because of the nonlinearity of the PDE, there are actually two possible solutions, depending on the values of the derivatives on the initial curve. These values are given using the option ic_assumptions.

 > PDEplot(pde1, [cos(t),sin(t),0], t=-Pi..Pi, ic_assumptions=[diff(u(x,y),x) = cos(t)]);

Another example.

 > pde2 := (y^2+z(x,y)^2+x^2)*diff(z(x,y),x) - 2*x*y*diff(z(x,y),y) - 2*z(x,y)*x = 0;
 ${\mathrm{pde2}}{≔}\left({{y}}^{{2}}{+}{{z}{}\left({x}{,}{y}\right)}^{{2}}{+}{{x}}^{{2}}\right){}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{z}{}\left({x}{,}{y}\right)\right){-}{2}{}{x}{}{y}{}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{z}{}\left({x}{,}{y}\right)\right){-}{2}{}{z}{}\left({x}{,}{y}\right){}{x}{=}{0}$ (2)
 > PDEplot(pde2, z(x,y), [t,t,sin(Pi*t/0.1)/10], t=0..0.1, numchar=40, orientation=[-163,56], basechar=true, numsteps=[20,20], stepsize=.15, initcolor=cos(t)*t, style=surfacecontour);

The commands to create the plot from the Plotting Guide are

 > pde3 := sin(diff(u(x,y,z),y)) = u(x,y,z);
 ${\mathrm{pde3}}{≔}{\mathrm{sin}}{}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{z}\right)\right){=}{u}{}\left({x}{,}{y}{,}{z}\right)$ (3)
 > ics := [cos(t)*sin(s), cos(s)*cos(t), cos(t), sin(t)], [t=0..Pi, s=0..Pi];
 ${\mathrm{ics}}{≔}\left[{\mathrm{cos}}{}\left({t}\right){}{\mathrm{sin}}{}\left({s}\right){,}{\mathrm{cos}}{}\left({s}\right){}{\mathrm{cos}}{}\left({t}\right){,}{\mathrm{cos}}{}\left({t}\right){,}{\mathrm{sin}}{}\left({t}\right)\right]{,}\left[{t}{=}{0}{..}{\mathrm{\pi }}{,}{s}{=}{0}{..}{\mathrm{\pi }}\right]$ (4)
 > PDEplot(pde3, ics, numsteps=[-5,6], stepsize=0.1, axes=none, style=surface, numchar=[16,16], orientation=[225,66], lightmodel='light2');
 >

More examples are available on the PDEplot_options page.