微波射频(三):场论;电磁学和微波学的基本的数学手段和表示

姓名:刘烁烁 ;学号:20181213904;学院:广州研究院

原链接:https://zhuanlan.zhihu.com/p/161734503  来源:知乎

【嵌牛导读】电磁学的基础

【嵌牛鼻子】散度、旋度、梯度定义

【嵌牛提问】怎么matlab把这些概念表示出来呢?

【嵌牛正文】散度、旋度、梯度定义及matlab表示

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

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

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

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

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

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

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

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

梯度:

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

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

 ,对于空间中的每一点 

 (D为定义域或者说场存在的区域),都可以定义出一个矢量 

,称为函数
在点
的梯度,记做grad

散度:

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

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

设 S为一个包含体积 V的闭合空间曲面, dS 为曲面 S上的面元矢量,满足:dS=dSe⊥ 。定义矢量 F 与  dS的内积 

F点乘dS 为通过面元矢量 ds的通量,则散度可定义为:

旋度:

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

百度百科上引用的旋度定义

拉普拉斯算子:

在计算梯度时用到了一个算符称为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, disconnected

    line objects are created and plotted as discrete points vertically at

    X.

    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 with

    plot(X,Y,S) where S is a character string made from one element

    from any or all the following 3 columns:

          b    blue          .    point              -    solid

          g    green        o    circle            :    dotted

          r    red          x    x-mark            -.    dashdot

          c    cyan          +    plus              --    dashed 

          m    magenta      *    star            (none)  no line

          y    yellow        s    square

          k    black        d    diamond

          w    white        v    triangle (down)

                              ^    triangle (up)

                              <    triangle (left)

                              >    triangle (right)

                              p    pentagram

                              h    hexagram


    For 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 by

    the (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 a

    solid yellow line interpolating green circles at the data points.

    The plot command, if no color is specified, makes automatic use of

    the colors specified by the axes ColorOrder property.  By default,

    plot cycles through the colors in the ColorOrder property.  For

    monochrome systems, plot cycles over the axes LineStyleOrder property.

    Note that RGB colors in the ColorOrder property may differ from

    similarly-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, one

    handle 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.

    Example

      x = -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

梯度:

symsxyz%定义符号变量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);

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 该篇内容主要包括: URL 包含哪几部分,每部分分别有什么作用 DNS 的作用是什么,nslookup 命令怎么用...
    hutn阅读 210评论 0 0
  • 相位(aspect)是指星盘[http://link.zhihu.com/?target=https%3A//zh...
    Adrian1989阅读 11,634评论 0 0
  • 记录一些曾经启发过自己中外古今人物小传,主要还是主观评价。古人风骨,以此明志。 (那个,其实即使追古人也是摆脱不了...
    拿铁还是奶茶阅读 84评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,520评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,178评论 4 8