Nabla - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

# Online Help

###### All Products    Maple    MapleSim

Physics[Vectors][Nabla] - the differential operator nabla

 Calling Sequence Nabla(A) Nabla(A, differential_operation) Nabla(A, differential_operation, useComponent) Remark: these calling sequences are also valid with the inert %Nabla command

Parameters

 A - any algebraic expression differential_operation - any of Curl, Divergence, Gradient, or Laplacian useComponent - optional, to request representing the components of a non-projected vector using the Component command

Description

 • Nabla is a command representation for the nabla differential operator. Thus, it can be used to calculate the gradient, divergence, curl or Laplacian of a function as well.
 • %Nabla is the inert form of Nabla, that is: it represents the same mathematical operation while holding the operation and checking of arguments unperformed. The expansion rules defined for Nabla, however, also work (are implemented) for the inert %Nabla. To activate the operation use value.
 • Nabla works in a context sensitive manner. For instance, Nabla(F) returns the gradient of $F$ or the divergence of $F$ according to whether $F$ is identified as a scalar or a vector function (see ?Identify). So when called with only one argument Nabla(F) = Nabla . F. When called with two arguments, Nabla(F, Curl), Nabla(F, Divergence), Nabla(F, Gradient) and Nabla(F,Laplacian) respectively return the curl the divergence, the gradient and the Laplacian of $F$. The result is expressed in the specific coordinates and orthonormal vector basis system related to the functional dependence detected in $F$. When $F$ does not depend on the geometrical coordinates $\left[x,y,z,\mathrm{\rho },\mathrm{\phi },r,\mathrm{\theta }\right]$, Nabla(F, ...) returns 0; and when $F$ depends on coordinates of more than one system, the calculations are interrupted an error message is displayed on the screen.
 • A call to Nabla with one or two arguments returns the evaluation of the corresponding vector differential operation unless $F$ is a non-projected vector, in which case Nabla(F) and Nabla(F, Divergence) return unevaluated as $\mathrm{Divergence}\left(F\right)$ and Nabla(F, Curl) returns Curl(F) (see ?Divergence and ?Curl). Generally speaking, to evaluate the corresponding vector differential operation it would be necessary to know the components of $F$ in some orthonormal vector basis. It is possible, however, to make Nabla return the vector differential operation performed by representing these unknown components using the Component command; for that purpose the optional argument useComponent should be given.
 • Since Nabla performs differentiation using the standard diff command, all differentiation knowledge of diff is used when computing with Nabla.
 • For the conventions about the geometrical coordinates and vectors see Identify.

Examples

 > $\mathrm{with}\left({\mathrm{Physics}}_{\mathrm{Vectors}}\right)$
 $\left[{\mathrm{&x}}{,}{\mathrm{+}}{,}{\mathrm{.}}{,}{\mathrm{Assume}}{,}{\mathrm{ChangeBasis}}{,}{\mathrm{ChangeCoordinates}}{,}{\mathrm{CompactDisplay}}{,}{\mathrm{Component}}{,}{\mathrm{Curl}}{,}{\mathrm{DirectionalDiff}}{,}{\mathrm{Divergence}}{,}{\mathrm{Gradient}}{,}{\mathrm{Identify}}{,}{\mathrm{Laplacian}}{,}{\nabla }{,}{\mathrm{Norm}}{,}{\mathrm{ParametrizeCurve}}{,}{\mathrm{ParametrizeSurface}}{,}{\mathrm{ParametrizeVolume}}{,}{\mathrm{Setup}}{,}{\mathrm{Simplify}}{,}{\mathrm{^}}{,}{\mathrm{diff}}{,}{\mathrm{int}}\right]$ (1)
 > $\mathrm{Setup}\left(\mathrm{mathematicalnotation}=\mathrm{true}\right)$
 $\left[{\mathrm{mathematicalnotation}}{=}{\mathrm{true}}\right]$ (2)

Nabla can be used to represent a gradient

 > $\mathrm{Nabla}\left(f\left(x,y,z\right)\right)$
 $\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){}\stackrel{{\wedge }}{{i}}{+}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){}\stackrel{{\wedge }}{{j}}{+}\left(\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){}\stackrel{{\wedge }}{{k}}$ (3)

Note the "application" of Nabla as in the above can be performed as well using the . operator:

 > $\mathrm{.}\left(\mathrm{Nabla},f\left(x,y,z\right)\right)$
 $\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){}\stackrel{{\wedge }}{{i}}{+}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){}\stackrel{{\wedge }}{{j}}{+}\left(\frac{{\partial }}{{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){}\stackrel{{\wedge }}{{k}}$ (4)

The Laplacian

 > $\mathrm{Nabla}\left(f\left(x,y,z\right),\mathrm{Laplacian}\right)$
 $\frac{{{\partial }}^{{2}}}{{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right){+}\frac{{{\partial }}^{{2}}}{{\partial }{{y}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right){+}\frac{{{\partial }}^{{2}}}{{\partial }{{z}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)$ (5)

To distinguish a non-projected vector from a scalar variable a postfix identified is used. You can use the default identified, that is the underscore $_$, or set any valid Maple sequence of characters as identifier. For illustration purposes let's set again this default identifier:

 > $\mathrm{Physics}:-\mathrm{Setup}\left(\mathrm{vectorpostfix}=_\right)$
 $\left[{\mathrm{vectorpostfix}}{=}{_}\right]$ (6)

So the divergence of a non-projected vector can be computed in these three equivalent manners

 > $\mathrm{Nabla}\left(\mathrm{f_}\left(x,y,z\right)\right)$
 ${\mathrm{Divergence}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right)\right)$ (7)
 > $\mathrm{Nabla}\left(\mathrm{f_}\left(x,y,z\right),\mathrm{Divergence}\right)$
 ${\mathrm{Divergence}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right)\right)$ (8)
 > $\mathrm{.}\left(\mathrm{Nabla},\mathrm{f_}\left(x,y,z\right)\right)$
 ${\mathrm{Divergence}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right)\right)$ (9)

The curl

 > $\mathrm{Nabla}\left(\mathrm{f_}\left(x,y,z\right),\mathrm{Curl}\right)$
 ${\mathrm{Curl}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right)\right)$ (10)

To actually compute the operation instead of just representing it, in the case of non-projected vectors use the optional argument useComponent, so that the unknown components are represented using the Component command

 > $\mathrm{Nabla}\left(\mathrm{f_}\left(x,y,z\right),\mathrm{Curl},\mathrm{useComponent}\right)$
 $\left({\mathrm{Component}}{}\left({\mathrm{diff}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right){,}{y}\right){,}{3}\right){-}{\mathrm{Component}}{}\left({\mathrm{diff}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right){,}{z}\right){,}{2}\right)\right){}{\mathrm{_i}}{+}\left({\mathrm{Component}}{}\left({\mathrm{diff}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right){,}{z}\right){,}{1}\right){-}{\mathrm{Component}}{}\left({\mathrm{diff}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right){,}{x}\right){,}{3}\right)\right){}{\mathrm{_j}}{+}\left({\mathrm{Component}}{}\left({\mathrm{diff}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right){,}{x}\right){,}{2}\right){-}{\mathrm{Component}}{}\left({\mathrm{diff}}{}\left({\mathrm{f_}}{}\left({x}{,}{y}{,}{z}\right){,}{y}\right){,}{1}\right)\right){}{\mathrm{_k}}$ (11)