Working in 3D. I know that the gradient is a vector operator defined as $\nabla = [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}]$.

The gradient of a scalar scalar-valued function $f(\vec{x})\in\mathbb{R}$ is $\nabla f(\vec{x}) = [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}]f(\vec{x}) = [\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z}]$. This makes sense to me.

But if we take the gradient of a vector field, say $\vec{f} = [f_1,f_2,f_3]$, I know that this is

$\displaystyle \nabla \vec{f} = \begin{bmatrix} \frac{\partial f_1}{\partial x} & \frac{\partial f_1}{\partial y} & \frac{\partial f_1}{\partial z} \\ \frac{\partial f_2}{\partial x} & \frac{\partial f_2}{\partial y} & \frac{\partial f_2}{\partial z} \\ \frac{\partial f_3}{\partial x} & \frac{\partial f_3}{\partial y} & \frac{\partial f_3}{\partial z} \\ \end{bmatrix} $.

But how did we get to this? Since both $\nabla$ and $\vec{f}$ are vectors, this seems a bit like an outer product, but writing $\nabla \otimes\vec{f}$ turns out to be the transpose of what I want i.e.

$\displaystyle \nabla \otimes\vec{f}=\nabla\vec{f}^T = \begin{bmatrix} \frac{\partial}{\partial x}\\ \frac{\partial}{\partial y}\\ \frac{\partial}{\partial z} \end{bmatrix} \begin{bmatrix} f_1 & f_2 & f_3 \end{bmatrix} = \begin{bmatrix} \frac{\partial f_1}{\partial x} & \frac{\partial f_2}{\partial x} & \frac{\partial f_3}{\partial x} \\ \frac{\partial f_1}{\partial y} & \frac{\partial f_2}{\partial y} & \frac{\partial f_3}{\partial y} \\ \frac{\partial f_1}{\partial z} & \frac{\partial f_2}{\partial z} & \frac{\partial f_3}{\partial z} \\ \end{bmatrix} $ Am I not understanding something correctly? What am I doing wrong?

  • $\begingroup$ First of all the $\nabla$ operator is known as the del operator. Then the gradient is the result of the del operator acting on a scalar valued function. As for $\nabla\overrightarrow{f}$, it seems like each row is representing the gradient of each component of $\overrightarrow{f}$. I honestly don't think that there is any simple notation for the operation $\nabla\overrightarrow{f}$ except $(\nabla \otimes \overrightarrow{f})^T$. $\endgroup$ Dec 8, 2015 at 0:52
  • 1
    $\begingroup$ The Jacobian of $\mathbf f$ at $\mathbf p$ (which is sometimes written as $\nabla \mathbf f$) is actually defined as the unique linear map such that $\mathbf f(\mathbf x) = \mathbf f(\mathbf p) +[\text J\mathbf f(\mathbf p)](\mathbf x-\mathbf p)+o(\|\mathbf x-\mathbf p\|)$. It's not defined by matrix multiplication. $\endgroup$
    – user137731
    Dec 8, 2015 at 0:53
  • $\begingroup$ Of course! $\nabla \vec{f}$ is computed the same way as the Jacobian $j_{i,j} = \frac{\partial f_i}{\partial x_j}$. This makes a lot more sense now. Thanks. $\endgroup$
    – Raxxy
    Dec 8, 2015 at 1:02

2 Answers 2


From my limited understanding you want the dyadic tensor product, not the outer product.

In more complex examples this is not always the case, but for ${\bf a},{\bf b}\in$ Euclidean space, the dyadic product is related to the outer product by $$ {\bf a}\otimes{\bf b}\equiv{\bf a}{\bf b}^T $$

Which agrees with your example.

When placed next to a scalar-valued function or vector field alike $\nabla$ is considered an operator. Subsequently, for the vector field case you want the dyadic product of $\nabla$ and the vector field it is acting on. Check out the section marked, three dimensional space on the wikipedia page for dyadics https://en.wikipedia.org/wiki/Dyadics


Your first idea is incomplete, the result of the gradient operator is a column vector, or at least the same type of vector as used in the point space. The relation between them is that the directional derivative $df(v)=\frac{\partial f}{\partial v}$ for a scalar function $f$ can also be written as the scalar product $∇f·v$.

With $\vec f$ likewise a column vector, $∇\vec f$ does not make much sense, the usual constructs are the divergence $∇·\vec f$ and the curl $∇\times\vec f$.

One can of course also write the derivative of the vector field as $D\vec f=∇^T\vec f$. While $∇\otimes \vec f$ has the same components, it has a slightly different geometrical interpretation as a bi-vector.

There could also be some mix-up in the assignment of row and column vectors to space points and translations on one side and linear functionals on the other. In the first half you use rows for the points as is it quite common in computer graphics. Then also transformations act as vector-matrix products. In the second half discussing the Jacobian you switch to the convention more usual in analytical and differential geometry, where (coordinate) vectors are columns and linear forms are represented by row vectors.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .