christy 发表于 2005-9-5 17:54

[分享]利用Mathematica做弹道曲线实验

还记得中学物理课上关于弹道曲线的试验吗?一个人用发射器把一个小球按照一定的角度弹出,另一个人从侧面观察,并且按照记忆记录下小球大概的落点以及经过的轨迹,然后……然后钻桌子底下去找小球。如此反复试验至少三次,再算出平均值。你是不是会觉得如此简单的实验却这么的费时、费力,得到的结论又有误差,有没有更简单、更准确的试验方案呢?答案是肯定的。

  现在我向大家介绍一款在国际上很流行的辅助教学软件——Mathematica,它是一款功能十分强大的专用数理程序设计软件,相对于其他同类产品,它具有上手容易,操作灵活,贴近教学等很多优点。用它我们可以在计算机实验室里方便而又准确地完成上述实验过程。

  首先我们来分析一下这个实验,弹道曲线方程的公式如图1所示。公式中各个的参数含义分别是:v1:抛射体初速的水平分量;v2:抛射体初速的铅直分量;g:重力加速度;t:飞行时间;x:飞行中抛射体在铅直平面上的位置的横坐标;y:飞行中抛射体在铅直平面上的位置的纵坐标。其中:v1=vCos [α?,v2=vSin[α?,v是小球的初速度大小,α是小球的出射仰角。

  试验的目的在于分析小球运动的初速度v,出射角度α,以及重力加速度g对小球运动轨迹的影响。实验室里我们只能改变前两个变量,重力加速度g我们是无法改变的。而有了Mathematica我们就可以做到这一点。下面我们先做一个改变仰角α的实验:

  运行Mathematica,在中间的空白区域输入如图2所示的指令。下面我对这些指令进行一下说明:

  1. 第1、2条指令定义了小球的初速度v和重力加速度g的大小,这里我们先定义它们为10,你可以定义它们为任何大于0的数值。

  2. 第3、4条指令求出了初速度v的水平分量v1和铅直分量v2的值。

  3. 第5、6条指令求出了小球在t时刻的瞬间横坐标x和纵坐标y。

  4. 第7、8条指令写出表示初速度方向的切线段的参数方程,其中α为初速度仰角,t/(2v*Sin[α?/g)是为了固定线段的长度,使之不会随着时间t的增大而增大,2v*Sin[α]/g为t的最大值。

  5. 第9条指令的核心部分是调用绘图函数ParametricPlot绘制一条初速度仰角为α的抛射体在空中的运动轨迹,以及表示初速度方向切线段,时间参数 t的取值范围是0到2v*Sin[α?/g,因为当t等于2v*Sin?α?/g时抛射物就落地了;在ParametricPlot函数外面套了一个制表函数Table,它的作用是通过改变α的值多次调用绘图函数ParametricPlot生成一组弹道曲线的图片,α的取值范围是π/100到π/2,而不是0到π/2,因为当α=0时,2v*Sin[α?/g也等于0,t的取值范围就成了0到0,系统会报出错。

  好了,现在我们只要按下快捷键“Shift+Enter”,Mathematica就会执行这些指令,结果会生成一组的图片,如图3所示。如果我们双击其中任意一个图片,系统就会像放电影一样将这些图片快速地轮流显示,形成一组动画。通过这个动画我们会看到在初速度和重力加速度为10的情况下,弹道曲线随仰角α的改变而变化的情况。这里我们是固定参数g和v,以α为变量做的动画。同样的原理我们可以分别做出以g和v为变量的动画,这只要对上述指令稍加修改就可以做到。

  怎么样,这个虚拟的物理实验不错吧。更值得一提的是利用Mathematica的Export函数还可以将这组图片导出成一个GIF格式的动画课件。如果想对Mathematica了解更多或者想下载相关课件和数据包,可以访问Mathematica的官方网站:http: //www.wolfram.com/

  (北京联合大学应用文理学院 祁跃)

[ 本帖最后由 suffer 于 2007-6-29 01:49 编辑 ]

tonan_888@163.c 发表于 2023-11-11 14:17

{:3_53:}{:3_53:}{:3_53:}
页: [1]
查看完整版本: [分享]利用Mathematica做弹道曲线实验