HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > 仮想物理実験室

VisualC++ と OpenGL を利用した仮想物理実験室
【2-1-2】重力による運動のアルゴリズムの導出

文責:遠藤 理平 (2010年8月29日) カテゴリ:仮想物理実験室(325)

【2-1-1】加速度・力・質量の関係:ニュートンの運動方程式では、ニュートンの運動方程式までの導出を行ないました。 このニュートンの運動方程式を用いて、重力による運動をシミュレーションします。

ニュートンの運動方程式(3次元)

(2.1.1)
ニュートンの運動方程式(3次元)

上記のようにベクトルで表記された方程式は、各 x, y, z 成分がそれぞれ成り立つことを意味しています。

(2.1.2)

上記の関係式をシミュレーションで利用できる形に変形します。 【1-1】等速度直線運動【1-2】等加速度直線運動【1-3】等加加速度直線運動で、シミュレーションしたときと同様の形式で、物体の運動を記述します。ある時刻 t=t_n[s]に、質量 m_n[kg]、加速度 a_n[m/s^2]で運動していたとします。これを用いて、ニュートンの運動方程式を書き換えます。

時刻 t=tn[s] におけるニュートンの運動方程式

(2.1.3)
時刻 t=tn[s] におけるニュートンの運動方程式

質量 m_n[kg] としたのは、質量が時間変化する場合にも対応できるようにするためです。 ベクトルの各 x, y, z 成分についてそれぞれ成り立ちます。

(2.1.4)
時刻 t=tn[s] におけるニュートンの運動方程式

運動の条件(初期条件)

【6日目】では、質量 m[kg]で一定の物体が「重力[N]」みの場合のシミュレーションを行ないます。

運動の条件

g は重力加速度(g = 9.80665[m/s^2])で、時間によらず一定の値となります。また、F_{zn} = -mg とマイナスの値をとるのは、z座標を上向きにとっているためです。重力は下向き(-z軸方向)のみの力なので、F_{xn} と F_{yn} はゼロとなります。この関係式を式(2.1.4)に代入します。

(2.1.5)

各 x, y, z 成分の加速度[m/s^2]が求まります。重力[N]による運動の場合、物体の加速度はその質量[kg]によりません。力(重力)が質量の大きさに比例するため、力から加速度を計算する際に、質量が約分されてしまい、なくなってしまうためです。つまり、重力[N]で引き起こされる物体の運動は、その質量[kg]によらず一定であるということが導けました。

また式(2.1.5)は、a_{xn}=0 、a_{yn}=0 ということは、x軸方向と y軸方向には加速をしない運動、つまり、時刻 t=t_0[s]での速度 v_{x0} と v_{y0}が与えられれば速度は変化せずに運動する等速度直線運動となります。また z軸方向には、a_{zn} = -g[m/s^2]で一定の等加速度直線運動となります。これらの関係式から、重力運動をシミュレーションするための計算アルゴリズムをつくることができます。

重力運動のための計算アルゴリズム

位置・速度・加速度の初期値(自由落下)

g = 9.80665 //重力加速度
// 位置・速度・加速度の初期値 
x = 0.0;
y = 0.0;
z = 120.0;
vx = 0.0;
vy = 0.0;
vz = 0.0;
ax = 0.0;
ay = 0.0;
az = -g;

速度・位置を逐次計算するアルゴリズム

//速度の計算
vx = vx + ax * dt; 
vy = vy + ay * dt; 
vz = vz + az * dt; 
//位置の計算
x  = x  + vx * dt; 
y  = y  + vy * dt; 
z  = z  + vz * dt; 

VisualC++ と OpenGL を利用した仮想物理実験室

第0章 仮想物理実験室の構築

第1章 様々な運動

第2章 ニュートンの運動方程式

第3章 剛体の運動(エネルギー保存則と運動量保存則)

付録

  • 【A-1】参考文献
    ・(A-1-1)OpenGL について
    ・(A-1-2)VisualC++ について
    ・(A-1-3)物理シミュレーション
    ・(A-1-4)数値計算

未分類

力学

量子力学

波動論



▲このページのトップNPO法人 natural science トップ

関連記事

仮想物理実験室







▲このページのトップNPO法人 natural science トップ




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました