力学の入門 : 2 「速度と加速度(2)」

アバター
GRAM
記事: 164
登録日時: 14年前
住所: 大阪

力学の入門 : 2 「速度と加速度(2)」

投稿記事 by GRAM » 13年前

[ 1 ] 速さと速度、加速度

 さて、前回速さと加速度の大きさの意味を大雑把に説明しました。
 これらと 「速度、加速度」の違いは向きが考えられているかどうかという点です。
 要はx方向に速さ10m/sで進むのを 速度10m/s と定義するのならば、
 x方向とは逆方向に速さ10m/sで進むことは 速度-10m/s  と定義できるということです。
 
 加速度についても同様です。
 繰り返しますが、
 速度と加速度には向きがある ということです。
 一般に向きがある量のことを その量がベクトルである といいます。
 つまり、速度および加速度はベクトルです。
 
 逆に向きがなく、大きさのみを考えるときその量を スカラー といいます。
 速さ、加速度の大きさ はスカラーです。
 
► スポイラーを表示
 
[ 2 ] 数値計算による解法
 以上のことを踏まえ、速度と加速度を使って物体を動かしてみます。
 つまりまず
 
 微小な時間における平均加速度 =  微小な時間の速度変化 / 微小な時間
 
 で求まります。 「微小な」とか「速度変化」 とかいうのは面倒なので、偉い人が記号を考えてくれています。 
 
 その名も⊿(デルタ)という記号です
 
 ⊿α とは αの小さな変化量 という意味です。この記号を使うと、若干かっこよく書けます。
 また平均という言葉も記号にできます。
 
 その名を - (バー)という記号です。 バーは文字の上に付けます
 
 以上のことを踏まえてさっきの式を書き直すと次のようになります。
 
平均加速度.png
平均加速度.png (4.86 KiB) 閲覧数: 88 回
 ⊿とかが出てくると、途端に数学っぽくなるんですが、これは単純に「書くのが面倒だからかっこよく書いた」というだけのことです。
 別に「微小な~」とか「変化が~」とか言ってもいいのですが、あるいは面倒だから、あるいはあふれ出る厨二病精神がそうさせているだけのことです。
 
 ⊿vが求まれば、これを初速度v0にひたすら足していけばいいだけです
 ある時間のvの微小時間経った後のvは次のように近似できます。
 
速度増加オイラー法.png
速度増加オイラー法.png (2.21 KiB) 閲覧数: 80 回
 さて、あくまで aバー は平均加速度なので、これをそのまま用いて第2式のようにvを求めてしまうと、実際の速度との誤差が生まれてしまいます。
 しかしながら⊿tを0に近づけていけば、いずれは aバー と a つまり平均加速度と加速度は等しくなるはずなので、
 ⊿tを十分小さくすれば実際の速度vとの誤差は無視できるようになるだろう・・・と考えます(大雑把ですけどね)
 
 さて、きづいた方もいらっしゃるかもしれませんが、この式まさにプログラミングにおける
  
 v = v + dv に他なりません

 ・・・同様の話はx とvの間にも当てはまります。
 
変位増加オイラー法.png
変位増加オイラー法.png (7.4 KiB) 閲覧数: 86 回
 
 これらの式から、書くべきプログラムは以下のようになるでしょう
 

CODE:

 v_ = v_ + a_*dt;
 x_ = x_ + v_*dt;
 
 
 もしくは
 

CODE:

 v_ += a_*dt;
 x_ += v*_dt;
 
 
 もちろんdtとは⊿tのことを指します。
 このようにしてaからvを vからxを求めることを 数値的に解く といいます。
 一方、数々の公式の式変形を用いて 直接aとxの関係にこぎつけることを 解析的に解く
 
 ・・・といいます。この程度の問題は解析的に解けます。(実際 x = v0*t + 1/2*a*t^2 で正確に求まる)
 ただし、解析的に解ける問題は限られており、複雑なものは数値的に解くしかありません。。。

[3] プログラム

 実際にこれらを使った単純なプログラムを掲載します。
 肝になる部分は説明したため、特にいうことはないかと思います。
► スポイラーを表示
 Entityクラスのコンストラクタで、初期位置、初速度、加速度を与え、 Update関数で状態を更新、Draw関数で描写しています。
 現在、微小時間は1/60秒 としました。この方法でこの時間変化はぶっちゃけ超大雑把
 ・・・なのですが、それはあくまで正確さを求めるときの話。正確さを求めず見た目だけ考えるなら、どうでもいいのです。


 さて、このような手法を「オイラー法」もしくは「差分法」といいます。
 オイラー法や差分法は、実は笑えるくらいに精度が悪いのですが、非常に理解しやすいため当面はこれを使います。
 いずれはもっとましな方法をいくつか紹介したいと思います。

次はいったん数学の話をしましょうか。次回は微分積分を説明します。
To Be Continued・・・
最後に編集したユーザー GRAM on 2012年7月27日(金) 20:02 [ 編集 1 回目 ]

コメントはまだありません。