goo blog サービス終了のお知らせ 

ソフトウェア開発したい日記

「面白い!」と思った頭の体操や、数学の問題を載せていきます
その他ロードバイクででかけた先の写真や、ソフト開発のメモ等

自由落下の運動方程式はオイラー法?

2010年05月01日 13時08分09秒 | ソフト開発日記
単純な自由落下だけなら、y = y0 + v0*t + g*t*t/2
で位置を求めればいいと思いますが
跳ね返りだとかボール同士の衝突を考えたとき、
運動方程式という微分方程式を解くオイラー法でやるのが
1番しっくりきました。

まず、
my'' + mg
y'' = g

また、
y' = v
v' = g

とすれば、

y_(n+1) = y_n + v_n * H
v_(n+1) = v_n + g * H

と。Hは刻み幅で、小さければ小さいほど精度が上がりますが
0.05くらいを入れておけば十分に思います。

その後は次のように値の更新

y_n = y_(n+1)
v_n = v_(n+1)

地面に接触したときの跳ね返りに関しては、
跳ね返り係数をEとすると

y_(n+1) = 0
v_(n+1) = (- v_n + g * t) * E

とすればOK。
これでそれっぽくできました。
ただ、跳ね返り係数を1としたとき、
跳ね返るたびにほんのちょっとずつ上昇していく・・。
オイラー法だからかな?

気になってきたらルンゲクッタに変更します。

最新の画像もっと見る

5 コメント(10/1 コメント投稿終了予定)

コメント日が  古い順  |   新しい順
とおりすがり (今悩中)
2013-07-31 15:38:15
「物理演算」で検索しても何も得られないと言う事を最近知り、ようやく重力加速度の意味が分かったつもりでコード書こうとして、現在手が止まって逃避している所です。
脳みそ分譲してくださいませんか?
返信する
Unknown (あつた)
2013-08-03 12:39:23
お使いの言語はなんでしょう?
返信する
あ、すみません… (今悩中)
2013-08-03 20:14:18
答えが聞きたいんじゃなくて考えてるのって楽しいなあと言うニュアンスです。
だいぶ勘違いして解釈してるなぁとか。
ちなみに言語はDelphi6というアレなやつ一本ですが読むだけなら色々大丈夫なタイプです。
重力加速度が何か分かればあんな事やこんな事ができると思っていたのですが、衝突を考えると質量を保存しなきゃいけないんだなぁとか、今そんな所です。
気に掛けてくださってありがとうございます。
返信する
Unknown (あつた)
2013-08-04 11:31:25
失礼しました。
エネルギー保存、慣性モーメント、転がり摩擦、マグナス力等、正確な物理演算のためには色々と大変そうですよね。
お互い頑張りましょう。
返信する
マルテンサイト千年ものづくり (グローバルサムライ)
2024-07-25 14:53:51
最近はChatGPTや生成AI等で人工知能の普及がアルゴリズム革命の衝撃といってブームとなっていますよね。ニュートンやアインシュタイン物理学のような理論駆動型を打ち壊して、データ駆動型の世界を切り開いているという。当然ながらこのアルゴリズム人間の思考を模擬するのだがら、当然哲学にも影響を与えるし、中国の文化大革命のようなイデオロギーにも影響を及ぼす。さらにはこの人工知能にはブラックボックス問題という数学的に分解してもなぜそうなったのか分からないという問題が存在している。そんな中、単純な問題であれば分解できるとした「材料物理数学再武装」というものが以前より脚光を浴びてきた。これは非線形関数の造形方法とはどういうことかという問題を大局的にとらえ、たとえば経済学で主張されている国富論の神の見えざる手というものが2つの関数の結合を行う行為で、関数接合論と呼ばれ、それの高次的状態がニューラルネットワークをはじめとするAI研究の最前線につながっているとするものだ。この関数接合論は経営学ではKPI競合モデルとも呼ばれ、様々な分野へその思想が波及してきている。この新たな科学哲学の胎動は「哲学」だけあってあらゆるものの根本を揺さぶり始めている。こういうのは従来の科学技術の一神教的観点でなく日本らしさとも呼べるような多神教的発想と考えられる。
返信する