图像处理中泊松分布的应用

2015-07-24 14:58:16 mao0514 阅读数 3663

数学基础:

什么是泊松噪声,就是噪声分布符合泊松分布模型。泊松分布(Poisson Di)的公

式如下:


关于泊松分布的详细解释看这里:http://zh.wikipedia.org/wiki/泊松分佈

关于高斯分布与高斯噪声看这里:

http://blog.csdn.net/jia20003/article/details/7181463

 二:程序实现

以前在图像加噪博文中现实的加高斯噪声,比较复杂。是自己完全实现了高斯随

机数的产生,这里主要是利用JAVA的随机数API提供的nextGaussion()方法来得

到高斯随机数。泊松噪声为了简化计算,Google到一位神人完成的C++代码于是

我翻译成Java的。

三:程序效果


滤镜源代码:

  1. package com.gloomyfish.filter.study;  
  2.   
  3. import java.awt.image.BufferedImage;  
  4. import java.util.Random;  
  5.   
  6. public class NoiseAdditionFilter extends AbstractBufferedImageOp {  
  7.     public final static double MEAN_FACTOR = 2.0;  
  8.     public final static int POISSON_NOISE_TYPE = 2;  
  9.     public final static int GAUSSION_NOISE_TYPE = 1;  
  10.     private double _mNoiseFactor = 25;  
  11.     private int _mNoiseType = POISSON_NOISE_TYPE;  
  12.       
  13.     public NoiseAdditionFilter() {  
  14.         System.out.println("Adding Poisson/Gaussion Noise");  
  15.     }  
  16.       
  17.     public void setNoise(double power) {  
  18.         this._mNoiseFactor = power;  
  19.     }  
  20.       
  21.     public void setNoiseType(int type) {  
  22.         this._mNoiseType = type;  
  23.     }  
  24.       
  25.     @Override  
  26.     public BufferedImage filter(BufferedImage src, BufferedImage dest) {  
  27.         int width = src.getWidth();  
  28.         int height = src.getHeight();  
  29.         Random random = new Random();  
  30.         if ( dest == null )  
  31.             dest = createCompatibleDestImage( src, null );  
  32.   
  33.         int[] inPixels = new int[width*height];  
  34.         int[] outPixels = new int[width*height];  
  35.         getRGB( src, 00, width, height, inPixels );  
  36.         int index = 0;  
  37.         for(int row=0; row<height; row++) {  
  38.             int ta = 0, tr = 0, tg = 0, tb = 0;  
  39.             for(int col=0; col<width; col++) {  
  40.                 index = row * width + col;  
  41.                 ta = (inPixels[index] >> 24) & 0xff;  
  42.                 tr = (inPixels[index] >> 16) & 0xff;  
  43.                 tg = (inPixels[index] >> 8) & 0xff;  
  44.                 tb = inPixels[index] & 0xff;  
  45.                 if(_mNoiseType == POISSON_NOISE_TYPE) {  
  46.                     tr = clamp(addPNoise(tr, random));  
  47.                     tg = clamp(addPNoise(tg, random));  
  48.                     tb = clamp(addPNoise(tb, random));  
  49.                 } else if(_mNoiseType == GAUSSION_NOISE_TYPE) {  
  50.                     tr = clamp(addGNoise(tr, random));  
  51.                     tg = clamp(addGNoise(tg, random));  
  52.                     tb = clamp(addGNoise(tb, random));  
  53.                 }  
  54.                 outPixels[index] = (ta << 24) | (tr << 16) | (tg << 8) | tb;  
  55.             }  
  56.         }  
  57.   
  58.         setRGB( dest, 00, width, height, outPixels );  
  59.         return dest;  
  60.     }  
  61.       
  62.     private int addGNoise(int tr, Random random) {  
  63.         int v, ran;  
  64.         boolean inRange = false;  
  65.         do {  
  66.             ran = (int)Math.round(random.nextGaussian()*_mNoiseFactor);  
  67.             v = tr + ran;  
  68.             // check whether it is valid single channel value  
  69.             inRange = (v>=0 && v<=255);   
  70.             if (inRange) tr = v;  
  71.         } while (!inRange);  
  72.         return tr;   
  73.     }  
  74.   
  75.     public static int clamp(int p) {  
  76.         return p > 255 ? 255 : (p < 0 ? 0 : p);  
  77.     }  
  78.       
  79.     private int addPNoise(int pixel, Random random) {  
  80.         // init:  
  81.         double L = Math.exp(-_mNoiseFactor * MEAN_FACTOR);  
  82.         int k = 0;  
  83.         double p = 1;  
  84.         do {  
  85.             k++;  
  86.             // Generate uniform random number u in [0,1] and let p ← p × u.  
  87.             p *= random.nextDouble();  
  88.         } while (p >= L);  
  89.         double retValue = Math.max((pixel + (k - 1) / MEAN_FACTOR - _mNoiseFactor), 0);  
  90.         return (int)retValue;  
  91.     }  
  92.   
  93. }  
2015-12-15 19:19:04 qq_18343569 阅读数 9506
泊松分布的概率函数为:
泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生率。 泊松分布适合于描述单位时间内随机事件发生的次数。
clc,clear,close all
warning off
feature jit off
im = imread('coloredChips.png');
Z1 = imnoise_poission(im,size(im,1),size(im,2),0.3);
Z1 = im2uint8(Z1);   % 类型转换
figure('color',[1,1,1]),
im(:,:,1) = im(:,:,1) + Z1;  % R
im(:,:,2) = im(:,:,2) + Z1;  % G
im(:,:,3) = im(:,:,3) + Z1;  % B
subplot(121); imshow(im);title('加泊松分布噪声图像')
subplot(122); imhist(Z1); title('加泊松分布噪声图像直方图')


function R = imnoise_poission(im,M, N, lamda)
% input:
%       泊松poission分布,噪声的类型;
%       M,N:输出噪声图像矩阵的大小
%       a,b:各种噪声的分布参数
% output:
%       R: 输出的噪声图像矩阵,数据类型为double型
% 设定默认值
if nargin < 4
   lamda = 0.5;
end
   % 产生poission分布噪声
   for i = 1:M
       for j=1:N
           b=1;
           c = double( floor(im(i,j)/30)+1 );
           for k =1:c
               b=b*k;
           end
           R(i,j) = exp(-lamda).*lamda.^(c)./b;
       end
   end
end


2010-01-27 00:00:00 baimafujinji 阅读数 33610

引言

数学无疑是现代数字图像处理技术的一个重要基石,一些效果显著的同时也非常popular的图像处理技术中大量地借鉴和利用了经典数学理论中的一些著名的成果。尽管这些经典数学理论在其原有场景中的意义与其在图像处理技术中的应用二者之间的关系并没有那么obvious!泊松方程(Poisson Equation)在泊松图像编辑(Poisson Image Editing)以及泊松融合(Poisson Matting)中的应用就是一个典型的例子。

西莫恩·德尼·泊松(Siméon-Denis Poisson)是十九世纪法国著名数学家,曾经师从拉普拉斯和拉格朗日两位大师学习数学,数学中许多重要的概念(例如泊松分布、泊松积分、泊松方程 … …) 都以他的名字命名。 

自然科学与工程技术中种种运动发展过程与平衡现象各自遵守一定的规律。这些规律的定量表述一般地呈现为关于含有未知函数及其导数的方程。我们将只含有未知多元函数及其偏导数的方程,称之为偏微分方程(PDE)。椭圆方程是工程技术应用中所涉及的偏微分方程里最为普遍的一种形式。根据椭圆方程的具体形式又可以将其分为以下三种形式,即拉普拉斯方程、泊松方程和亥姆霍兹方程。更多偏微分方程的知识,你可以参考由厦门大学谭忠教授主讲的中国大学MOOC公开课[1]。这里,我们重点关注的是泊松方程(二维情况下):


因为关于泊松方程之于图像处理的应用,已经有多篇重要论文发表于国际定义学术会议之上,例如文献[2]、[3]和[4]。但是由于很多图像方面的初学者对于偏微分方程比较陌生,导致在面对泊松融合或泊松图像编辑方面的话题时仍然感觉难度较大。

事实上,所有的偏微分方程都不是无中生有的,而是从现实物理现象中抽象出来的数学表达。要深刻理解图像处理中泊松方程的应用,一方面我们应该从经典物理问题中导出泊松方程为什么是上面给出的那种形式(或者说它的物理意义到底是什么),另外一方面我们还要建立一种从经典物理(或者纯数学的)泊松方程到其之于图像处理中应用的桥梁。微软亚洲研究院前院长沈向洋博士(他同时也是ACM fellow 和IEEE fellow)的一份讲稿[5]很好地解决了上述两个问题。本文相当于是对上述文献的一种解读,如果你感觉自己可以非常轻松地读懂沈博士的演示文稿,大可不必费时间在本文上。

泊松方程的推导

经典物理中,引力场和电场都可以导出泊松方程(沈博士的PPT中都有提及),我们将从前者(即引力场)角度来推导泊松方程。牛顿的万有引力定律指出,任意两个质点有通过连心线方向上的力相互吸引。该引力大小与它们质量的乘积成正比与它们距离的平方成反比,即


其中,G=6.67×10-11 N⋅m2⋅kg-2是万有引力常数,m1和m2分别是两个物体的质量,r是两个物体之间的距离。

在三维空间中,可以用向量将上述万有引力定律改写为如下形式


这里的fx1fy1fz1分别是作用于物体m1上的引力向量f1在x、y和z三个方向上的分量。两个物体在空间中的坐标分别为(x1,y1,z1)和(x2,y2,z2)。
根据牛顿第二运动定律,F=ma,可知物体m1感受到的重力加速度向量g1在x、y和z三个方向上的分量gx1gy1gz1分别为


单位质量的重力势能Φ,单位是焦耳/千克,代表一个给定部位每个单位质量的势能的总和,与局部质量和周围质量的相互作用有关。对于Φ的另一个解释是用来将一个单位的质量从一个地点移至无穷远(与其他质量无相互作用)所需要的工作量的总和。因为这个工作量总是为正数,所以势能总和与重力势能在无穷远处为最大。相对重力势能(相比无穷远处的势能变化)则总是为负数。

单位质量的重力势能在空间坐标系的局部导数等同于相应的重力加速度向量的分量,即

上式中等号右边的负号反映了重力势能的增加与局部重力引力的方向相反,即只有与局部重力势能相反方向的力才能增加重力势能。
做功是指能量由一种形式转化为另一种的形式的过程。当一个外力作用在物体上时,功的大小就定义为作用在物体位移方向上的力与物体位移的乘积。进而有


其中dΦx,dΦy和dΦz是每个单位质量中由于相应坐标的微小变化(dx,dy,dz)引起的重力势能的增加。

根据牛顿万有引力定律,一个连续介质中某个给定点的由于周围物体的引力而感受到的重力加速度g=(gxgy, gz )是由每个小物体δmi导致的加速度累加而成的(积分),即

其中,

xi、yi和zi分别是第i个物质元素的坐标,而ri是这个元素和给定点之间的距离。

根据拉普拉斯算子的定义,可得

再根据前面已经得到的公式,可以得出


而根据散度公式,同样可以得到加速度场的散度表达式为




gxgygz的表达式的表达式带入,可得

注意ri也是关于x、y和z的函数,于是根据两个函数商的求导法则,以及复合函数求导法则可得

于是有

注意这里的微分是针对给定点的坐标x、y和z完成的,而不是取决于那些于x、y和z无关的周围的质量(xi, yi, zi)。对于所有ri≠0的情况,上述方程的值显然为0。这意味着一个给定点的重力加速度的散度与周围质量无关,并且必须来自于它自身。
现在将积分的体积缩小至质量为δm,半径为δr的小球体,如下图所示。这个小球体的加速度的散度可以由图中A、B、C、D、E和F六个点之差近似获得

也即


这里的gxA~gzF是球体表面不同点的相应的加速度向量的分量。因为小球体中的物质是均一的,所以球体内部的密度被认为是个常数。因此,这六个点的向量均指向球体中心,并且可以由通用的球体引力公式得到

结合万有引力定律,考虑到体积为V=4πδr3/3的球体中的平均密度为ρ=δm/V=3δm/4πδr3,在δr趋近于零的条件下,可以得到泊松方程

应该注意到我们的推导是被简化的,并且用了球体表面的引力加速度的标准描述。高斯定理的基本原理也显示了不仅仅是一个球形,任意形状的局部物质都会得到相同的泊松公式。在一个连续媒介中,密度的分布与此媒介中重力场紧密相关。根据前面的推导,泊松方程就可用以表述此种关系。也就是说,泊松方程描述了一个自主受力的连续体中的重力势能的空间变化



其中,ρ(x,y,z)是空间密度函数。

图像的泊松编辑

前面推导出了引力加速度场中的泊松公式,各物理量的关系下图所示,下面将这其中的概念平行地转移到数字图像中。理解其中的对应关系是非常有意义的。这部分的讨论综合运用了许多数学知识,除了场论中的哈密尔顿算子和拉普拉斯算子以外,变分法基本方程在这部分的理论推导中也占据着非常重要的位置。


对于一组数字信号而言,它的能量在时域上主要是指它的振幅。而这种振幅对应到图像中,其实就是指各像素的灰度值。所以一幅图像的势能对应的就是原图像自身。对势能求梯度,可以得到相应的场。在图像处理中,可以利用哈密尔顿算子计算原图像的梯度结果,所以这里的场对应的就是图像梯度(注意这里有一个负号)。同理,利用拉普拉斯算子处理原图像,相应得到的就是密度图像。这些概念的对应关系如下图所示。注意到此图中的梯度图像有两张,这是因为可以对原图从水平和垂直两个方向计算梯度。


泊松方程之于图像处理的一个重要应用就是进行图像合成。图像合成是图像处理的一个基本问题,其通过将源图像中一个物体或者一个区域嵌入到目标图像生成一个新的图像。在对图像进行合成的过程中,为了使合成后的图像更自然,合成边界应当保持无缝。但如果原图像和目标图像有着明显不同的纹理特征,则直接合成后的图像会存在明显的边界。针对此问题,法国学者帕特里克·佩雷斯(Patrick Pérez)等提出了一种利用构造泊松方程求解像素最优值的方法,在保留了源图像梯度信息的同时,可以很好的融合源图像与目标图像的背景。该方法根据用户指定的边界条件求解一个泊松方程,实现了梯度域上的连续,从而达到边界处的无缝融合。


泊松图像编辑的主要思想是,根据原图像的梯度信息以及目标图像的边界信息,利用插值的方法重新构建出和成区域内的图像像素。如图上所示,其中u表示原图像中被合成的部分,V是u的梯度场,S是合并后的图像,Ω是合并后目标图像中被覆盖的区域,∂Ω是其边界。设合并后图像在Ω内的像素值由 f 表示,在外的像素值由 f*表示。
注意到图像合并的要求是使合并后的图像看上去尽量的平滑,没有明显的边界。所以,Ω内的梯度值应当尽可能的小。因此,f 的值可以由下式确定

面对上述积分型极值问题,显然需要使用变分法。在所讨论的问题中,被积函数为


带入二维的欧拉-拉格朗日方程,则有


显然F的表达式中不含有f,所以∂F/∂f=0,另外还有


于是得到


另一方面,如果我们要求插入后的图像保持插入图像本身的纹理信息,但是在边界上看不到明显的处理痕迹,此种约束下的优化问题可以表示为


显然,为了使合并后的图像中的Ω区域尽量接近于u,这里利用u的梯度场V作为求解式的引导场。合并后图像在Ω内的像素值f的梯度与u的梯度越接近,就表示原始纹理保持得越好。此时被积函数为


再次应用欧拉-拉格朗日方程,其中


于是得到


再回忆一下之前介绍的散度知识。散度是个标量,对于一个向量场 F=P(x,y)i+Q(x,y)j,它的散度记为div F(或∇∙F),并且有


并可以从散度的角度来定义拉普拉斯算子,此时拉普拉斯算子定义为梯度的散度,即


所以对于二维空间, f 是关于x和y函数,则∆f为


所以原式可以写成下列泊松方程的形式


再回过头看之前的图示,可见上式的物理意义是非常明晰的,即

这也就是泊松图像编辑(Poisson Image Editing)[2] 和泊松图像融合(Poisson Matting)[3] 的共同的数学基础。请注意,这一部分内容主要在文献【2】中被首次提出,而在文献【3】中提出的Poisson Matting涉及到求解alpha值的问题,但其本质仍然是上面我们所分析和介绍的这部分内容,理解上述原理对于正确解读文献【3】至关重要。


 

参考文献

【1】 厦门大学偏微分方程公开课(谭忠教授主讲) 
【2】 P. Pérez, M. Gangnet, and A. Blake, Poisson Image Editing. SIGGRAPH 2003. 
【3】 J. Sun, J. Jia, C. K. Tang, H. Y. Shum, Poisson Matting. SIGGRAPH 2004. 
【4】 Kun Zhou, et al., Poisson Mesh Editing. SIGGRAPH 2004. 
【5】 https://wenku.baidu.com/view/a15366ec0975f46527d3e1c3.html

2019-08-04 23:05:45 weixin_42797282 阅读数 1418

基本概念

随机变量

随机变量这个是概率学中的一个基本概念,在实际问题中有的试验结果本身就是数量表示,有的结果却不行,比如掷骰子,试验结果有6个,可以记为1,2,3,4,5,6。但另如抛硬币正反面,结果看似跟数值毫无关系,我们一般会做一个对应的处理,引进一个变量,当硬币正面记为0,反面记为1.简单的说就是将试验结果数值化将结果用一个变量表示,这个变量就叫随机变量。

连续随机变量与离散随机变量

随机变量又分为连续的和离散的,其实二者很好区分,离散随机变量就是在一定区间内只能取到有限的试验结果,比如抛硬币只有正面和反面,掷骰子只有6种结果。而对应的连续随机变量就是在一定区间内能取到无限多个值,比如说随机变量是用来表示身高,体重等等

古典概率

古典概率又叫传统概率,如果一个随机试验,它的结果是有限的,而且每一种情况都是相互排斥的,发生的概率都是一样的,我们通常称这种这种条件下的概率模型就叫古典概型。

条件概率

条件概率也叫后验概率,即若已知道事件B发生了求发生事件A的概率记做P(A|B)。条件概率公式P(A|B)=P(AB)/P(B)

期望值

大家通常很容易把期望值和均值混淆,虽然这两个都是平均的概念在里面但是他们有本质上的区别。均值是针对某一次实验的实验结果进行相加后平均所得到的,而期望则是概率论概念,是一个数学特征,不进行实验可以求出来。它是每一种实验结果*概率相加后得到的。均值和期望的联系也是大数定理联系起来的。随着重复次数接近无穷大,数值的算术平均值几乎肯定地收敛于期望值

离散变量概率分布

伯努利分布

伯努利试验是单次随机试验,又名两点分布或者0-1分布,是一个离散型概率分布,只有"成功(值为1)发生的概率记为p"或"失败(值为0)发生的概率记为q"这两种结果,q+p=1,是由瑞士科学家雅各布·伯努利(1654 - 1705)提出来的。

在这里插入图片描述
在这里插入图片描述

二项分布

二项分布就是多次伯努利实验重复进行,在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,每一次实验与其它各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变,则这一系列试验总称为n重伯努利实验,当试验次数为1时,二项分布服从0-1分布。
用ξ表示随机试验的结果。如果事件发生的概率是P,则不发生的概率q=1-p,N次独立重复试验中发生K次的概率是

P(ξ=K)= C(n,k) * p^k * (1-p)^(n-k)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

泊松分布

泊松分布主要用于描述单位时间内随机事件发生的次数的概率分布。如某时间段排队的人数,某时间机器的故障数。泊松分布的概率密度函数为
在这里插入图片描述
其中λ为单位时间内随机事件发生的次数。

正态分布

若随机变量服从一个位置参数为、尺度参数为的概率分布,且其概率密度函数为

在这里插入图片描述
则这个随机变量就称为正态随机变量,正态随机变量服从的分布就称为正态分布,正态分布是一种最常见的,连续型分布。
当 均值μ=0,σ=1时,正态分布就成为标准正态分布其概率密度函数为

在这里插入图片描述
它的图像是有"两头小,中间大的特点是关于期望值μ对称的一个图形"
在这里插入图片描述

为了便于描述和应用,常将正态变量作数据转换。将一般正态分布转化成标准正态分布。
在这里插入图片描述

2015-02-11 18:57:48 gggg_ggg 阅读数 6374


对于有些人,看这些枯燥的公式符号是件痛苦的事情;但痛苦后总会有所欣喜,如果你充分利用它的话,你更能体会到他的美妙;先来几张效果图,激发你学习数学的欲望:

                  注释:图像融合效果,分别应用了不同的算法

在图像图形处理中, 梯度、散度和旋度 有很重要的作用,比如图像修复中的解泊松方程,目标跟踪等等,可以说是他们无处不在。

来句废话:可能有些人,对于数学符号里面倒三角 正三角 符号的意思?与读法感到迷惑,现稍作解释;

△一般指拉普拉斯算子

▽读Nabla,奈不拉,也可以读作“Del” 这是场论中的符号,是矢量微分算符.高等数学中的梯度,散度,旋度都会用到这个算符.其二阶导数中旋度的散度又称Laplace算符


继续核心内容:

梯度、散度和旋度是矢量分析里的重要概念。之所以是“分析”,因为三者是三种偏导数计算形式。这里假设读者已经了解了三者的定义。它们的符号分别记作如下:

梯度、散度和旋度                                 

                                 

                                

从符号中可以获得这样的信息:

求梯度是针对一个标量函数,求梯度的结果是得到一个矢量函数。这里φ称为势函数

求散度则是针对一个矢量函数,得到的结果是一个标量函数,跟求梯度是反一下的;

求旋度是针对一个矢量函数,得到的还是一个矢量函数。

这三种关系可以从定义式很直观地看出,因此可以求“梯度的散度”、“散度的梯度”、“梯度的旋度”、“旋度的散度”和“旋度的旋度”,只有旋度可以连续作用两次,而一维波动方程具有如下的形式

梯度、散度和旋度                               (1)

其中a为一实数,于是可以设想,对于一个矢量函数来说,要求得它的波动方程,只有求它的“旋度的旋度”才能得到。下面先给出梯度、散度和旋度的计算式:

梯度、散度和旋度                         (2)

梯度、散度和旋度                          (3)

梯度、散度和旋度                           (4)

旋度公式略显复杂。这里结合麦克斯韦电磁场理论,来讨论前面几个“X度的X度”。

 

I.梯度的散度:

根据麦克斯韦方程有:

梯度、散度和旋度                                  

梯度、散度和旋度                                  (5)

则电势的梯度的散度为

梯度、散度和旋度                            

这是一个三维空间上的标量函数,常记作

梯度、散度和旋度                                 (6)

称为泊松方程,而算符2称为拉普拉斯算符。事实上因为定义

梯度、散度和旋度                                

所以有

梯度、散度和旋度                               

当然,这只是一种记忆方式。

当空间内无电荷分布时,即ρ=0,则称为拉普拉斯方程

梯度、散度和旋度                                      

当我们仅需要考虑一维情况时,比如电荷均匀分布的无限大平行板电容器之间(不包含极板)的电场,我们知道该电场只有一个指向,场强处处相等,于是该电场满足一维拉普拉斯方程,即

梯度、散度和旋度                                     

这就是说如果那边平行板电容器的负极板接地,则板间一点处的电压与该点距负极板的距离呈线性关系。

 

II.散度的梯度:

散度的梯度,从上面的公式中可以看到结果会比较复杂,但是它的物理意义却是很明确的,因为从麦克斯韦方程可以看出空间某点处电场的散度是该点处的电荷密度,那么再求梯度就是空间中电荷密度的梯度。这就好比说清水中滴入一滴红墨水,起初水面红色浓度最高,杯底浓度最低,这样水面与杯底形成一个浓度梯度,红墨水由水面向杯底扩散,最后均匀。在半导体中,载流子分布的不均匀会导致扩散电流。

散度的梯度这个概念其实不常用,因为计算复杂,但在后面讲用它来推导一个矢量恒等式。

 

III.梯度的旋度:

对于梯度的旋度,直接把(2)式代入(4)式中,有

梯度、散度和旋度

由于势函数在空间一点的领域内往往是有二阶连续混合偏导数的,因此上式的结果为0.所以说梯度的旋度为零,它的物理意义也是很明确的。

比如一个人从海平面爬到一座山上,无论它是从山的陡坡爬上去还是从缓坡爬上去,亦或者坐直升机上去,重力对他所做的功总是相等的,即力场的做工只与位移有关而与路径无关,这样的场称为保守场,而保守场是无旋场。再比如绘有等高线的地图,如果某点只有一个一根等高线穿过,那么该点有一个确定的相对高度。如果该点有两条或以上的等高线穿过,则这个点处在悬崖边上,这个点处是不可微,也就没有求梯度的意义。

 

IV.旋度的散度:

求旋度的散度也是将(4)式代入(3)式即可。若令

梯度、散度和旋度                            (7)

梯度、散度和旋度                                      

                                

                                

从而

梯度、散度和旋度                                   

                             

                             

将上面三式相加结果也为零。所以说旋度的散度为零,这就意味着一个散度场任意叠加上一个有旋场不会改变其散度,也就是说光凭矢量场的散度无法唯一地确定这个矢量场。而光凭矢量场的旋度也无法唯一地确定这个矢量,这是因为有旋场可以叠加上这么一个矢量场而不改变其旋度,而这个矢量场是一个标量函数的梯度。

 

V.旋度的旋度:

旋度的旋度将是本文的重点。若所研究的空间范围内是无源的,即ρ=0J=0,则根据麦克斯韦方程有:

梯度、散度和旋度                                (8)

梯度、散度和旋度                             (9)

梯度、散度和旋度                                   (10)

梯度、散度和旋度                               (11)

(9)式两端取旋度

梯度、散度和旋度                          (12)

再将(8)式代入(12)式有

梯度、散度和旋度                             (13)

看到这里容易让人想到式(1),前面说式(1)的方程为一维波动方程,那么跟(13)式有什么联系呢?棘手的问题是算旋度已经够复杂了,算旋度的旋度岂不是更费周折?幸好有矢量恒等式可以利用来帮助简化计算,这里要用到前面所讲的散度的梯度。即有:

梯度、散度和旋度                          (14)

这里拉普拉斯算子作用于一个矢量函数时,意义变得不明确了,它和前面的几个“X度的X度”都不一样,实际上它有这样的定义:

梯度、散度和旋度                        (15)

为了验证式(14)还是要对计算“旋度的旋度”,但以后可以直接利用该式。还是做(7)式那样的处理,即令

梯度、散度和旋度                                

梯度、散度和旋度                                    

                              

                              

于是

梯度、散度和旋度               (16)

而令

梯度、散度和旋度                                     

梯度、散度和旋度             (17)

两式相减有

梯度、散度和旋度               (18)

类似地有

梯度、散度和旋度                                    

梯度、散度和旋度                                    

由于所关心的空间内是无源的,所以式(13)变成

梯度、散度和旋度                             (19)

这个方程很重要,称为三维波动方程,这也从理论上揭示了电磁波的存在。它的各分量展开后比较复杂,实际上我们无法绘制出一个向四面八方传播的波的振动图像,但好在可以画出一维和二维的波,从而了解波的性质。有些事物我们无法在现实世界中呈现,或绘制出图形,但是数学上却可以计算且有确切的物理意义,比如高于三维的空间,不得不感叹数学的神奇,感叹我们生活的世界的神奇。

 

VI.几个矢量恒等式:

前面已经介绍了一个矢量恒等式,还有其他几个重要的恒等式。由于三种“度”是三种不同微分算法,虽然有些场合可以把▽当做一个普通的矢量来处理,但并不总是正确的,这一点需要引起注意。

梯度、散度和旋度

 

梯度、散度和旋度

 

梯度、散度和旋度

 

这里“×”乘的优先级高于“·”乘对于普通三个不共面的矢量ABC则有A·B×C=C·A×B=B·C×A。得到的结果是令三个矢量共起点,以三个矢量的模为棱构成的六面体的体积或它的负值。但是对于▽算子,则一般

   梯度、散度和旋度                                

但是一般有

梯度、散度和旋度                                

实际上上面的矢量恒等式就是上式的扩展

梯度、散度和旋度

梯度、散度和旋度

上两式相减有

梯度、散度和旋度

记忆上式的方法是记住下标的顺序是xyzyzxzxy

 

梯度、散度和旋度

 

这个等式相对容易证明,但前提是要在直角坐标下。

梯度、散度和旋度