2006年5月4日の日記

<2006/05/05 2006/05/03>

収束性

物理シミュレーションにより動かすプログラムがちゃんと動くかどうかエクセルで数値を入れて計算したらすぐ発散して何もかもが吹っ飛んでしまうという結果が出ました。
数値計算によるシミュレーションではどうしても離散値しか取れないから、境界をまたいで変化してしまうと境界付近での動きが無視されて現実にはありえない動きを見せるんですよ。
まあ、数値計算の理論と実際に動かした結果もまた違うものなんですけどね。
そもそもエクセルで計算した分には距離がマイナスというケースも計算していたんですが、プログラム上では意味があるのは絶対値だけなので発散はしないその場合だと発散はしないんですよね。
まず、摩擦を入れないと絶対に収束しないのです。
それでまあ、エクセル上でいろんな数値を入れて試した結果、紙面上で求めた理論の式とはやや違う形になり、係数もある程度増えました。
紙面上での計算は理想条件を仮定しているけど実際には理想であるはずがありませんものね。
しかしどうしても残る問題が、収束の遅さです。
こればかりはなかなか式の係数をいじるだけじゃうまくいかなかったんです。
そこで早送りでシミュレーションして見かけ上早くするという手法をとることにしました。

そんなわけでこの部分のプログラムはメモちらしに入れることができました。

そうそう、Distanceメソッドの誤差についてはhttp://d.hatena.ne.jp/mifumi323/20060504で触れておきました。

<2006/05/05 2006/05/03>