Matlab动画演示机械波传播中质点不随波迁移

时间:2022-10-24 05:35:30

Matlab动画演示机械波传播中质点不随波迁移

摘要基于Matlab的数据可视化功能,对物理实验现象采用计算机模拟仿真,通过Matlab动画演示机械波传播过程中质点不随波迁移,使教学生动形象,对物理实验教学启到了一定的促进作用。

中图分类号:O45 文献标识码:A

Particle does not Move with Wave in Mechanical Wave

Propagation Showed by Matlab Animation

CHANG Jian[1], WANG Li[2], DING Zhiyong[1]

([1] Institute of Physics and Electronics, Fuyang Teachers College, Fuyang, Anhui 236041;

[2]Information Engineering Institute, Fuyang Teachers College, Fuyang, Anhui 236041)

AbstractBased on the Matlab data visualization function, uses the computer simulation to the physical experiment phenomenon, through the Matlab animation demonstration mechanical wave spreading process in the particle along with the wave migration, does not cause the teaching vivid image, opened certain promoter action to the physical experiment teaching.

Key wordsMatlab; animation; simulate; particle; vibrate; not to migrate with

1 引言

1.1 物理实验中使用Matlab的意义

随着计算机的普及,在教学或者科研中,获取计算机的帮助已不再是新的需求。教师在教学中如能利用动画来描述一个物理现象,或一条物理规律肯定会使学生大开眼界,同时提起学生的学习兴趣。这样,在教学中能够同时调动学生的听觉,视觉。此时再结合教学内容提出一小问题让学生们思考的话,教学效果自然不在话下。当然,有很多软件能够实现动画,但是这些软件不能定量的描述,都不够精准,不够科学。近年来,Matlab因其具有很好的数据处理功能及强大的绘图功能而在各个领域得到广泛应用,利用Matlab的强大的可视化功能不仅可以实现形象的描述,而且可以定量的刻画运动中的相关物理量。本文将介绍机械波传播过程中质点不随波迁移的理论分析,Matlab语句及动画的实现和对本次Matlab动画的总结。以期将该演示动画应用于教学,使教学内容形象、生动,同时提高学生的理解能力和学习积极性。

1.2Matlab简介

Matlab是Matrix和laboratory的前三个字母的组合,因此,又有“矩阵实验室”之称。它起初是由美国新墨西哥州大学计算机主任Cleve Moler编写的fortran子程序库接口程序,目的是方便学生在线性代数中的运算。经过近三十年的研究和不断的完善,它已由当初的“矩阵实验室”发展成为一种有广泛应用前景的,全新的计算机高级语言。①

数据的可视化是Matlab的一项重要功能,可视化方法包括二维图和三维图。其中的动画更能形象的描绘函数在某个区间内的极值,变化区间以及变化趋势,通过数据可视的方法,工程科研人员可以对自己的样本数据分布,趋势特性有一个直观的了解。②

本文就是利用Matlab动画形象的描绘振动介质中质点不随波迁移这一实验事实。

2 质点振动的理论分析

2.1 机械波的形成

产生机械波的条件:(1)振动的振子;(2)传播机械波的介质。

所谓介质是可以看作由大量的质点构成的,且相邻的质点间存在相互作用力的能够传播机械波的物质。当介质中的某一个质点发生振动时,就会带动它周围的质点振动起来,形成机械波。③

2.2 质点振动的微分方程及其解④

机械波传播中,每个质点振动,由回复力F = - cx,以及牛顿第二定律:F = ma,即有微分方程:m+ cx = 0 (1)

令k2 = ,(1)式化为 + k2x = 0(2)

反映质点运动规律的函数x = x (t)是满足微分方程(2)及初始条件:的特解

方程(2)的特征方程为r2 + k2 = 0,其根r = ?ik是一对共轭复根,所以

方程(2)的通解为:x = c1coskt + c2sinkt

应用初始条件,定出c1 = x0, c2 = 。因此,所求的特解为:x = x0coskt +sinkt (3)

方程可进一步写为x = Acos (kt + )(4)

其中 且tan =

至此,我们已经解出质点振动随时间的关系,采用更为一般的波动方程的记法:x = Acosk(t + )(5)

该方程即是波动方程的完整表述:⑤

(1)若x取一定值x',则该方程刻画在x'处的质点的振动周期图;

(2)若时间t取一定值,则该方程描述t时刻的波形图。

3 Matlab实现动画

3.1Matlab的动画原理⑥

在Matlab中,每一个图形元素就是一个对象,每个对象都有唯一一个相应的句柄标识符,并且每个对象都有一组可以根据需要进行调整的属性,对象的属性反映了对象的特征,通过修改这些属性,用户可以灵活地改变、调整图形对象显示的方式。Matlab句柄图形的这一基本思想就是它实现动画功能的基本方法和重要原则。句柄图形的引入涉及设置函数的应用,常用的有set函数和line函数。EraseMode是制作动画时非常关键的一个属性,其擦除属性的设置主要有四个可选值: (1)“normal”,缺省值,计算整个画面的数据,重画整个图形,这种模式产生的图形最准确,但是速度最慢,(2)“back-ground”,将旧对象的颜色变为背景颜色,实现擦除,这种模式将损坏被擦除对象下面的对象,但新对象会正确着色;(3)“none”,不做任何擦除;(4)“xor”,只画与屏幕颜色不一致的新对象点,只擦除与屏幕颜色不一致的原对象点,该方式不损坏被擦除对象下面的对象,因而用的较多,而且速度也较快。

3.2 实现波在介质中传播的动画

由(5)式,要用Matlab实现动画,原理是很缓慢的画出对应时刻的图形再拼接在一起,原有的形状或原有图形被擦除掉,这要用到Matlab中EraseMode动画中的擦除模式“xor”和set函数。Set函数的条用格式为:set(句柄,属性名1,属性值1,属性名2,属性值2,…)。

振动的方程利用Matlab动画实现,设置一个句柄图形结合for循环实现动画过程,程序如下:

h = plot(t,A*cos(w*t+a),'EraseMode','xor')%设置一个句柄函数并为动画选择擦除方式

set(gcf,'position',[50 40 1300 750])%将图形显示的位置设置在[50 40 1300 750]%对应数值表示为在离屏幕的左边50,下边40,图形界面的宽1300,高750

for i=1:1080%设置循环每次移动1/180以实现动画

y=A*cos(w*t+a+i/180)

set(h,'ydata',y)%返回句柄绘图

Drawnow

3.3 实现介质中某个质点不随波迁移的动画

由波动方程x = Acos (kt + )知道,不在同一位置的质点由于相位的差异,质点振动的步调不一致,振动的状态相差|1 - 2|(其中1,2为不同振子振动的初相),可以利用在函数中加上一个相位使某一处的相位与要保证相同的位置处的质点的振动完全相同。⑦

在此,用for循环结合作图函数plot作出不同相位的两个质点的振动图象。本文选取处x1 = 2*pi和x2 = 7*pi的两个质点(应用时教师可以根据实际情况设置任意处的质点,比如设置x3 = 2*pi/3处的质点,要使其与振动波形步调相同的话,只要相应的加上2*pi/3即可)。程序如下:

for i=1:1080

plot(2*pi,A*cos(a+i/180+2*pi),'ro','EraseMode','xor')

plot(7*pi,A*cos(a+i/180+7*pi),'mo','EraseMode','xor')

3.4 动画演示效果图(见图1)

4 结语

使用Matlab语句实现动画效果比C语言或Fortran语言要简单、迅速、直观、生动、形象。

只要在原语句中添加函数,或者改变参数,就可得到不同的图形,也可以在同一图形窗口中绘制多个图形进行图形对比,分析。本文讨论了基于Matlab 动画实现的原理以及在机械波传播中的应用,通过本文,熟悉了Matlab 绘图的方法,和句柄函数及for循环的应用,实现了Matlab 动画在教学中的应用,在课堂上营造了浓厚的物理学习氛围,收到良好的效果。

基金项目资助:安徽省质量工程项目――物理与电子开放实训基地(项目号20100634)

注释

①王正林,刘明.精通MATLAB7.0[M].北京:电子工业出版社,2007.10.

②陈光,毛涛涛,王正林等.精通matlabGUI设计[M].北京:电子工业出版社,2008.2.

③李惠彬.振动理论与工程应用[M].北京:北京理工大学出版社,2006.9.

④同济大学数学系.高等数学(第六版下册)[M].北京:高等教育出版社,2008.4.

⑤漆安慎,杜婵英.力学(第二版)[M].北京:高等教育出版社,2008.4.

⑥郑凤川.用Matlab动画演示几何图形的几种方法[J].自贡:教科园地,2008.

⑦钟季康,鲍鸿吉.大学物理习题计算机解法--matlab编程应用[M].北京:机械工业出版社,2008.1.

附录

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:建构主义理论指导下计算机应用教学设计 下一篇:书目数据库建设的策略研究