正文

单摆和双摆模拟(1)

Python 科学计算 作者:张若愚


本章首先介绍单摆和双摆系统的公式推导,然后通过odeint()对其进行数值求解并制作动画演示程序。

18.1  单摆模拟

如图18-1所示,有一根不可伸长、质量不计的细棒,上端固定,下端系一质点,这样的装置叫做单摆。

根据牛顿力学定律,我们可以列出如下微分方程:

其中,θ为单摆的摆角,l为单摆的长度,g为重力加速度。

此微分方程的符号解无法直接求出,因此只能调用odeint()对其求数值解。

odeint()的调用参数如下:

odeint(func, y0, t, ...)

其中,func是Python的一个函数对象,用来计算微分方程组中每个未知函数的导数;y0为微分方程组中每个未知函数的初始值;t为需要进行数值求解的时间点。它返回的是一个二维数组result,其第0轴的长度为t的长度,第1轴的长度为变量的个数,因此result[:,i]为第i个未知函数的解。

计算微分的func函数的调用参数为func(y, t),其中y是一个数组,为每个未知函数在t时刻的值,而func的返回值是每个未知函数在t时刻的导数。

odeint()要求每个微分方程只包含一阶导数,因此我们需要对前面的微分方程进行如下变形:


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号