VectorCalculus
DirectionalDiff
computes the directional derivative of a scalar field in the direction given by a vector
Calling Sequence
Parameters
Description
Examples
DirectionalDiff(F,v,c)
DirectionalDiff(F,p,dir,c)
F
-
the scalar or vector field to differentiate
v
Vector(algebraic); the direction Vector or vector field
p
point=list(algebraic) or point=Vector(algebraic); point where the derivative will be evaluated
dir
list(algebraic) or Vector(algebraic); components specifying the direction of the directional derivative in a specified coordinate system
c
(optional) list(name) or symbol[name, name, ...]; list of names or name of the coordinate system indexed by the coordinate names
The DirectionalDiff(F,v,c) command, where F is a scalar function, computes the directional derivative of F at the location and direction specified by v. The expression F is interpreted in the coordinate system specified by c, if provided, and otherwise in the current coordinate system.
The DirectionalDiff(F,v,c) command, where F is a VectorField, computes the VectorField of directional derivatives of each component of F with respect to v.
The argument v can be a free Vector in Cartesian coordinates, a position Vector, a vector field or a rooted Vector. If v is one of the first three, the result will be a scalar field of all directional derivatives in Rn in the directions specified by v; this scalar field will be given in the same coordinate system as is used to interpret expression F. If v is a rooted Vector, the result is the value of the directional derivative of F in the direction of v taken at the root point of v.
If F is a scalar function, the Vector v is normalized. If F is a VectorField, the Vector v is not normalized.
The DirectionalDiff(F,p,dir,c) command computes the directional derivative of F at the point p in the direction dir, where F is interpreted in the coordinate system specified by c, if provided, and otherwise in the current coordinate system. The point p can be a list, a free Vector in Cartesian coordinates or a position Vector. The direction dir can be a free Vector in Cartesian coordinates, a position Vector or a vector field. The result is the value of DirectionalDiff(F,dir,c) evaluated at the point p.
If c is a list of names, the directional derivative of F is taken with respect to these names in the current coordinate system.
If c is an indexed coordinate system, F is interpreted in the combination of that coordinate system and coordinate names.
If c is not specified, F is interpreted in the current coordinate system, whose coordinate name indices define the function's variables.
Note that c has no influence on the interpretation of the direction vector v.
An operator implementing the directional derivative with respect to a VectorField can be obtained using the dot operator with Del, as in V·Del.
with(VectorCalculus):
Introductory examples where a coordinate system is specified
SetCoordinates(cartesian[x,y]);
cartesianx,y
v1 := <1, 2>:
DirectionalDiff(r^2, v1, polar[r,t]);
2⁢r⁢cos⁡t⁢55+4⁢r⁢sin⁡t⁢55
W := VectorField(<u+v,v>, cartesian[u,v]);
W≔u+ve_u+ve_v
DirectionalDiff(r^2, point=[1,Pi], W, polar[r,t]);
2
dd := DirectionalDiff(r^2, W, polar[r,t]):
simplify( eval( dd, [r=1, t=Pi] ) );
dd := DirectionalDiff(VectorField(<x/y,x*y>), W);
dd≔x+yy−xye_x+x+y⁢y+y⁢xe_y
Examples where a list of variable names is provided
DirectionalDiff(p*q, <1,2>, [p,q]);
q⁢55+2⁢p⁢55
v2 := <1, 0>:
SetCoordinates(polar);
polar
dd := DirectionalDiff(r*cos(theta), v2, [r,theta]): # v2 is in cartesian coordinates
simplify( dd );
1
Examples where the information is given in the form of a Rooted Vector
SetCoordinates(polar[r, t]);
polarr,t
vs := VectorSpace([1, Pi/2], polar[r, t]):
v3 := vs:-Vector([1, 1]);
v3≔11
v4 := vs:-Vector([0, 1]);
v4≔01
DirectionalDiff(r^2, v3);
DirectionalDiff(r^2, v4);
0
SetCoordinates(cartesian[x, y]);
DirectionalDiff(y^2*x^2, point=[1, 2], <0, 1>, cartesian[x, y]);
4
DirectionalDiff(y^2*x^2, RootedVector(root=[1, 2], [0, 1]), cartesian[x, y]);
DirectionalDiff(y^2*x^2, RootedVector(root=[1, Pi/2], [1, 1], polar[r, t]), cartesian[x, y]);
Examples using the dot operator to construct a directional derivative operator
SetCoordinates(cartesian[x,y,z]);
cartesianx,y,z
V := VectorField(<y*z, x*z, x*y>);
V≔y⁢ze_x+x⁢ze_y+y⁢xe_z
normal( (V.Del)((x*y*z)) );
y2⁢x2+x2⁢z2+y2⁢z2
(V.Del)(VectorField(<1/x, 1/y, 1/z>));
−y⁢zx2e_x+−x⁢zy2e_y+−y⁢xz2e_z
See Also
Physics[Vectors][DirectionalDiff]
Student[MultivariateCalculus][DirectionalDerivative]
tensor[directional_diff]
VectorCalculus[diff]
VectorCalculus[DotProduct]
VectorCalculus[Gradient]
VectorCalculus[SetCoordinates]
Download Help Document
What kind of issue would you like to report? (Optional)