矢量分析与场论课程的MatLab可视化教学实践
2015-12-14肖汉光宋涛邹雪
肖汉光+宋涛+邹雪
摘要:“矢量分析与场论”是理工本科专业的重要基础课程,该课程的主要特征是抽象、难教和难学。为此,在教学过程中利用MatLab进行矢量分析的可视化教学,使课程更加生动具体,激发了学生的学习兴趣,取得了良好的教学效果,值得推广。
关键词:矢量分析;场论;可视化教学;MatLab
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)20-0146-02
“矢量分析与场论”课程是理工科(如电子、电气、信息、自动化等专业)本科生必修的一门重要的专业基础课。该门课程是其他核心课程的前续课程,如物理场论、电磁场与电磁波、波导理论、电磁兼容、电机学等重要专业课,所以该门课程掌握的好坏直接关系到核心专业知识的学习。因此,如何教好和学好这门课程显得尤为重要。
由于该课程概念抽象、理论性强、数学能力要求高,所以教与学都有较大难度。为此,笔者将MatLab应用到该门课程的教学过程中,使教学内容变得生动、具体,使学生产生浓厚的学习兴趣,取得了良好的教学效果。
一、矢量运算
矢量运算是该门课程的基础,其教学较为容易,但部分学生计算时常常出错,利用MatLab的矢量计算函数可以方便地进行矢量计算,帮助检验计算结果,同时可以帮助观察和理解矢量运算。例如,求矢量■=(1,2,3),■=(1,1,1),■=(2,1,3)的矢量运算。
代码如下:
A=[1 2 3];B=[1,1,1];C=[2,1,3];
A+B;%矢量相加
A-B;%矢量相减
dot(A,B);% ■·■,点积或标积
cross(A,B);% ■×■叉积或矢积
dot(A,cross(B,C));% ■·(■×■)标量三重积
cross(cross(A,B),C);% ■×■×■矢量三重积
norm(A,2)% |■| 求模
A./norm(A,2)% ■■求单位矢量
在计算结果的基础上,利用quiver3可绘出矢量图形,如图1所示为以上代码计算结果的空间可视化图形,便于学生理解叉积等难掌握的新知识。
二、梯度、散度和旋度的计算
利用MatLab的符号运算功能,学生可对梯度、散度、旋度等微分算子进行符号计算。标量场的梯度可利用gradient函数,例如:计算三维标量场
f(x,y,z)xe■的梯度,则MatLab代码为:
syms x y z
f = x .* exp(-x.^2 - y.^2- z.^2)
g=gradient(f,[x,y,z]);
%绘制梯度场
[X,Y,Z]=meshgrid(-1∶.1∶1,-1∶.1∶1,-1∶
.1∶1);
G1=subs(g(1),[x y z],{X,Y,Z});
G2=subs(g(2),[x y z],{X,Y,Z});
G3=subs(g(3),[x y z],{X,Y,Z});
quiver3(X,Y,Z,G1,G2,G3)
利用quiver3函数可以绘出三维矢量场,上述三维标量场的梯度场如图2所示。
矢量场的散度和旋度可利用diff函数,例如:计算三维矢量场的■(x,y,z)=(x+y+z■)■x+(x■y)■■+2yz■■散度和旋度,则MatLab代码为:
syms x y z
F=[x+y+z^2,x^2*y,2*z];
divF=diff(F(1),x)+diff(F(2),y)+diff(F(3),z);
rotF=diff(F(3),y)-diff(F(2),z),diff(F(1),z)-diff(F(3),x),diff(F(2),x)-diff(F(1),y)];
%绘制散度场
[X,Y,Z]=meshgrid(-1.2∶.2∶1.2,-1∶.2∶1,-1∶.2∶1);
V=subs(divF,[x y z],{X,Y,Z});
slice(X,Y,Z,V,[-1 0 1],0.2,[-.8])
shading interp
%绘制旋度场
figure
G1=subs(rotF(1),[x y z],{X,Y,Z});
G2=subs(rotF(2),[x y z],{X,Y,Z});
G3=subs(rotF(3),[x y z],{X,Y,Z});
quiver3(X,Y,Z,G1,G2,G3)
该三维矢量场的散度场和旋度场如图3和图4所示。
三、等值线和场线的绘图
对于二维的标量场,可以利用mesh函数绘制分布图,图5为f(x,y,z)=xe■的标量场分布。
其代码为:
[x,y]=meshgrid(-2∶.1∶2,-1∶.05∶1);
z=x.*exp(-x.^2-y.^2);
mesh(x,y,z);
对于三维的标量场,可以利用切片函数slice绘制分布图,如图3所示,其代码为:
slice(X,Y,Z,V,[-.5 0 0.5],0.2,[-.8]);
二维标量场的等值线可利用contour函数绘制,二维矢量场的场矢量分布图可利用quiver函数绘制,图6为标量场f(x,y,z)=xe■的等值线和梯度矢量场的场分布。
二维矢量场的场线可利用streamline和stream2绘制。
四、结语
针对“矢量分析与场论”课程难教难学、概念抽象、计算复杂等特点,采用MatLab的向量计算、绘图等技术,高效、便捷、直观地实现了该门课程的可视化教学,激发了学生的学习兴趣,同时学生可通过编程提高解决实际问题的能力和动手能力,提升综合素质,实现教学相长的效果。
参考文献:
[1]唐军杰,王爱军.Matlab在电磁场可视化教学中的应用[J].物理与工程,2013,(1):42-45.
[2]帅春江.Matlab在电磁场与电磁波课程电解槽的应用[J].吉林化工学院学报,2012,29(9):76-78.
[3]杨光杰.Matlab在电磁场教学中的应用[J].成才之路,2012,(36):41-41.
[4]李小兵.基于MATLAB对二维混合边界静电场域的分析[J].电子测试,2012,(9):24-27.
[5]田雨波,张贞凯,解志斌.基于Matlab的电磁场理论之可视化教学研究[J].现代电子技术,2011,34(20):90-92.
[6]刘兴鹏.MATLAB在电磁场可视化教学中的应用[J].知识经济,2010,(14):154-154.