正文

單擺和雙擺模擬(1)

Python 科學計算 作者:張若愚


本章首先介紹單擺和雙擺系統(tǒng)的公式推導,然后通過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.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號