Plotting Vector Fields with Maple
Copyright © 2001 by James F. Hurley, University of Connecticut Department of Mathematics, Unit 3009, Storrs CT 06269-3009. All rights reserved.
1. Two-dimensional vector fields
.
Maple has commands to plot general two-dimensional vector fields, as well as gradient fields. The basic command is
fieldplot( [f (x, y), g(x,y)], x = a..b, z = c..d ) ;
To use it, the
plots
library must be loaded. The following routine illustrates
fieldplot
for the vector field
F
in Exercise 4, Section 17.1, of James Stewart, Calculus, 4th Edition, ITP Brooks/Cole, 1999: F(x, y) =
i
+ 2
y
j
.
>
with (plots):
fieldplot( [-x, 2*y], x = -4..4, y = -4..4);
The arrows look a bit
too
thin (the default option in the
fieldplot
command is
thin
), so try the following slightly altered version. You can also experiment with the other options:
slim
and
thick
.
>
with (plots):
fieldplot( [-x, 2*y], x = -4..4, y = -4..4, arrows = medium);
Maple's
gradplot
command, which also requires loading the
plots
library, makes quick work of a problem that asks for a plot of the gradient of a scalar function of two variables. The syntax of the
gradplot
command is
gradplot( [f (x, y), g(x,y)], x = a..b, z = c..d ) ;
The next routine illustrates this by plotting the gradient of the scalar function
f
with formula
.
>
with (plots):
gradplot( sqrt(x^2 + y^2), x = -3..3, y = -3..3, arrows = medium, color = sqrt(x^2 + y^2) );
2. Three-dimensional vector fields.
Maple plots three-dimensional vector fields via its
fieldplot3d
and
gradplot3d
commands, whose syntax is nearly identical to that for the corresponding two-dimensional commands illustrated above. The next routine plots the vector field
F
of three variables with formula
F
(
x
,
y
,
z
) = <
>, and displays it with coordinate axes. (Note: Although Maple's documentation indicates that only the option
arrows = medium
is not available for three-dimensional field plots, on the Macintosh any arrow or color options seem to generate error messages in Version 6.0.1).)
>
with(plots):
deft := fieldplot3d( [x^2, x*y, z^2],x =-1..1,y =-1..1, z = -1..2):
xaxis := spacecurve([t, 0, 0, t = -1..1.5, color = magenta]) :
yaxis := spacecurve([0, t, 0, t = -1..1.5, color = magenta]) :
zaxis := spacecurve([0, 0, t, t = -1..2.5, color = magenta]) :
labx := textplot3d([1.6, 0, -.2, `x`], color = magenta):
laby := textplot3d([0,1.6, -.2, `y`], color = magenta):
labz := textplot3d([0, 0, 2.6, `z`], color = magenta):
display (deft, xaxis, yaxis, zaxis, labx, laby, labz, axes = boxed);
The last routine illustrates the
gradplot3d
command.
>
with(plots):
deft := gradplot3d( x*cos(y/z),x =-1..1,y =-1..1, z = -1..2):
xaxis := spacecurve([t, 0, 0, t = -1..1.5, color = magenta]) :
yaxis := spacecurve([0, t, 0, t = -1..1.5, color = magenta]) :
zaxis := spacecurve([0, 0, t, t = -1..2.5, color = magenta]) :
labx := textplot3d([1.6, 0, -.2, `x`], color = magenta):
laby := textplot3d([0,1.6, -.2, `y`], color = magenta):
labz := textplot3d([0, 0, 2.6, `z`], color = magenta):
display (deft, xaxis, yaxis, zaxis, labx, laby, labz, axes = boxed);