物理学中把某个物理量在空间一个区域内的分布称为场。从各种场的取值性质来看可以分成两大类,一类是每个点对应一个数值,这种场统称为标量场,如温度场、密度场等;另一类是每 个点对应一个向量,这种场称为向量场,如引力场、梯度场、电场、磁场等。场本身的性质与坐标选择无关,但对各种场的分析和计算应该选择适当的坐标系,本章均以直角坐标系为例,分析场的梯度、散度和旋度等特性。同时,详细介绍标量场的梯度、矢量场的散度和旋度的MATLAB处理方法。


一、场的数学模型和物理模型

场(field)在数学上是指一个向量到另一个向量或数的映射。一般的,在常规的有关电磁学的物理研究中,我们所谈论的场,实质上是一个(二维)三维空间中的点对实数集和(二维)三维实向量的映射。对实数集的映射,称之为标量场(也叫作标量函数),对向量(又名矢量)的映射称之为矢量场(矢量函数)。物理上,场是指(一个或者一族)物理量在空间中分布的状况的综合,这种综合同样被看作是一种物质。在量子力学的语境下,这样的综合是物质的一般形式,因为它的主要研究对象就是物质(量子系统)的“概率分布场”。

“在物理里,(英语:Field)是一个以时空为变数的物理量。空间中弥漫着的基本相互作用被命名为“场”。[1]场可以分为标量场、矢量场和张量场等,依据场在时空中每一点的值是标量、矢量还是张量而定。例如,经典重力场是一个矢量场:标示重力场在时空中每一个的值需要三个量,此即为重力场在每一点的重力场矢量分量。更进一步地,在每一范畴(标量、矢量、张量)之中,场还可以分为“经典场”和“量子场”两种,依据场的值是数字或量子算符而定。

场被认为是延伸至整个空间的,但实际上,每一个已知的场在够远的距离下,都会缩减至无法量测的程度。例如,在牛顿万有引力定律里,重力场的强度是和距离平方成反比的,因此地球的重力场会随着距离很快地变得不可测得(在宇宙的尺度之下)。

定义场是一个“空间里的数”,这不应该减损场在物理上所有的真实性(如定义“质量”为秤上的数字)。“场占有空间。场含有能量、动量。场的存在排除了真正的真空。”[2]真空中没有物质,但并不是没有场的。场形成了一个“空间的状态”[3]

当一个电荷移动时,另一个电荷并不会立刻感应到。第一个电荷会感应到一个反作用力,并获得动量,但第二个电荷则没有感应,直到第一个电荷移动的影响以光速传递到第二个电荷那里,并给予其动量之后。场的存在解决了关于第二个电荷移动前,动量存在在哪里的问题。因为依据动量守恒定律,动量必存在于某处。物理学家认为动量应该存在于场之中。如此的认定让物理学家们相信电磁场是真实的存在,使得场的概念成为整个现代物理的范式。”——维基百科语。

为了运用微积分以及更为复杂的数学工具研究场的细节性质和整体性质,人们给出了如下定义:

梯度:

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

定义一个三元标量函数(三维空间的标量场)

,对于空间中的每一点
(
为定义域或者说场存在的区域),都可以定义出一个矢量
,称为函数
在点
的梯度,记做grad

grad

,这里

散度:

散度(divergence)可用于表征空间各点矢量场发散的强弱程度,物理上,散度的意义是场的有源性。当div F>0 ,表示该点有散发通量的正源(发散源);当div F<0 表示该点有吸收通量的负源(洞或汇);当div F=0,表示该点无源。

定义散度,实际上是借助通量这一概念来定义的。要定义通量,必须引入面元矢量这一概念。

为一个包含体积
的闭合空间曲面,
为曲面
上的面元矢量,满足:
。定义矢量
的内积
为通过面元矢量
的通量,则散度可定义为:

旋度:

旋度是向量分析中的一个向量算子,可以表示三维向量场对某一点附近的微元造成的旋转程度。 这个向量提供了向量场在这一点的旋转性质。旋度向量的方向表示向量场在这一点附近旋转度最大的环量的旋转轴,它和向量旋转的方向满足右手定则。旋度向量的大小则是绕着这个旋转轴旋转的环量与旋转路径围成的面元的面积之比。举例来说,假设一台滚筒洗衣机运行的时候,从前方看来,内部的水流是逆时针旋转,那么中心水流速度向量场的旋度就是朝前方向外的向量。

百度百科上引用的旋度定义(知乎手打公式太麻烦啦不干啦)

拉普拉斯算子:

在计算梯度时用到了一个算符称为Nabla算子,记为

,拉普拉斯算子

通过推导,可以证明


标量场的可视化

plot函数:

 plot   Linear plot. plot(X,Y) plots vector Y versus vector X. If X or Y is a matrix,then the vector is plotted versus the rows or columns of the matrix,whichever line up.  If X is a scalar and Y is a vector, disconnectedline objects are created and plotted as discrete points vertically atX.plot(Y) plots the columns of Y versus their index.If Y is complex, plot(Y) is equivalent to plot(real(Y),imag(Y)).In all other uses of plot, the imaginary part is ignored.Various line types, plot symbols and colors may be obtained withplot(X,Y,S) where S is a character string made from one elementfrom any or all the following 3 columns:b     blue          .     point              -     solidg     green         o     circle             :     dottedr     red           x     x-mark             -.    dashdot c     cyan          +     plus               --    dashed   m     magenta       *     star             (none)  no liney     yellow        s     squarek     black         d     diamondw     white         v     triangle (down)^     triangle (up)<     triangle (left)>     triangle (right)p     pentagramh     hexagramFor example, plot(X,Y,'c+:') plots a cyan dotted line with a plus at each data point; plot(X,Y,'bd') plots blue diamond at each data point but does not draw any line.plot(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined bythe (X,Y,S) triples, where the X's and Y's are vectors or matrices and the S's are strings.  For example, plot(X,Y,'y-',X,Y,'go') plots the data twice, with asolid yellow line interpolating green circles at the data points.The plot command, if no color is specified, makes automatic use ofthe colors specified by the axes ColorOrder property.  By default,plot cycles through the colors in the ColorOrder property.  Formonochrome systems, plot cycles over the axes LineStyleOrder property.Note that RGB colors in the ColorOrder property may differ fromsimilarly-named colors in the (X,Y,S) triples.  For example, the second axes ColorOrder property is medium green with RGB [0 .5 0],while plot(X,Y,'g') plots a green line with RGB [0 1 0].If you do not specify a marker type, plot uses no marker. If you do not specify a line style, plot uses a solid line.plot(AX,...) plots into the axes with handle AX.plot returns a column vector of handles to lineseries objects, onehandle per plotted line. The X,Y pairs, or X,Y,S triples, can be followed by parameter/value pairs to specify additional properties of the lines. For example, plot(X,Y,'LineWidth',2,'Color',[.6 0 0]) will create a plot with a dark red line width of 2 points.Examplex = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',2,...'Markerfdgecolor','k',...'Markerfacecolor','g',...'MarkerSize',10)

示例:

x = 0:pi/1000:2*pi;            % x取值范围由0到2π,pi/1000是递增的步长
y =sin( 2*x + pi/4);          %表示y的函数表达式是sin类型
plot(x,y)

plot示例图

三维网格函数mesh

三维曲面色块函数surf

示例:

x=linspace(-2, 2, 25);         %在-2到2取25个点
y=linspace(-2, 2, 25);         %在-2到2取25个点
[xx, yy]=meshgrid(x, y);       %生成网格采样点
zz=sqrt( xx.^2 + yy.^2);      %生成矩阵Z
surf( xx,yy,zz);                %画出着色的三维曲面

mesh函数
surf函数

三维隐函数:

[X,Y,Z]=meshgrid(linspace(-10,10));       %形成网格数据(X,Y,Z)
V=X.^2+Y.^2-Z.^2;                     %形成体数据V
isosurface(X,Y,Z,V,1);                  %绘制三维隐函数图形X.^2+Y.^2-Z.^2=1
axis equal
colormap([1 0 0]);                      %改变图形颜色为红色
brighten(0.5);                          %进行增亮
camlight right;                         %设置光源位置
lighting phong;                         %设置光照模式
figure(2);
fv=isosurface(X,Y,Z,V,1);                  %计算等值面所对应的面元和顶点
p=patch(fv);                           %绘制等值面
set(p,'FaceColor','red','EdgeColor','none');    %修饰等值面
axis equal                              %等比例显示  

立体侧视图和俯视图

矢量场可视化:

采样点生成函数meshgrid

箭头表示矢量函数quiver

流线函数streamline

示例:

x=-3:1:3;
y=-2:1:2;
[X,Y]=meshgrid(x,y)

采样点矩阵
x = [0 0 0 0];
y = x;
u = [1 -1 0 0];
v = [0 0 1 -1];
quiver(x, y, u, v);

u = [1 1 1; 1 1 1];
v = u;
quiver(u, v);

流线函数streamline

三维矢量场图:

[x,y]=meshgrid(-3:.5:3,-3:.5:3);         %生成所需的网格采样点,x与y在-3到3区间
z=y.^2-x.^2;        %定义函数
[u,v,w]= surfnorm(z);         %取三维曲面的法线
quiver3(z,u,v,w) ;    %绘制三维矢量场图

三维矢量场函数quiver3

梯度:

syms x y z                    %定义符号变量
f = 2*y*z*sin(x) + 3*x*sin(z)*cos(y);     %定义函数
gradient(f, [x, y, z])              %利用符号计算函数的梯度

梯度场示意图

syms x y                        %定义符号变量
F = -(sin(x) + sin(y))^2;             %定义函数
g = gradient(F, [x, y])            %计算梯度的表达式
[X, Y] = meshgrid(-1:.1:1,-1:.1:1);    %产生网格
G1 = subs(g(1), [x y], {X,Y});     %用{X,Y}替换所有出现的[x,y],然后计算g(1)
G2 = subs(g(2), [x y], {X,Y});     %用{X,Y}替换所有出现的[x,y],然后计算g(2)
quiver(X, Y, G1, G2);       %绘制梯度对应的箭头图

等高线:

v = -2:0.2:2;          %定义向量v
[x,y]=meshgrid(v);         %利用v产生网格
z = x.* exp(-x.^2 - y.^2);     %计算网格格点上的函数值
[px,py] = gradient(z,.2,.2);       %数值方法计算梯度
figure
contour(x,y,z);         %绘制函数z的等高线
hold on;                %保持模式打开
quiver(x,y,px,py);          %绘制梯度的箭头图
hold off;               %保持模式关闭

散度:

syms x y z real  %定义符号变量
F = [ cos(x+2*y), sin(x-2*y) ];   %定义函数F
g = divergence(F,[x y])                    %求函数F的散度,符号形式
divF=matlabFunction(g);    %将散度转换为函数形式
x=linspace(-2.5,2.5,20);
[X,Y]=meshgrid(x,x);   %定义网格
Fx=cos(X+2*Y);    %F的x分量
Fy=sin(X-2*Y); %F的y分量
div_num=divF(X,Y); %散度的数值形式
pcolor(X,Y,div_num);    %绘制散度
shading interp; %差值
colorbar;   %绘制色条
hold on;    %保持绘图模式打开
quiver(X,Y,Fx,Fy,'k','linewidth',1);    %绘制箭头图

红色部分为“源”,矢量流线发散;蓝色部分为“汇(漏)”,矢量流线汇聚

旋度可视化:

计算旋度:

syms x y z
V = [x^3*y^2*z, y^3*z^2*x, z^3*x^2*y];
X = [x y z];
curl(V,X)

矢量函数V的旋度

证明:一个标量函数的梯度(函数)的旋度恒为零。

syms x y z
f = x^2 + y^2 + z^2;
vars = [x y z];
curl(gradient(f,vars),vars)

计算结果

图形:

%%计算一个余弦函数的一维拉普拉斯矩阵
syms x y z real %定义符号变量
F = [ cos(x+2*y), sin(x-2*y) ];   %定义函数F
G = curl([F,0],[x y z])                    %计算F的旋度,并赋予G
curlF=matlabFunction(G(3));    %将G的z分量,赋予curlF
x=linspace(-2.5,2.5,20);
[X,Y]=meshgrid(x,x);   %定义网格
Fx=cos(X+2*Y);    %计算F的x分量
Fy=sin(X-2*Y); %计算F的y分量
rot=curlF(X,Y);    %计算旋度的值
pcolor(X,Y,rot);    %绘制旋度
shading interp; %颜色做插值
colorbar;   %绘制色条
hold on;    %保持模式打开
quiver(X,Y,Fx,Fy,'k','linewidth',1);    %绘制箭头图,并设置颜色为黑色,线宽为1
%%
syms x y z
V = [x^2*y, y^2*z, z^2*x];
vars = [x y z];
gradient(divergence(V,vars)) - curl(curl(V,vars),vars)

只显示Z方向上的旋度的结果:顺时针散度小于零,逆时针散度大于零

拉普拉斯运算的可视化:

矢量函数的拉普拉斯运算:

syms x y z
V = [x^2*y, y^2*z, z^2*x];
vars = [x y z];
gradient(divergence(V,vars)) - curl(curl(V,vars),vars)

del2函数:有限差分法对拉普拉斯算子的拟合:

一维拉普拉斯矩阵:

x = linspace(-2*pi,2*pi);  %定义x向量
U = cos(x);    %计算cos(x)
L = 4*del2(U,x);   %计算U的拉普拉斯,注意系数4
plot(x,U,x,L)       %画出U和U的拉普拉斯曲线
legend('U(x)','L(x)','Location','Best') %给出图例

本质上就是求二阶导

多元函数:

[x,y] = meshgrid(-5:0.25:5,-5:0.25:5);   %定义函数在x,y方向的区域
U = 1/3.*(x.^4+y.^4);                %定义函数U
h = 0.25;         %U中各点的间距在所有方向上都相等,所以可以指定一个间距h
L = 4*del2(U,h);  %计算U的拉普拉斯变换
surf(x,y,L);
grid on;
title('Plot of $Delta U(x,y) = 4x^2+4y^2$','Interpreter','latex')
xlabel('x');
ylabel('y');
zlabel('z');
view(35,14);

matlab中表示拉普拉斯分布_CHAPT1:场论;电磁学和微波学的基本的数学手段和表示...相关推荐

  1. matlab中表示拉普拉斯分布_神奇的正态分布

    在统计学中有各种各样的分布,称为统计分布,例如有离散型的伯努利分布.二项分布.超几何分布.几何分布.负二项分布.泊松分布,有连续型的均匀分布.指数分布.t分布.卡方分布.F分布.正态分布等等,其中正态 ...

  2. matlab中表示拉普拉斯分布_拉普拉斯分布的随机数

    一.功能 产生拉普拉斯分布的随机数. 二.方法简介 1.产生随机变量的组合法 将分布函数\(F(x)\)分解为若干个较为简单的子分布函数的线性组合 \[F(x)=\sum_{i=1}^{K}p_{i} ...

  3. matlab中表示拉普拉斯分布_分布拟合——正态/拉普拉斯/对数高斯/瑞利 分布

    作者:桂. 时间:2017-03-16  20:30:20 声明:欢迎被转载,记得注明出处~ 前言 本文为曲线与分布拟合的一部分,主要介绍正态分布.拉普拉斯分布等常用分布拟合的理论推导以及代码实现. ...

  4. matlab中表示拉普拉斯分布_深度优化局部拉普拉斯金字塔滤波器。

    微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识 觉得文章有用,请戳底部[好看]支持 算法概述 基于局部拉普拉斯金字塔的Edge-aware滤波器是在2011年由Adobe 公司的研究 ...

  5. matlab中表示拉普拉斯分布_双导体球在匀强外电场中的空间电场分布

    导体球或球壳在匀强外电场中的场强分布是电动力学中的经典题目,也是大家所熟悉的题目,但均匀电场中出现两个导体球或球壳(二聚体)时的场强却少有讨论.两导体球电极化所引起的导体球间电磁场的局域增强是表面等离 ...

  6. matlab中表示拉普拉斯分布_matlab 拉普拉斯变换

    ,其拉普拉斯变换为 s s F 1 ) (  .首先,利用两 个向量来确定绘制曲面图的 s 平面的横.纵坐标的范围.例如可定义绘制曲面图的横坐 标范围向量 x1 和纵坐标范围向量 y1 分别为: x ...

  7. matlab拉普拉斯图像锐化处理,MATLAB中的拉普拉斯图像滤波与锐化图像

    我有一些提示: >这只是一个小问题,但filter2执行相关.实际上,您需要执行卷积,在执行像素邻域和内核之间的加权和之前将内核旋转180度.但是因为内核是对称的,convolution and ...

  8. Laplace distribution (拉普拉斯分布)

    在概率论和统计学中,拉普拉斯是一种连续概率分布.由于它可以看做是俩个不同位置的指数分布背靠背拼在一起,所以它也叫做双指数分布.如果随机变量的概率密度函数分布为: 那么他就是拉普拉斯分布.u为位置参数, ...

  9. 拉普拉斯分布和正态分布

    拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,定义为梯度(▽f)的散度(▽·f).因此如果f是二阶可微的实函数,则f的拉普拉斯算子定义为: 在概率论和统计学中,拉普拉斯分布是一种连续概率分布.由 ...

最新文章

  1. AMF3通讯协议实例
  2. linux怎么配置mysql数据库服务器_linux下指定mysql数据库服务器主从同步的配置实例...
  3. 【鸿蒙 HarmonyOS】界面跳转 ( Page Ability 的 action 标识 | Page Ability 之间的界面跳转及传递数据 | 鸿蒙工程下创建 Module | 代码示例 )
  4. 一个简单的parser
  5. bash 后台程序_如何向您的Bash程序添加帮助工具
  6. struts2 javaweb 过滤器、监听器 拦截器 原理
  7. EasyPoi 模板导出Excel (带图片) 以及一些踩坑记录
  8. python protoc
  9. JetChat-简仿微信聊天应用
  10. 百度首页代码(HTML+CSS+jQuery)
  11. C语言程序设计笔记(浙大翁恺版) 第九周:指针
  12. 这20种PS技术让你的照片美不胜收
  13. 前端配色方案:最舒服的十种颜色
  14. 《计算机达人成长之路——憧憬与迷茫篇》有钱的捧个预订场,有人的捧个评价场...
  15. JTopo添加动态连线
  16. 15页PPT:摘果式拣选与播种式拣选
  17. 【苹果相册】苹果推信群发准入ProvisioningProfile还分为开发和分发
  18. ubuntu在目录下文件中搜索关键字
  19. android国际化设置语言后不起作用,Android旋转屏幕后国际化语言失效的解决的方法...
  20. PHPChina留言板实例

热门文章

  1. python和R对dataframe的拼接、采样、链式操作:dplyr、tidyr、concat、rbind、cbind、sample、sample_n、set.seed、mutate、filter
  2. Annovar注释的突变文件转MAF对象
  3. ISLR_ANOVA
  4. 第二章 序列比对——Blast局部比对
  5. A fuzzy Bruijn graph approach to long noisy reads assembly
  6. 课题背景 一二三代测序技术
  7. 数字图像处理3:取样和量化
  8. linux ip -o,linux IP 命令使用举例
  9. vuecli启动的服务器位置,webpack – 在vue cli 3生成的项目中启动dev服务器
  10. 自建mysql和华为云mysql_自建数据库和云数据库区别和使用(以MySQL为例)