今回は真面目系の話.駒場時代の昔話です.
[追記] プログラムを作り直しました。 [作ってみた] [プログラミング] 剛体3重振り子
シミュレーションの課題をやる元気が出ないので昔話を書いてモチベーションを上げようという魂胆です.
東大の理系1・2年には物理実験という授業があります.毎週1回何かを実験して,その結果をまとめて先生に報告したら終了というものですね.
報告はたいてい他の人と時間が重なるので,待機用に控え室というのが用意されています.
で,この部屋,いったい誰が作ったのかわかりませんが物理っぽいおもちゃがたくさん取り揃えてあります.でっかいジャイロと回転台とか,ニュートンのゆりかごとか,そういう類のものです.
その中でひときわごつくて目を引いたのが,金属製の振り子でした.もっと丁寧にいうと「剛体3重振り子」というもので,回転する棒の先に棒が,またその先に棒がついた形をした細長い振り子です.
これの遊び方は?
先をつまみ上げて落とすだけです.
じゃあ何がおもしろいのか,というと,振り子の挙動です.ふつう振り子というのは左右にゆっさゆっさと揺れるものですが,この振り子は訳の分からない運動を始めます.全体でぐるんぐるん回ったかと思えば突然暴れだしたり,かと思えば先の棒だけが超高速で回りだしたりします.
以下は剛体2重振り子ですが,雰囲気は伝わると思います.
「連成振り子の運動」というのは大学数学では定番の練習問題で,たいていは複雑に見える運動も実は計算してみると単振動の組み合わせでしたね,という結論が待っています.もう大学の授業でかれこれ6回は見た気がします.
そんな中奇妙な振る舞いをする振り子が登場するわけです.中に奇妙なカラクリがあるとかならわかりますが,眼の前にあるのはただ棒が3本つながっただけの代物です.複雑な現象も単純に表されるんだよと言われていた矢先にこれです.
納得していたものが頭の中から吹き飛ぶ感覚はある意味快感ですらありました.
さて,実験の報告も終わって帰ってきて,まあこのわけのわからないものを 理解してやろうじゃないか,理論的に記述してやろうじゃないか,となるわけです.
まあそうやって書けばなんかモチベーション高い感じですが,別に目標があったわけでもなく,遊びみたいなものです.
ただし解析的に解けないのはわかっていたため,そこは数値計算で,となります.コンピュータの出番です.
丁度この頃力学はLagrange形式までやっていましたし,プログラミングも一応授業で最低限には習っていました.
となると,残りは微分方程式の数値計算法です.数値計算の分野にはこの頃はじめて出会ったことになります.
数値計算というのはおもしろい分野で,微分とか積分とかの抽象的な数学の問題を,単純な計算作業に落としこむ方法を与えてくれます.
それだけといえばそれだけですが,運動方程式,つまりこの世界そのものを足し算とかけ算だけの世界に引きずり込むという芸当ができるわけです.神様お試し版です.昔そんな映画もありましたね.
で,あれこれ式を書いていくと,最後に”あの”わけのわからない動きが手元ですっかり再現できるようになるわけです.
お手製のプログラムで自分でもよくわからなかった運動を再現するというのはなかなかおもしろいものです.自分で世界を作る感覚,シムシティと同じです.
当時作ったプログラムが公開できたらよかったのですが,ちょっと今手元にないためまた後で用意したいと思います.
かわりにyoutubeにあったものをはっておきます.
2重,3重振り子はカオスの例として有名なんですね.
こんな日を経験してから,計算力学という分野にある程度関心をもつようになります.なんか新しい物性とか流れとかちょっと複雑なことを考えたいときは理論式だけではなく計算機がボトルネックになるのではないか,なんてことをぼんやり考えていたわけです.
私が機械情報工学科に進学することを決めた背景には,このような考えも影響していたのではないかなーと思います.
さて,この遊びで作ったプログラムは特に使い道もないしそのままお蔵入りするかと思っていたのですが,ところがどっこい,学部に進学してからまた引っ張りだしてきて新しい要素が組み込まれることになります.
その話はまたいつかできたらと思います.