APP下载

矢量分析与场论课程的MatLab可视化教学实践

2015-12-14肖汉光宋涛邹雪

教育教学论坛 2015年20期
关键词:可视化教学

肖汉光+宋涛+邹雪

摘要:“矢量分析与场论”是理工本科专业的重要基础课程,该课程的主要特征是抽象、难教和难学。为此,在教学过程中利用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.

猜你喜欢

可视化教学
微视频在初中物理教学中的运用研究
浅析大数据背景下大学历史的可视化教学
以学生为主体的可视化教学实践探索
有机化学反应机理可视化教学案例介绍
未来教室下的文本解读可视化教学法探析
高中历史可视化教学的实践探索
刍议高中物理可视化教学的原则及其他