DEtools[DEplot]  plot solutions to a system of DEs

Calling Sequence


DEplot(deqns, vars, trange, options)
DEplot(deqns, vars, trange, inits, options)
DEplot(deqns, vars, trange, xrange, yrange, options)
DEplot(deqns, vars, trange, inits, xrange, yrange, options)
DEplot(dproc, vars, trange, number, xrange, yrange, options)


Parameters


deqns



list or set of first order ordinary differential equations, or a single differential equation of any order

dproc



a Maple procedure representation for first order ordinary differential equations, or a single differential equation of any order

vars



dependent variable, or list or set of dependent variables

trange



range of the independent variable

number



equation of the form 'number'=integer indicating the number of differential equations when deqns is given as a function (dproc) instead of expressions

inits



set or list of lists; initial conditions for solution curves

xrange



range of the first dependent variable

yrange



range of the second dependent variable

options



(optional) equations of the form keyword=value





Options


•

The optional equations, eqns, consist of the following, as well as a restricted set of plot and dsolve/numeric options.

'animatecurves'
'animatefield'
'animate'
'arrows'
'color'
'dirfield'
'dirgrid'
'iterations'
'linecolor'
'number'
'numframes'
'numpoints'
'numsteps'
'obsrange'
'scene'
'size'
'stepsize'
•

animatecurves = true or false (default = false)

•

animatefield = true or false (default = false)


animatefield creates an animation of the direction field with respect to time (that is, the arrows describing the direction field move as a solution with respect to time). The default number of animation frames is 25, which can be changed with the numframes option. dsolve/numeric/rkf45 is used to compute the trajectory of each arrow.

•

animate = true or false (default = false)


animate is a shortcut that can be used to specify that both animatefield (if applicable) and animatecurves (if applicable) be used.


arrowtype can be one of 'small', 'smalltwo', 'medium', 'mediumfill', 'large', 'curve', 'comet', 'line', or 'none'


The arrowtype indicates the type of arrow to be used in a direction field. The default, when a direction field is possible, is 'small'. Specifying an arrowtype of 'none' suppresses the calculation and display of any direction fields.

•

color, colour = arrowcolor


arrowcolor can take many forms:

2.

COLOR('HUE', realcons);

3.

COLOR('RGB', realcons, realcons, realcons);

4.

the literal 'magnitude';

6.

an expression in two variables;

7.

a procedure in two variables;

8.

a threeelement list of expressions in two variables; or

9.

a threeelement list of procedures in two variables.


In case 4), the color of the arrows is determined by the magnitude of the field, where blue is used for the lowest magnitude, and red is used for the highest. Case 5) is identical to case 4), but the low and high magnitude colors are specified as the indices of magnitude (for example, magnitude is equivalent to magnitude[blue,red]). In cases 6) and 7), coordinates of the arrows in the plane are passed to the expression or procedure. The resulting values are then normalized on the range [0,1] and used as 'HUE' values. In cases 8) and 9), the resulting values are normalized on [0,1] and used as RGB values. Note that 6) and 8) must contain expressions of the plotted variables. This form of color handling is useful in differentiating features of the direction field.


The default arrow color is red.

•

dirfield = [posint,posint], posint, or [[float,float],[float,float],...]


If [posint,posint] is used, it specifies a grid on which to place the arrows. This is identical to the deprecated dirgrid option. If posint is used, it specifies the number of randomly positioned arrows to use for the direction field. If [[float,float],[float,float],...] is used, each sublist describes a point at which an arrow is to be drawn.

•

dirgrid = [posint, posint]


The dirgrid option is maintained only for backward compatibility. It corresponds to the dirfield = [posint, posint] option.


iterations provides a method of decreasing the step size while leaving the number of stored points constant. For example, setting stepsize=0.05 and iterations=5 computes internally with a step size of but only stores every 5th point. This option is deprecated by numpoints, and is ignored by methods except the classical methods.


line_info can take one of five forms:

2.

COLOR('HUE', realcons);

3.

COLOR('RGB', realcons, realcons, realcons);

4.

an expression of the independent variable;

5.

a procedure of the independent variable.


In cases 4) and 5), values of the independent variable are passed to the expression or procedure. The resulting values are then normalized on [0,1] and applied as 'HUE' values. This color feature is useful in displaying how the solution curve varies with the independent variable.


In addition, forms 1) to 5) can be combined into a list, one element for each of the solution curves considered. Each list element is then applied to a corresponding solution curve.


The default line color is yellow.


number specifies the number of equations in the procedureform first order system in dproc (see calling sequences above).


numframes specifies the number of frames used for animations, using any of the animate, animatefield, or animatecurves options.


numpoints specifies the number of points used to plot the curves over the specified time range. The default number of points is 49. Note that for animations, must be an integer multiple of .


numsteps allows specification of the stepsize parameter by a more convenient means. For trange=a..b, specifying numsteps=n computes with a step size of . This option is independent of numpoints.


Note: This option only applies to classical fixed step size methods, which are not the default.


obsrange indicates whether the integrator should stop once the solution curve has passed outside the specified range. It also specifies that any arrows that pass completely outside the viewing area should be removed (for an arrowbased animation). This is useful in the plotting of functions with asymptotic behavior. The default is true.


scene specifies the axes of the plot to be viewed. For example, scene=[x, y] indicates that the plot of x versus y (x horizontal) is to be plotted, with t implicit, while scene=[t, y] plots t versus y with t explicit. This option can also be used to change the order in which to plot the variables. There is no default ordering when vars is indicated as a set; if vars is given as a list, the given ordering is used.

•

size = float or magnitude


When size=magnitude, the size of the arrows is proportional to the magnitude of the direction field. When size is specified as a positive floating point value, then this value is used to modify the size of all arrows in the direction field. The default value is size=1.0.


stepsize specifies the step size used by dsolve when computing the curves in the plot using the classical methods. For trange=a..b, the default value is .


Note: The solution curves are plotted with a default line thickness of , but this can be changed with the thickness plot option.

•

There are many other optional equations that can be specified, for example, the thickness option. For more information, see plot/options and the individual dsolve/numeric help pages.



Description


•

Given a set or list of initial conditions (see below), and a system of first order differential equations or a single higher order differential equation, DEplot plots solution curves, by numerical methods.


Note: This means that the initial conditions of the problem must be given in standard form, that is, the function values and all derivatives up to one less than the differential order of the differential equation at the same point.

•

A system of two first order differential equations produces a direction field plot, provided the system is determined to be autonomous. In addition, a single first order differential equation produces a direction field (as it can always be mapped to a system of two first order autonomous differential equations). A system is determined to be autonomous when all terms and factors, other than the differential, are free of the independent variable. For more information, see DEtools[autonomous]. For systems not meeting these criteria, no direction field is produced (only solution curves are possible in such instances). There can be only one independent variable.

•

The default method of integration is method=rkf45. Other methods can be specified in the optional equations. Note that because numerical methods are used to generate plots, the output is subject to the characteristics of the numerical method in use. In particular, unusual output may occur when dealing with asymptotes.

•

By default, the two dependent variables are plotted, unless otherwise specified in the scene option.

•

The deqns parameter can be given as a procedure, but must conform to the specification as given in dsolve/numeric, and the number option must be included before the initial conditions. In this instance, deqns must be of the form:

proc( N, ivar, Y, YP )

...

YP[1] := f1(ivar,Y);

YP[2] := f2(ivar,Y);

...

end proc




where N represents the number of first order equations, ivar is the independent variable, Y is a vector of length N, and YP is a vector of derivatives which is updated by the procedure (for the equivalent first order system), also of length N. For information on determining first order systems, see DEtools[convertsys]. N is given in this case by the fourth parameter number.

•

The inits parameter must be specified as:


where, in the above, sets can be used in place of lists, or


where the above is a list or set of lists, each sublist specifying one group of initial conditions.

•

The xrange and yrange parameters must be specified as follows.


By default, integration along a solution curve stops one mesh point after the specified range is exceeded. This may be overridden by the obsrange option.

•

More examples can be found in the deplot example worksheet.

•

DEplot can also be accessed through the interactive DEplot assistant. For more information, see DEplot[interactive].



Examples


This first example is for a first order equation. It is for Newton's law of cooling. The differential equation is
>


where is the temperature at time and we have set the Ambient temperature to 20 degrees and the cooling rate constant to 0.1. We plot the solution for initial temperatures 10, 30, and 50 degrees. In the second plot we change the ranges for time and temperature .
>


>


>


The second example is a first order system in and . It is the SIR virus model where is the susceptible population and is the infected population. The differential equations are:
>


>


The first plot shows one initial value and meaning 1% of the population is infected at time .
>


This second plot animates the solution curve in time. To run the animation, click on the plot then press the play button.
>


This third example is a second order differential equation. It is a damped harmonic oscillator where is the position of the object at time , is its mass, is the spring constant and is the damping constant.
>


>


The fourth example shows the same damped Harmonic oscillator above but input as a system of two first order equations. Here is the velocity. By default the plot is a plot of verses . In the second plot, we use the scene option to obtain a plot of verses . In the third plot, we show some options for improving the quality of the solution curve.
>


>


>


>


Here is the same plot as above, but using the procedure input form.
>

F1 := proc(N,x,Y,YP) # First order system
YP[1] := Y[2];
YP[2] := Y[1]1/2*Y[2];
end proc;

>


The fifth set of examples are plots of the LotkaVolterra predatorprey system. Here is the prey population and is the predator population. The first plot shows a plot of the direction field where color is used to indicate the velocity. The second plot shows the direction field with 300 randomly placed "comets." In the third plot we animate the direction field and in the fourth plot we animate the solution curves. Note, the second animation may take a minute or two to compute.
>


>


>


>


>


The sixth example is a system of three DEs in showing how to plot a solution for versus . To see a plot of verses verses in 3 dimensions, use DEtools[DEplot3d].
>


>


The seventh example, a 3rd order equation, illustrates how to input higher order derivatives and initial values.
>


>


The next examples illustrate other arrow and color options and also an alternative way for inputting a system from which one can directly solve for the fixed points of the system. This system is a modified LotkaVolterra system, and these are the commands to create the plot from the Plotting Guide.
>


>


>


>


>


>


>


>


The next example shows that arrows are plotted only in regions where the direction field is real valued.
>


The final examples illustrate other aspects of differential equations using animation. To play the animations, you must click on the plot then click on the play button.
>


>


>


>


>


>


>


>




See Also


DEplot3d, DEplot[interactive], DEtools, DEtools[autonomous], DEtools[phaseportrait], dfieldplot, dsolve/classical, dsolve/dverk78, dsolve/gear, dsolve/lsode, dsolve/numeric, dsolve/rkf45, dsolve/rosenbrock, PDEtools[PDEplot], plot, plot/options, plots[odeplot]

