** 因为一直忙于项目,之前立下"每天一更"的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∂fex+∂y∂fey+∂z∂fez
其中使用到了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);
未完待续。。。。