This is a personal note with personal understanding.

Notations

Index Notation is included.

Scalars are not bold (a,b,c⋯a,b,c\cdotsa,b,c⋯), while vectors are bold (a,b,c⋯\boldsymbol{a,b,c\cdots}a,b,c⋯)

Sometimes for convenience,
∂x=∂∂x∂y=∂∂y∂z=∂∂z\partial_x = \frac{\partial}{\partial x} \qquad\partial_y = \frac{\partial}{\partial y} \qquad\partial_z = \frac{\partial}{\partial z}∂x​=∂x∂​∂y​=∂y∂​∂z​=∂z∂​

Row vector inner product a⋅b=abT\newcommand{\V}[1]{\boldsymbol{#1}}\V{a}\cdot\V{b} = \V{a}\V{b}^Ta⋅b=abT

Definitions

Operators and functions can be expressed as a row vector.
∇=(∂∂x,∂∂y,∂∂z)\nabla = \Big(\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}\Big)∇=(∂x∂​,∂y∂​,∂z∂​)

Gradient of a scalar function is a vector
gradf=∇f=(∂∂x,∂∂y,∂∂z)f=(∂f∂x,∂f∂y,∂f∂z)\text{grad} f = \nabla f = \Big(\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}\Big)f = \Big(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z}\Big)gradf=∇f=(∂x∂​,∂y∂​,∂z∂​)f=(∂x∂f​,∂y∂f​,∂z∂f​)

Divergence of a vector function is a scalar
divF=∇⋅F=∂Fi∂xi=∂Fx∂x+∂Fy∂y+∂Fz∂z\newcommand{\V}[1]{\boldsymbol{#1}} \text{div}\V{F} = \nabla\cdot\V{F} = \frac{\partial F_i}{\partial x_i} = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z}divF=∇⋅F=∂xi​∂Fi​​=∂x∂Fx​​+∂y∂Fy​​+∂z∂Fz​​

Curl of a vector function is a vector
curlF=∇×F=det⁡∣e^1e^2e^3∂x∂y∂zFxFyFz∣\newcommand{\V}[1]{\boldsymbol{#1}} \text{curl}\V{F} = \nabla\times\V{F} = \det\left|\begin{matrix}\hat{e}_1 & \hat{e}_2 & \hat{e}_3 \\ \partial_x & \partial_y & \partial_z \\ F_x & F_y & F_z \end{matrix}\right|curlF=∇×F=det∣∣∣∣∣∣​e^1​∂x​Fx​​e^2​∂y​Fy​​e^3​∂z​Fz​​∣∣∣∣∣∣​

Jacobian Matrix of a vector function is a 2d matrix
JF=DF=∇F=(∂xFx∂yFx∂zFx∂xFy∂yFy∂zFy∂xFz∂yFz∂zFz)\newcommand{\V}[1]{\boldsymbol{#1}} \V{J}_\V{F} = D\V{F} = \nabla\V{F} = \left(\begin{matrix}\partial_x F_x & \partial_y F_x & \partial_z F_x \\ \partial_x F_y & \partial_y F_y & \partial_z F_y\\ \partial_x F_z & \partial_y F_z & \partial_z F_z \end{matrix}\right)JF​=DF=∇F=⎝⎛​∂x​Fx​∂x​Fy​∂x​Fz​​∂y​Fx​∂y​Fy​∂y​Fz​​∂z​Fx​∂z​Fy​∂z​Fz​​⎠⎞​

Derivative

Infinitesimal changes form column vectors.

For a scalar function fff, total derivative is
df=(∇f)dr=(∂f∂x,∂f∂y,∂f∂z)[dxdydz]\newcommand{\V}[1]{\boldsymbol{#1}} df = (\nabla f)d\V{r} = \Big(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z}\Big)\left[\begin{aligned}dx \\ dy\\ dz\end{aligned}\right]df=(∇f)dr=(∂x∂f​,∂y∂f​,∂z∂f​)⎣⎢⎡​dxdydz​⎦⎥⎤​

For a vector function F\boldsymbol{F}F
dF=(∇F)dr=(∂xFx∂yFx∂zFx∂xFy∂yFy∂zFy∂xFz∂yFz∂zFz)[dxdydz]\newcommand{\V}[1]{\boldsymbol{#1}} d\V{F} = (\nabla \V{F})d\V{r} = \left(\begin{matrix}\partial_x F_x & \partial_y F_x & \partial_z F_x \\ \partial_x F_y & \partial_y F_y & \partial_z F_y\\ \partial_x F_z & \partial_y F_z & \partial_z F_z \end{matrix}\right)\left[\begin{aligned}dx \\ dy\\ dz\end{aligned}\right]dF=(∇F)dr=⎝⎛​∂x​Fx​∂x​Fy​∂x​Fz​​∂y​Fx​∂y​Fy​∂y​Fz​​∂z​Fx​∂z​Fy​∂z​Fz​​⎠⎞​⎣⎢⎡​dxdydz​⎦⎥⎤​

This can be applied to gradient of dot product.
∇(A⋅B)=A⋅(∇B)+B⋅(∇A)\newcommand{\V}[1]{\boldsymbol{#1}} \nabla(\V{A}\cdot\V{B}) = \V{A}\cdot(\nabla\V{B}) + \V{B}\cdot(\nabla\V{A})∇(A⋅B)=A⋅(∇B)+B⋅(∇A)

Nabla Operator相关推荐

  1. 5-3-BP神经网络

    文章目录 引入名词 BP神经网络 NaN 独热码 Nabla算子 1神经网络 1.1 神经元模型 1.2 神经元激活函数 1.2.1 为什么要使用激活函数? 1.2.2为什么激活函数需要非线性函数? ...

  2. Laplace-Beltrami operator的理解

    laplace-beltrami operator 是 laplace operator在riemann manifolds上的拓展. 至于他们两到底有什么区别和联系,请看[2]中的一段话: 可以看到 ...

  3. 叉乘点乘混合运算公式_用抽象指标记号推导nabla算符相关公式

    正好这段时间电动力学讲完了nabla算符的一些公式,一开始记起来还有点烦人,遂尝试用抽象指标记号推一下. 需要先说明的几件事: 算符在此处即为和欧式度规 适配的导数算符(ordinary deriva ...

  4. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

  5. C++ 重载运算符 operator

    operator  是什么 operator 是C++的一个关键字,它和运算符(+,-,*,/,=,等等)一起使用,表示一个运算符重载函数 operator 没有返回语句 operator 的作用 : ...

  6. 【C++】operator bool() 和 operator const bool() const

    1.问题描述 在走读QtCreator源码时,看到如下运算符重载 源码在QtCreator-v4.9.2中 src\plugins\projectexplorer\projectexplorer.h ...

  7. ::operator new、sgi stl alloc、dlmalloc测试结果

    注: 使用的dlmalloc为2.8.3版本 使用GetTickCount(),测试1000000次的new/delete 分配空间大小为2的幂,依次递增 在Debug模式下 sgi-stl allo ...

  8. c++, 派生类的构造函数和析构函数 , [ 以及operator=不能被继承 or Not的探讨]

    说明:文章中关于operator=实现的示例,从语法上是对的,但逻辑和习惯上都是错误的. 参见另一篇专门探究operator=的文章:<c++,operator=>http://www.c ...

  9. 类的operator new与operator delete的重载

    为什么有必要写自己的operator new和operator delete? 答案通常是:为了效率. 缺省版本的operator new是一种通用型的内存分配器,它必须可以分配任意大小的内存块.同样 ...

最新文章

  1. 异常检测——无监督、高斯分布模型,需要带标记的样本数据,基本假设:特征符合高斯分布...
  2. js控制文本框仅仅能输入中文、英文、数字与指定特殊符号
  3. 为什么使用了索引,查询还是慢?
  4. 3G时代手机网站的特点和开发原则
  5. when and where is beanDefinitionNames filled
  6. Java函数编码_转[收集java的常用函数代码]
  7. 2.11 计算机视觉现状
  8. ORA-00906 missing left parenthesis括号
  9. MUI - 图片预览(perviewimage)的优化
  10. pandas不显示index_pandas层级索引
  11. 计算机字体对于现代设计有何意义,字体设计课程计算机授课方式的探索.doc
  12. Sql语句查询今天、昨天、本月等日期数据
  13. RZ G2L核心板内存性能测试
  14. 四轴基本知识扫盲及资料收集
  15. 51nod-1603 限高二叉排列树
  16. C#创建Windows窗体应用程序实例1【姓名输入】
  17. SWUST OJ4:迷宫问题
  18. python 自建ip地址池详细教程
  19. Flash--基础认识
  20. Python如何将txt文件录入Excel表格

热门文章

  1. 商业模式新生代_商业模式新生代
  2. 商业模式新生代读书笔记
  3. Coordinate Attention for Efficient Mobile Network Design论文详解(结合代码)
  4. Scanner 用法
  5. java 来自集合中泛型序列化的bug,难得一遇
  6. 中国大学MOOC计算机程序设计(C++)——第2周 简单信息的表示和基本运算代码
  7. 札记【2】 吾非大佬
  8. 计算机音乐天龙八部,新天龙八部玩家最难忘的音乐,13年47首BGM,全部浓缩在了一起...
  9. 歪批:XCode之外的选择?苹果非主流开发平台概览
  10. 如何有效渡过充满迷茫的大学生活