绘图软件 Matlab 在物理学中的应用
—电磁分布的N 维可视化研究
摘要:对电磁场的研究一直以来都非常受重视。但是由于电磁场看不见摸不着, 并且它们可以重叠。因此学生在学习电磁场的时候非常抽象,理解起来就比较困难。在这种情况下,本文寻求一种直观的解决方法:在现有的完备的电磁场理论基础上,本文利用 Matlab 3D 绘图功能来研究电磁场的空间分布。在本文中, 除了绘制了部分电磁场空间分布的 N 维图形,还讨论了电磁场的相关图像的实现过程。希望本文的提出能为学习电磁场的相关知识提供些帮助,让抽象的电磁场具体化、可视化。
关键词:电磁场;Matlab;可视化正文:
电磁场是物质世界的重要组成部分之一,在生产实践和科学技术领域内,存在着大量与电磁场有关的问题。然而各种电磁场现象都具有复杂的空间分布,电磁场不能被直观地进行观察,对它的认识非常抽象,有时只能通过仪器进行定量的测量[1]。我们在接受电磁场的理论知识时,需要有较强的多维空间想象能力和逻辑思维能力。为避免对电磁场理论认识的抽象化[2],我们
来寻求一种较好的解决方法。
本文首先介绍了Matlab N 维图形、等值图形的绘制及 Matlab 的三维图形视觉指定,然后用 Matlab 软件对电磁场的分布进行研究,并对研究结果进行了讨论。
. Matlab 绘图

Matlab 是美国Mathworks 公司开发的一种使用简便的工程计算语言。它以复数矩阵或数组为数据单位进行计算,也可以直接处理矩阵或数组。Matlab 本身具有丰富的内部函数和强大的绘图功能,且语言精炼、结构紧凑及编程效率高。Matlab 的可视化的仿真环境以及丰富的算法工具箱已成为广大教学、科研和工程人员的有力开发工具[3]
1.Matlab N 维等值图形的绘制
Matlab能很方便地改变坐标范围、添加图例及填充图形。对于三维图形, Matlab具有旋转视角的功能,这可展现电磁场三维空间分布的直观效果[4]。采用Matlab命令Plot3 (绘制三维曲
线或点型图形),设定三维坐标x, y, z 范围及绘图数据的值,就可以方便地绘制出三维曲线图。对于电磁问题,我们可利用mesh (三维网格图形)surf (三维表面图形)来绘制三维曲面。在 x - y 平面上建立网格坐标, 每一个网格点上的Z 坐标就定义了曲面上的点,通过直线连接相邻的点就构成了
三维曲面。常用指令还有linspace(构造线性分布的向量)quiver(绘制箭头图形)surfc(带有等势线的三维表面图形)surnorm (绘制曲面法线)等等。绘图之前先要以meshgrid产生在 x - y 平面的二维的网格数据,再以一组z 轴的数据对应到这个二维的网格,即可画出三维的曲面。以下的例子可实现上述的绘图过程。
x=-7.5:0.5:7.5;y=x;    % 先产生xy二个阵列
[X,Y]=meshgrid(x,y);    % 再以meshgrid形成二维的网格数据
R =sqrt (X. ^2+Y. ^2) +eps;    % 加上eps 可避免当R在分母时趋近零时会无法定义
Z =sin(R). /R;    % 产生z轴的数据
mesh(X,Y,Z)    % z轴的变化值以网格方式画出
surf(X,Y,Z)    % z轴的变化值以曲面方式画出
mesh(peaks)    % 直接将以定义的peaks函数以网格方式画出
title ('Meshp lot of peaks')

与三维绘图有关的还有等值线图,相关指令为contour, contour3contour 是将等值线图以二维图表示,其语法有几个方式。一是contour(Z) , contour(Z,n)其中Z 是一个二维矩阵,而n为等值线的数目(如果不给即以自动方式设定)。另一种语法则是将 z 轴的值对应到指定的 x, y 轴的值, 语法为contour(X,Y,Z), contour(X, Y,Z,n),其中 X ,Y , Z 代表x, y, z 轴的数据。contour3则是将等值线以三维图表示,其语法与contourmatlab等高线图数值提取类似,只是将对应的关键字contour改成contour3,其余部份相同。
   
1三维线(平视效果)2三维线(仰视效果)
2.Matlab 的三维图形视角指定
对于电磁场的空间分布,我们经常讨论它在不同平面的分布规律。Matlab供了三维图形视角指定命令View,通过调整视角,可以使一幅图显示出来自不同方向的观察效果。对于绘制出的三维电磁场分布图,我们可以利用这项功能观察不同坐标平面(x–yx-zz-y)的分布规律。一般View有以下几种不同的调用方式:
View(azel),设置观察图形的视角,az是指方位角(azimuth),指在x-y平面
内从y轴负方向绕z轴旋转的角度,逆时针为负,el是指仰角(elevation),指从x - y
平面沿z轴方向仰起的角度,向z轴的正方向的仰角为正,单位均为“度”,如View (900)指视线从x轴的正方向水平看过去的效果;View(2),设置缺省的二维视角,缺省值为:az = 0oel = 90oView(3),设置缺省的三维视角,缺省

值为:az = - 37.5oel = 30o[az,el]=View,返回当前的视角。Matlab 5.0
以上版本增加rotate3d (三维旋转功能),可用鼠标拖动立体图形在空间连续转动。要实现对观察点的高级控制,还可以Matlab的照相制图技术[5]
. 电场的Matlab 图示
Matlab分析电磁问题的编程是建立在数学模型基础上的,通过编程可以确定并绘制特定区域内的电磁分布。利用Matlab绘图,我们可以直观地研究电磁分布问题。下面我们就几个典型的实际例子来具体的进行分析。
1.等电位线和电场方向
例题一、已知电位的表示式,来计算电场并画出等电位线和电场方向。
我们知道要解决这个电位分布及电场计算的问题首先要建立数学模型:如果已知空间的电位分布: v = v(x, y, z) 则空间的电场等于电位的负梯度: E = -ϕ 即: