前幾天一個同事看到我寫的雙擺程序后問我:"這吊兒郎當的是什么玩意?",我當時給了他一個白眼說:"沒文化,No education.這么高逼格的東西,你竟然說吊兒浪盪!"
上一篇文章是關於“三體”的混沌圖像,這一篇就講與之有些相似的“雙擺”。雙擺是物理學中的一個概念,依稀記得中學物理講過單擺。先給下單擺與雙擺的定義:
單擺:由一根不可伸長、質量不計的繩子,上端固定,下端系一個質點的裝置。
雙擺:是一個擺的支點裝在另一擺的下部所形成的組合物體。雙擺有兩個擺角,所以有兩個自由度。雙擺是多自由度振動系統的最簡單的力學模型之一,它也是一種混沌實例。
那么問題來了:雙擺這種混沌系統,如果給定初始條件,以后任意時刻的運動狀態都可以算出來嗎?
答案是:理論上可以,但實際計算中,由於誤差,會使運算結果與實際相差越來越大。這一點與三體很像,非線性數學就是這么任性。
下面四個GIF動畫圖像為雙擺的錄屏:
這里使用我定義語法的腳本代碼生成混沌圖像。相關軟件參見:YChaos生成混沌圖像。如果你對數學生成圖形圖像感興趣,歡迎加入QQ交流群: 367752815.圖像的生成方法是:使用第二個擺點的運動軌跡生成圖像.
先上腳本代碼:
[ScriptLines] s=[static]p w=[static]q a=l*l*(m+n) b=l*n*h*cos(s-w) c=l*(n*h*sin(s-w)*v*v + (m+n)*g*sin(s)) d=n*h*l*cos(s-w) e=n*h*h f=n*h*(-l*sin(s-w)*u*u + g*sin(w)) i=(c*e - b*f)/(b*d - a*e) j=(a*f - c*d)/(b*d - a*e) u=u+i*t v=v+j*t s=s+u*t w=w+v*t x=l*sin(s) + h*sin(w) y=-l*cos(s) - h*cos(w) [Variables] g=9.800000 h=2.000000 l=1.000000 m=1.000000 n=2.000000 p=1.000000 q=2.000000 t=0.000500 u=0.000000 v=0.000000
這里使用的是角度變化實現雙擺,參考的資料是:
http://sebug.net/paper/books/scipydoc/double_pendulum.html
看圖像:
相關軟件:
相關文章: