運動方程式をエクセルで解く
物理の小道
番外編ロゴ

→ サイトトップへ  へ


物理のスーパーマンになることができる(?)ホームページ
   (「物理の小道」総アクセス数


数学講座 「微分方程式入門」シリーズ

第9回 解けない微分方程式を解く  〜 運動方程式をエクセルで解く @ 〜

 空気抵抗など無視できない運動の解析はどのようにされるのか、考えてみる。 物理の教科書にも記述されていることだが、物体の速度が小さいときは物体の速度に比例すると考えてよい。 したがって、空気抵抗による力 R は、 R = - kvk は比例定数) と表せる。

 落下運動の場合、下向きを正として運動方程式を作ると、ma = mg -kv ・・・(1) と表せる。 この方程式は、本シリーズの第8回で説明したような方法で、運動初期の加速度や終端速度などを求めることができた。 途中経過についての解析は難しい。 そこで、数値計算を使って解く方法を考えてみよう。 計算処理そのものは、表計算ソフト「エクセル」に任せてしまえば、膨大な計算も簡単にできるはずだ。

数値計算の基本原理

 基本の考え方は、微小時間での速度、位置の変化は1次式(グラフでは直線)とみなせることを利用する。 ある時刻 t での速度 v、位置 x として、 微小時間 Δt 経過したときの速度、位置は次のようになる。
  速度は v + aΔt 、位置は x + vΔt
この計算により、微小時間経過後の速度、位置が求められる。 これを繰り返して行けば、全ての時間についての速度、位置が求められることになる。 微小時間を1ミリ秒(1000分の1秒)とたとき、上の計算を5秒間なら、5000回行うことになる。 手で計算するわけには行かないが、コンピュータでは一瞬で計算が終わってしまうのだ。 コンピュータでの計算には、プログラミング言語で記述する本格的な方法のほか、 エクセルなどの表計算ソフトを利用する方法がある。 前者は素人には敷居が高く難しいが、後者であれば直ぐに実用的に使えるのだ。

パソコンに標準装備の表計算「エクセル」を使う

 最近のパソコンでは、購入時に標準装備されている表計算ソフトは「エクセル」である。 そこで、この膨大な数値計算をエクセルにさせてみることにしよう。

数値計算の基本となる計算式を考える

 計算をする時間間隔 Δt を十分に小さく取れば、曲線は直線と近似できるようになる(曲線が滑らかに曲がっていることが条件)。 したがって、ある時刻 t の位置 x、速度 v、加速度 a が分かっているとき、
 時刻 t + Δtでの 速度は v' = v + aΔt と、 位置は x' = x + vΔt と表せる。 これを表計算ソフト「エクセル」を使って計算すれば物体の運動が分かるはずだ。

エクセルの表の1行目に欄のタイトルを入れる

 時間間隔 Δt を 1ms (=1000分の1秒)として計算させてみよう。 エクセルの第1行目は変数の名前を入れる。 表の左上[A1]には 時間(s) と入れる。その右の[B1]には 位置(m)、[C1]には速度(m/s)、 [D1]には加速度(m/s2)、[E1]には力(N) とする。 さらに、[F1]には 質量(kg)、[G1]には ばね定数(N/m)、[H1]には 空気抵抗率(Ns/m)、 [I1]には時間間隔(s)、[J1]には重力加速度 と入れる。 これで表に欄のタイトルが入ったことになる。 その直ぐ下の欄(2行目)にそれぞれの初期値を入れる。 例えば、[A2]の時間の欄に 0 、[B1]の位置の欄に 0 ...

時刻欄に時刻を自動計算できるように計算式を作る

 3行目には計算式を入れます(ここら当たりから理解することが難しくなります)。 時刻欄は先頭(A2)は当然ゼロになっています。その次の欄(A3)は最初の欄の時間に時間間隔を加えた値です。 この計算式を入れるには、「=A2+$I$2」とその欄に入れます。 これで、一つ上の欄の値に時間間隔(欄[I2])を加えることになるのですが、 $がつく場合と付かない場合があることに気付くでしょう。 この違いは計算式をコピーするときに違いが出てきます。$が付く場合は指定欄の番号が固定されますが、 $が付かない場合、自動的に変化してくれます(これが便利なのです)。 試しに、[A3]欄をコピー&貼り付けして見ましょう。[A3]にカーソルを移動後「編集→コピー」して、 [A4]欄にカーソルを移動後「編集→貼り付け」して、[A4]欄の内容を見てみましょう。 [A4]欄には、「=A3+$I$1」となっているでしょう。 前半の$の無い指定の場合は A2 から A3 に自動的にずれているのが分かるでしょう。

各欄を自動計算できるように計算式を作る

 3行目のその他の欄について自動計算できるように計算式を入れてやります。

  1.  位置を示す[B3]欄には、「=B2+C2*$I$2」と入れます。x' = x + vΔt を意味します
  2.  速度を示す[C3]欄には、「=C2+D2*$I$2」と入れます。v' = v + aΔt を意味します。
  3.  加速度を示す[D3]欄には、「=」と入れます。
  4.  力を示す[E3]欄には、「=−$G$2*B2」と入れます。なお、これはばねの力を想定しています。

 3行目の計算式が完成すれば、それを下の行にコピーすれば自動的に対象欄を変えながら複写してくれます。 コピーする行数は3000行程度あればよいようです。

3行目まで完成した「エクセルシート」  通常モードでは計算式は見えません(計算結果だけが表示されます)

  
時間(s)位置(m)速度(m/s)加速度(m/s2)力(N)質量(kg)ばね定数(N/m)抵抗係数(Ns/m)時間間隔(s)重力加速度
00.200001.0010000.0010
=A2+$I$2=B2+C2*$I$2=C2+D2*$I$2=E2/$F$2=-$G$2*B2     
=A3+$I$2=B3+C3*$I$2=C3+D3*$I$2=E3/$F$2=-$G$2*B3     
          
          

計算された結果をグラフで表示する

 エクセルはグラフにして表示することも簡単に出来ます。グラフにする操作手順は今回は説明しません。 皆さんがエクセルの解説書を読んで挑戦してみてください。

 なお、筆者(志)が作ったエクセルファイルをダウンロードできるように、このページの末尾にリンクを作成しています。 試しに使ってみてください。エクセルのマクロ機能を使わなくても、これだけのことがエクセルで出来るのですね。

次回、第10回は、エクセルシートの使い方を解説する

 次回(第10回)は、このエクセル・シートを使って、具体的な物理現象の解析をおこなう方法を解説します。 自由落下、投げ上げ、投げ下ろし、ばねの単振動などの標準的な運動のほか、 空気抵抗がある場合についても計算ができます。 落下運動で空気抵抗がある場合や、単振動で空気抵抗がある場合など空気抵抗の大小によってどのように 運動が変わって行くかをみることが出来ます。 待ちきれない人は、エクセルシートをダウンロードし、自分で試してみることもできます。
 では、次回(第10回)の 「微分方程式をエクセルで解くA」 をご期待ください。


2004/10/18  管理人(志)

次のボタンをクリックすると、運動解析エクセルシートを ダウンロード 出来ます。

このホームページは、2003/11/07 に始まりました。