但是,方程(2-1)是非线性微分方程,它一般是不能解析求解的,只能在
小摆角情况下求得近似值,通常认为,“小摆角”是指最大摆角不超过 5 。在此
情况下, sin,于是方程(2-1)被线性化,成为标准的谐振方程
''(t) 2(t) 0
其中, 是单摆振动的角频率(又叫圆频率)。由此解出的单摆运动方
程为如果选定了初始条件即 t 0 时单摆的角度和角速度,则可以定出振幅m 和初相 角,摆角(t) 就完全确定了。然后还可以求得速度和(切向)加速度
在此基础上,如果还想求摆线对摆球的拉力 T ,也是很容易的,因为切向运 动是圆周运动,其法线方向的分力满足向心力公式
如果还想求单摆的运动周期 tc ,则根据圆频率与周期的关系立即得到
这样,前面对单摆提出的问题完全解决。如果嫌公式不够直观,可以将以上 求得的各物理量作图,观看它们的变化以及相位关系,等等[5]。
但是,以上这些讨论都是在小角度下的近似结果,如果是任意角度的摆动, 则无法给出解析解,只能求数值解,即求出曲线上某些点的值。
第三章 单摆方程的数值解
下面研究如何对方程(2-1)进行数值求解。对于 Mathematica,求解这个问 题是容易的,因为它有一个函数 NDSolve[ ] 是专门求微分方程数值解的,像方 程(2-1)那样的常微分方程是能够方便地求解的。这个函数的使用格式是来`自+优-尔^论:文,网www.youerw.com +QQ752018766-
NDSolve [ {微分方程和初始条件},待求函数名,{t,t1,t2}]
该函数的用法详述如下。
NDSolve 之后是一对中括号“[ ]”,里面有三项,第一项用花括号“{}”将 微分方程和初始条件括起来,具体写法是:
微分方程内的等号,必须为双等号“==”,中间不能有空格; 初始条件也必须用双等号连接; 各个双等号连接的项需要用逗号分隔。
中括号内的第二项是需要求解的未知函数的名字,这通常是编程者自己定义的, 与微分方程里的未知函数名一致。第三项是要解算的时间范围{t,t1,t2} ,这里的 t 是自变量,t1 和 t2 规定了求解的时间范围。数值解不能像公式那样任何时间都成
立,它只能在规定的解算范围内成立,换句话说,我们解到哪里,就对系统了解
到哪里,在此范围之外,我们就什么也不知道了。 数值求解微分方程需要给出待求函数的初始条件,本次计算中,规定单摆的
初始条件是
初始角位置:(0) 0
初始速度:' (0) 0
这两个条件的含义是:将摆球拉开一个角度0 ,然后放开,令单摆自由摆动。 以下程序就来完成第一个计算。
In[1]:= g=9。8;L=1; =√