拉普拉斯算子的疑惑

国内许多工科教材在讲到有关拉普拉斯算子(Δ\DeltaΔ)与哈密顿算子(∇\nabla∇)的内容时含混不清,忽略了许多重要定义,使得一些进一步的推导难以理解

现记录我发现的两个主要问题,并予以解答,希望可以帮助到学习国内教材时有相似疑惑的同学

1. 拉普拉斯算子作用于矢量

1.1 课本中的定义

课本在介绍拉普拉斯算子时,一般会有如下定义:

设f\displaystyle ff为二阶可微的实函数,那么有:

Δf=∇2f=∇⋅∇f\Delta f = \nabla^2f = \nabla \cdot \nabla f Δf=∇2f=∇⋅∇f

紧接着,教材通常还会将其在直角坐标系下展开,也即

∇2f=∑i=1n∂2f∂xi2\nabla^2f=\sum_{i=1}^n{\frac{\partial^2 f}{\partial x_i^2}} ∇2f=i=1∑n​∂xi2​∂2f​

同时,教科书中常常还会在这里进一步解释它的含义是: 对一实值函数求其梯度的散度

1.2 疑问

但是,在许多进一步的推导中,我们又常常可以看到如下过程,例如在波动方程(亥姆霍兹方程)的推导中有如下内容

∇2E+ω2μϵE=0\nabla^2 \boldsymbol E + \omega ^2\mu\epsilon\boldsymbol E =0∇2E+ω2μϵE=0

其中E为矢量,或者说场量

这就奇了棒棒锤的怪了,说好的求梯度的散度呢?对于矢量我该如何进行计算∇2E\nabla ^2 \boldsymbol E∇2E

1.3 真正的定义

其实,对矢量进行拉普拉斯算子,其定义与标量下并不相同,在Wolfram(https://mathworld.wolfram.com/VectorLaplacian.html)中可以查找到如下定义

Vector Laplacian
A vector Laplacian can be defined for a vector A\mathbf{A}A by
∇2A=∇(∇⋅A)−∇×(∇×A)\nabla^{2} \mathbf{A}=\nabla(\nabla \cdot \mathbf{A})-\nabla \times(\nabla \times \mathbf{A}) ∇2A=∇(∇⋅A)−∇×(∇×A)
where the notation ˙\dot{ }˙ is sometimes used to distinguish the vector Laplacian from the scalar Laplacian ∇2\nabla^{2}∇2 (Moon and Spencer 1988,p.31988, \mathrm{p} .31988,p.3 ). In tensor notation, A\mathbf{A}A is written AμA_{\mu}Aμ​, and the identity becomes

∇2Aμ=Aμ;λ;λ=(gλxAμ;λ);κ=gλκ;κAμ;λ+gλxAμ;λx\begin{aligned} \nabla^{2} A_{\mu} &=A_{\mu ; \lambda} ; \lambda \\ &=\left(g^{\lambda x} A_{\mu ; \lambda}\right)_{; \kappa} \\ &=g^{\lambda} \kappa_{; \kappa} A_{\mu ; \lambda}+g^{\lambda x} A_{\mu ; \lambda x} \end{aligned} ∇2Aμ​​=Aμ;λ​;λ=(gλxAμ;λ​);κ​=gλκ;κ​Aμ;λ​+gλxAμ;λx​​

A tensor Laplacian may be similarly defined.
In cylindrical coordinates, the vector Laplacian is given by

上面的定义式,在国内教材中通常作为一个张量运算的性质给出,但是在国外的许多资料中,则是拉普拉斯算子作用于矢量时的定义

显然,在这样的定义下,对矢量进行拉普拉斯算子运算已经失去了梯度的散度的含义。而之所以这样定义,我的理解是为了方便进一步的数学运算,例如在直角坐标系下将其展开,可以按照简单向量运算进行下去

∇2T=∇2(Tx,Ty,Tz)=(∇2Tx)x^+(∇2Ty)y^+(∇2Tz)z^\nabla^2 \boldsymbol T = \nabla^2(T_x,T_y,T_z) = (\nabla^2 T_x)\hat x + (\nabla^2 T_y)\hat y + (\nabla^2 T_z)\hat z∇2T=∇2(Tx​,Ty​,Tz​)=(∇2Tx​)x^+(∇2Ty​)y^​+(∇2Tz​)z^

上式可以解释为: 直角系下,矢量的拉普拉斯运算相当于对矢量的各个分量分别做拉普拉斯运算,再组成一个矢量

2. 拉普拉斯算子在Hessian矩阵中的含义

2.1 Hessian矩阵的定义

Hessian矩阵通常定义如下:
∇2f=H=[∂2f∂x12∂2f∂x1∂x2⋯∂2f∂x1∂xn∂2f∂x2∂x1∂2f∂x22⋯∂2f∂x2∂xn∂2f∂xn∂x1∂2f∂xn∂x2⋯∂2f∂xn2]\nabla^2f = \mathbf{H}=\left[\begin{array}{cccc} \frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{1} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{2} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{2}^{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{2} \partial x_{n}} \\ \frac{\partial^{2} f}{\partial x_{n} \partial x_{1}} & \frac{\partial^{2} f}{\partial x_{n} \partial x_{2}} & \cdots & \frac{\partial^{2} f}{\partial x_{n}^{2}} \end{array}\right] ∇2f=H=⎣⎢⎢⎡​∂x12​∂2f​∂x2​∂x1​∂2f​∂xn​∂x1​∂2f​​∂x1​∂x2​∂2f​∂x22​∂2f​∂xn​∂x2​∂2f​​⋯⋯⋯​∂x1​∂xn​∂2f​∂x2​∂xn​∂2f​∂xn2​∂2f​​⎦⎥⎥⎤​

2.2 疑问

我们知道,如果∇2\nabla^2∇2作用于标量时,如∇2ϕ\nabla^2 \phi∇2ϕ,所得结果也为一标量

∇2\nabla^2∇2作用于矢量时,如∇2E\nabla^2 \boldsymbol E∇2E,所得结果为一向量

那么在Hessian矩阵的定义中,究竟是何种逆天的力量,能够使得拉普拉斯算子作用于在f上时,却得到了一个矩阵?

2.3 符号的混淆

在维基百科中,终于找到了如下解释

Hessian matrix

While ∇2\nabla^{2}∇2 usually represents the Laplacian, sometimes ∇2\nabla^{2}∇2 also represents the Hessian matrix. The former refers to the inner product of ∇\nabla∇, while the latter refers to the dyadic product of ∇\nabla∇ :
∇2=∇⋅∇T\nabla^{2}=\nabla \cdot \nabla^{T} ∇2=∇⋅∇T
So whether ∇2\nabla^{2}∇2 refers to a Laplacian or a Hessian matrix depends on the context.

原来,在Hessian矩阵的定义中,∇2\nabla^2∇2符号的含义与拉普拉斯算子有所区别。我们将\nabla算符看作一个偏微分组成的列向量

∇=[∂∂x1∂∂x2⋯∂∂x3]\nabla=\left[\begin{array}{l} \frac{\partial }{\partial x_{1}} \\ \frac{\partial }{\partial x_{2}} \\ \cdots \\ \frac{\partial }{\partial x_{3}} \\ \end{array}\right]∇=⎣⎢⎢⎡​∂x1​∂​∂x2​∂​⋯∂x3​∂​​⎦⎥⎥⎤​

经过简单的矩阵运算∇2=∇⋅∇T\nabla^{2}=\nabla \cdot \nabla^{T}∇2=∇⋅∇T,即可得到Hessian的定义式

* 参考资料

  • Vector Laplacian

  • Del Wiki

拉普拉斯算子的疑惑--拉普拉斯算子作用于矢量和定义Hessian矩阵时遇到的问题相关推荐

  1. 算法设计与智能计算 || 专题八: 拉普拉斯算子与图拉普拉斯

    拉普拉斯算子与图拉普拉斯 文章目录 拉普拉斯算子与图拉普拉斯 1. 拉普拉斯基本概念与计算 1.1 哈密尔顿算子 1.2 梯度(gradient) 1.3 散度(divergence) 1.4 拉普拉 ...

  2. dog log 算子_DoG和LoG算子

    DoG(Difference of Gaussian)算子和LoG(Laplacian of Gaussian)算子是常用的极值点检测(Blob Detection)两种方法,高斯卷积是为了进行尺度变 ...

  3. 图像处理特征不变算子系列之DoG算子(五)

    图像处理特征不变算子系列之DoG算子(五) kezunhai@gmail.com http://blog.csdn.net/kezunhai 在前面分别介绍了:图像处理特征不变算子系列之Moravec ...

  4. CANN训练营第三季_昇腾CANN算子精讲课_TBE算子Sinh开发笔记_UT测试(三)

    UT测试: UT测试是为了测试算子代码的正确性和不同场景下的覆盖率的测试,UT测试在硬件CPU上执行,MindStudio提供了gtest框架方便进行UT测试. 参考:https://www.hias ...

  5. c程序语言符号的作用,c语言宏定义中的#,##,#@及\符号的作用

    1.#(stringizing)字符串化操作符 作用:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串.其只能用于有传入参数的宏定   义中,且必须置于宏定义体中的参数名前. 如: #def ...

  6. 随着上网次数越来越多,IE地址栏中留下大量的历史网址,感觉很不爽,于是决心写一个清除IE地址栏的应用程序,随说有“上网助手”,但它要在能上网时才起作用,我想在不能上网时来对系统进行清理,于是写了一个叫

    随着上网次数越来越多,IE地址栏中留下大量的历史网址,感觉很不爽,于是决心写一个清除IE地址栏的应用程序,随说有"上网助手",但它要在能上网时才起作用,我想在不能上网时来对系统进行 ...

  7. OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 拉普拉斯算子是最简单的各向同性二阶微分算子,具有 ...

  8. 拉普拉斯图像增强C语言,拉普拉斯算子进行图像增强

    先上个简单的示例,看MATLAB中拉普拉斯滤波器是如何实现的: 令原图f=magic(3) f = 8 1 6 3 5 7 4 9 2 掩膜采用标准Laplacian掩膜:w=fspecial('la ...

  9. python 拉普拉斯锐化_Python+OpenCV拉普拉斯图像锐化

    **Python实现基于OpenCV的拉普拉斯图像锐化** 研一学习数字图像处理(刚萨雷斯版),导师让我用 Python 编写基于拉普拉斯算子的图像锐化,并且是在不直接调用OpenCV的情况下,由于现 ...

最新文章

  1. 手动部署OpenStack环境(六:出现的问题与解决方案总结)
  2. mybatis中的resultMap与resultType、parameterMap与 parameterType的区别
  3. C++三种内存分配方式
  4. linux32内核下载rpm,Vivaldi TP4 for Linux Rpm (32bit)
  5. charles 抓包 (二)
  6. 【Android Developers Training】 68. 序言:添加动画
  7. leetcode day1 -- Reverse Words in a String Evaluate Reverse Polish Notation Max Points on a Li
  8. Spring Aop面向切面编程自动注入
  9. 结合传统与数字技术,构建逼真的机械设计
  10. 使用PLSQL developer编辑数据
  11. API设计原则 - Qt官网的设计实践总结
  12. 根据时间戳生成编号_分布式系统的唯一ID生成算法对比
  13. linuxc网络通信
  14. 基于python的在线考试系统-Python在线考试系统防作弊功能的思路和实现
  15. 7.数据中台 --- 数据开发:数据体系建设
  16. 谈谈计算机专业职业技能,计算机专业职业技能论文
  17. 大前端课程学习心得体会+学习笔记
  18. R语言编程 R语言作业
  19. android设备如何挂载sdcard(有些设备是自动挂载的)
  20. c语言求解线性方程组ax=b,用C语言求解N阶线性矩阵方程Ax=b的简单解法

热门文章

  1. Java面向对象实验 8 ——图形用户界面设计
  2. web安全之Webshell管理工具
  3. hp t410微型计算机使用,HP 发表新款 t410 AIO Smart Zero 精简型电脑,仅需网络线即可作为电源驱动使用(影片)...
  4. 将一个长字串分拆为多条记录
  5. oracle asm密码是什么,ASM有自己的参数、密码、alert、监听文件
  6. oracle12c口令文件,学习笔记:Oracle 12C ASM 新特性 共享密码文件
  7. 【Java】自建IOS应用(IPA)发布服务器
  8. python halcon_HALCON高级篇:常用分类器及其特点
  9. 【将百分制转换成五分制】
  10. 基于单片机的语音风扇的设计与实现