Matlab在面向“拔尖学生”的大学物理教学中的应用*

2022-02-10 12:27师玉荣顾永建
物理通报 2022年1期
关键词:质点编程轨道

师玉荣 顾永建 李 春

(中国海洋大学物理与光电工程学院 山东 青岛 266100)

培养基础学科拔尖人才是高等教育强国建设的重大战略任务,拔尖人才培养计划实施以来,培养了大批优秀人才.中国海洋大学在“基础学科拔尖学生培养计划2.0”背景下,结合学校海洋特色优势成立了创新拔尖学生培养基地——崇本学院,崇本学院的学生是全校层层选拔出来的,他们的理论基础知识扎实,知识接受能力强,有强烈的求知欲.面向“拔尖学生”的大学物理教学进行了一系列的教学改革,更加注重加强培养学生的实践创新能力、解决实际问题能力和团队协作能力,其中在教学中融入Matlab编程解决复杂物理问题的教学实践取得了很好的教学效果.

1 课题的提出

随着计算机技术的发展,数值计算已经成为一种重要的研究手段,其中Matlab软件被称为演算纸式的计算机语言,它简单易学、容易入门,所以很快被作为教学辅助手段引入到很多学科教学中.在大学物理教学中最常见的Matlab的应用,大多是可以直观动态地演示一些物理过程,如波动中的干涉、驻波、李萨如图形等[1,2].

大学物理教学内容中有许多难点问题很难求解,或者不能求出解析解,例如力学中的“最速降线”问题,转动参考系中受离心力和科里奥利力作用的质点的运动和卫星椭圆轨道等问题,它们的动力学微分方程是很难求解或者求解不出来的.如何处理这些问题,被誉为“科学怪才、教育楷模”的诺贝尔物理学奖获得者费恩曼在他的普通物理教学中,曾这样处理行星的椭圆轨道问题,他认为从更基本的动力学方程(即牛顿第二定律与万有引力定律相结合)出发,用尽可能少的知识获得行星绕日运行的轨迹,由于在普物阶段,尚无法探讨非线性微分方程的理论解,那么数值差分迭代求解微分方程就成为不二选择[3,4].笔者在教学过程中为了提高教学效果,应用Matlab编程解决过“最速降线”的相关问题[5],也模拟过转动参考系中质点的运动问题和行星的椭圆轨道问题.在课堂上动态演示这些程序的运算结果,形象直观,有助于学生对物理知识的理解.

基于教学实践笔者认为“拔尖学生”有能力应用Matlab编程解决如上的问题,让学生亲历这个编程过程,不但可以加深他们对这些物理难点问题的理解和微积分的应用,而且可以在这个过程中培养学生的自主学习能力、解决实际问题的能力.

2 Matlab编程解决力学问题的教学设计流程

教学设计采用教师引导,助教指导,学生小组协作学习的形式.我们挑选了有丰富Matlab编程经验,且物理理论功底深厚的助教,助教协助学生安装软件,检查点评学生小组作业,辅导答疑学生编程过程中遇到的难题.每项任务需要小组协作完成,6~7人组成一个小组,组员相互借鉴,取长补短促进学习,培养学生团队协作精神.考虑到有一部分学生没有接触过Matlab编程,教学设计流程是由浅入深、层层递进的,在力学课程中结合内容进度设计了几个案例,从最速降线→蚂蚁追逐→转动参考系中质点的运动→卫星轨道,引导学生从入门→初步应用→逐步深入解决复杂动力学问题,从简单到逐步复杂,前两个简单案例各用一周的时间,后面复杂案例分别用两周或三周的时间.

第一个案例最速降线问题是质点运动学一个经典问题,学生对最速降线的实验现象非常惊奇,但是当学生试图应用学过的物理知识求解时,发现即使最简单的圆弧路径上所用的时间也无法求解,但是Matlab程序,不但可以直观动态地演示质点沿直线、抛物线、圆弧和旋轮线几种不同曲线的轨道从相同起点到相同终点的过程的快慢顺序,并且能计算出每个轨道所用的时间[3].程序语句简单易懂,应用机械能守恒和瞬时速度的定义式,利用微积分思想把整个过程看成由许多微小的过程组成,每个微小过程视为匀速直线运动,通过Matlab强大的计算功能,计算出每个无穷小过程的时间,求和(积分)得出整个过程所用时间,总之程序借助简单的物理原理和微积分就解决了.通过向学生展示程序语句,抛砖引玉让学生看到Matlab编程入门简单,有信心可以学会,激发学生学习编程解决力学问题的兴趣.

第二个案例是猎人打猴,是质点运动中非常有趣的例子,子弹瞄准猴子,子弹打出的同时,猴子自由落体,不管子弹速度多大,总能打中猴子.原理简单,学生通过简单的语句即可模拟子弹总是能打中猴子的动态过程,让学生初步体会到编程的成就感,增强信心.

第三个案例是“蚂蚁追逐”问题,3只蚂蚁分别处于等边三角形的顶点,每只蚂蚁总是以另一只蚂蚁为目标以相同的恒定速率追逐,求3只蚂蚁相遇所用的时间和走过的轨迹方程.这个案例要求学生应用极坐标的速度定义式结合微积分解决,画出蚂蚁的动态轨迹以及计算出所用时间,通过这个案例学生可以加深对极坐标系的认识并能熟练应用.

第四个案例是匀速转动的光滑圆盘上的质点在离心力和科里奥利力作用下的运动轨迹问题.转动参考系中质点的动力学问题对学生来说是难点,具有极大的挑战性,径向和横向的运动相互影响,在极坐标系中其径向和横向的动力学方程分别为

式中的ωp为圆盘的转动角速度,vr和vθ分别为径向速度和横向速度,这个动力学方程无法给出解析解,但是Matlab可以给出数值解.这个案例要求学生列出极坐标系中的动力学方程,在助教的协助下编程画出不同初速度条件的轨迹方程,学生通过这个案例不但可以更深入地理解转动参考系中质点的运动,而且进一步掌握了如何处理极坐标系中的动力学方程.

第五个案例让学生自主解决地球卫星椭圆轨道的问题.关于行星轨道求解的研究,基于开普勒运动的角动量守恒和万有引力场中的机械能守恒,可以给出极坐标表示的圆锥曲线方程,这在《新概念物理教程力学》[6]一书中有详细的推导.但是费恩曼的从基本定律出发求数值解的思路在大学物理的教学中更有效.我们要求学生在自己建立模型的基础上,一要计算近地圆形轨道的周期并与理论对比,二是画出给定高度和速度的卫星的椭圆轨道.

总之通过在教学过程中制定有序计划,通过简单实例引导学生入门,引起学生兴趣,再通过解决越来越复杂的问题,最终让学生可以自主解决教学过程中遇到的不能理论求解或难于求解的问题,培养学生解决实际问题的能力.

3 实践教学成果

3.1 作业展示

下面展示几个任务中学生成果选例.图1是猎人打猴的运行动态图截图,可以展示子弹以不同的初速度瞄准射击猴子,总是击中目标,初速度小的在更低的位置射中猴子.图2是3只蚂蚁追逐问题的动图截图,动图可以显示任何时刻3只蚂蚁都在一个等边三角形的顶点上,等边三角形旋转着缩小到三角形的中心.图3显示了匀角速转动光滑的水平圆盘上,一个质点由相对圆盘静止开始,在离心力和科里奥利力的作用下的运动轨迹,改变参数还可以显示不同初速度的运动情况.图4显示了在地球表面附近,以9.9×103m/s(大于第一宇宙速度)初速度发射的卫星的椭圆轨道,改变条件可以得出任意位置和初速度的卫星的轨道.

图1 猎人打猴

图2 蚂蚁追逐

图3 匀角速转动圆盘上质点相对圆盘(实线)的轨迹和相对地面的轨迹(小圆圈)

图4 卫星椭圆轨道

3.2 后续学习影响

在后续学习中学生能自觉地运用Matlab编程解决问题,有学生解决了月亮相对太阳的轨道形状问题,有学生描绘出了傅科摆在不同纬度、不同初始条件下的摆动平面的旋转形状问题;而且在后续学习中学生可以熟练应用极坐标系解决问题;这些表现说明了该教学设计加深了学生对物理知识的掌握深度,提高了学生解决实际问题的能力.

在大学物理的热学部分学习中,这些“拔尖学生”成功地模拟了不同气体的麦克斯韦速率分布曲线和傅里叶热传导的模拟问题,提高了热学内容的教学效果.

4 教学效果及总结展望

学生在总结中提到这个基于Matlab解决力学问题的学习过程对他们有很大的挑战性,对他们的学习帮助很大,他们更深刻理解了微积分的本质,更深刻理解了物理原理,一举多得;而且对数值模拟经过无数步得出的结果与理论计算或者与实际观测的结果一致,感觉神奇、震撼.总之学生认为这是从理论跳跃到解决实际问题的过程,提高了他们解决实际问题的能力,强烈建议力学教学保留这一教学环节.下面节选了几个学生的反馈.

生甲:从“最速降线”对于图像的性质描绘,到“猎人打猴”学会作动态图,到了解欧拉法理解“蚂蚁追逐”问题,再到后来模拟科里奥利力和行星轨道问题……虽说在编程的过程中出现了很多问题……每次的编程都锻炼了我们的思考能力.

生乙:在学习并且运用了Matlab后才领略到它让数学物理问题的解决真的轻松了很多,比起其他编程语言,Matlab比较专注于数学计算这一块,总之真的很便利.然后就是对物理素养的锻炼,在处理问题中,通过自己运用物理知识来规定算法,可以加深对物理过程、物理公式,以及相应数学知识的理解和掌握,从理论知识跳跃到实际的运用.我觉得对我以后专业的学习也会有很大的帮助.

生丙:我们不断地运用微积分的相关知识分析物体的运动,很大程度上加深了本组组员对微元法和欧拉法解运动学方程的认识、理解,而极坐标系的建立则简化了我们需要处理的实际问题.所有的这些都加深了我们对物理实际问题的思考,为我们提供了解决问题的新思路.

教学实践过程中也出现了一些问题,例如有的小组活动没组织好,使得有些学生成了主力,其他学生成了辅助角色,以后的教学中将会在这方面加以注意,在开始形成规范的小组活动程序,引导良好的小组活动氛围.希望我们的教学设计能对其他教师有借鉴意义.

猜你喜欢
质点编程轨道
小天体环的轨道动力学
推荐书目《中国轨道号》
“新谢泼德”亚轨道运载器载人首飞成功
巧用“搬运法”解决连续质点模型的做功问题
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
朝美重回“相互羞辱轨道”?
质点的直线运动