电磁场与电磁波(一)

** 因为一直忙于项目,之前立下"每天一更"的flag直接作废了,看到评论里面有些对之前的华数杯需要详解的,现在估计也用不上了。
因为个人的主导的方向是与芯片方向有关,因为对于电磁场和电磁波有些浅显的认识,所以想在这里进行一些分享,也以此来激励自己每天进行学习。内容上可能会有错误,欢迎各位指出!完成这一部分之后,会继续固体物理和半导体物理相关的内容。**

文章目录

电磁场中的五个基本概念

标量函数

标量,属于无方向的物理量,只有数值大小,部分标量存在正负之分,但是有着不同的含义。如果在空间的任意一点都有对应的标量形式的物理量,,例如温度,那么就会形成一个标量场,这个是与矢量相对应的。
在matlab的绘图中,对于标量的绘图是十分常见且简单的,通常存在以下绘图形式:

plot(x,y,linespace) %绘制各种二维图像
mesh(x,y,z,c)
surf(x,y,z,c) %y用于绘制三维曲面图
contour(x,y,z)
contour3(x,y,z) %分别用于绘制二维和三维等高线

上面的函数使用方法十分的简单,利用matlab的帮助文档也可以直接学习使用,这里我们将不在赘述。但是在电磁场与电磁波的仿真过程中,需要我们对实际效果进行一定的绘色处理,那么就需要一些特定的函数,这里我们将重点阐述以下几种函数:

pcolor(C) %绘制指定颜色C的伪彩色图,参量C是矩阵,元素线性的进行映射
%示例
[x,y]=meshgrid([0:40]);     %创建网络平面
z=sqrt(x.^2+y.^2);
figure;
hold on
pcolor(x,y,z);
plot([0:40],[0:40],'r+');
colorbar;                         %显示色阶

电磁场与电磁波(一)

fv=isosurface(x,y,z,v,isovalue); %matlab中用于绘制三维隐函数图形的工具
%示例
[x,y,z]=meshgrid(linspace(-15,15));           %形成网格数据
v=x.^2-y.^2+z.^2;
isosurface(x,y,z,v,1)             %绘制相关隐函数
axis equal
colormap([0,1,1]);
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

电磁场与电磁波(一)
电磁场与电磁波(一)
此外还存在以下函数:

peak;
slice;
NaN; %使用时可以自查matlab帮助手册

矢量函数

矢量函数个人认为在电磁场与电磁波中最为重要的一类函数,对于矢量的定义:既有大小又有方向的物理量,可以形象的简化为带箭头的线段。
在矢量函数的可视化中,matlab提供三种最为基本的函数进行使用,分别是

meshgrid(x,y); %这个函数上面已经使用,主要是用来进行网格的生成
quiver(x,y,u,v,scale);%用于绘制二维矢量场的函数
streamline(x,y,u,v,startx,starty)%绘制二维或者三维数据中具有流线形状的函数

梯度

梯度对于梯度的函数定义我不是很想再继续赘述,我想看到的小伙伴应该不会对一个定义很感兴趣,我们需要的是可以直接使用的东西,因此我在这里只是把形式写出来,方便我们自查使用:
∇ f = ∂ f ∂ x e x + ∂ f ∂ y e y + ∂ f ∂ z e z \nabla f=\frac{\partial f}{\partial x}\boldsymbol{e}_x+\frac{\partial f}{\partial y}\boldsymbol{e}_y+\frac{\partial f}{\partial z}\boldsymbol{e}_z ∇f=∂x∂f​ex​+∂y∂f​ey​+∂z∂f​ez​
其中使用到了Hamilton 算子,是一阶矢量微分算子,在直角坐标系中表示为
∇ = e x ∂ ∂ x + e y ∂ ∂ y + e z ∂ ∂ z \nabla =\boldsymbol{e}_x\frac{\partial}{\partial x}+\boldsymbol{e}_y\frac{\partial}{\partial y}+\boldsymbol{e}_z\frac{\partial}{\partial z} ∇=ex​∂x∂​+ey​∂y∂​+ez​∂z∂​
在柱坐标系下可以表示为
∇ = e ρ ∂ ∂ ρ + e φ 1 ρ ∂ ∂ φ + e z ∂ ∂ z \nabla =\boldsymbol{e}_{\rho}\frac{\partial}{\partial \rho}+\boldsymbol{e}_{\varphi}\frac{1}{\rho}\frac{\partial}{\partial \varphi}+\boldsymbol{e}_z\frac{\partial}{\partial z} ∇=eρ​∂ρ∂​+eφ​ρ1​∂φ∂​+ez​∂z∂​
在球坐标系下可以表示为
∇ = e r ∂ ∂ r + e θ 1 r ∂ ∂ θ + e φ 1 r sin ⁡ θ ∂ ∂ φ \nabla =\boldsymbol{e}_r\frac{\partial}{\partial r}+\boldsymbol{e}_{\theta}\frac{1}{r}\frac{\partial}{\partial \theta}+\boldsymbol{e}_{\varphi}\frac{1}{r\sin \theta}\frac{\partial}{\partial \varphi} ∇=er​∂r∂​+eθ​r1​∂θ∂​+eφ​rsinθ1​∂φ∂​
我们很容易知道,对于标量函数的梯度场是一个矢量场,因此,在实际应用中我们会采用gradient计算标量场的梯度,并用quiver函数进行可视化展示。我们采用一个经典的算例来实现两个函数用法
计算函数 x e − x 2 − y 2 xe^{-x^2-y^2} xe−x2−y2的二维梯度并在相同图窗里面绘制登高线和梯度向量

v=-2:0.1:2;
[x,y]=meshgrid(v);
z=x.*exp(-x.^2-y.^2);
[px,py]=gradient(z,.2,.2);
figure
contour(x,y,z);
hold on
quiver(x,y,px,py);

电磁场与电磁波(一)
未完待续。。。。

散度

旋度

拉普拉斯算子

上一篇:07 C# 索引器 分部类


下一篇:OpenCV 之 自定义滤波