落体問題の計算例

[速度、加速度...]の教材ページの最後につけた 落体問題の小課題の計算例 (レポートの形をととのえてはいない。)

表計算のワークシートによる

Microsoft Excel または LibreOffice Calc のワークシートをつかうことを想定する。 表計算では、セルに計算式を入れることができる。 計算式から他のセルを参照することができるが、 それには、絶対参照 (列記号・行番号のまえに「$」をつける) と相対参照 (「$」をつけない) がある。 計算式をコピーすると、相対参照のばあいは参照先がずれていく。絶対参照のばあいは変わらない。 時間変化する数量を計算するときには、定数は絶対参照し、時刻ごとに変わる数量は相対参照する。

積分された式による

初期位置・初期速度と、 微分方程式を積分によってといた式をつかって、 それ以後の速度・位置の数値を計算する。

そのためのワークシートは、次の表の A~F 列である。 このうち、A~C列は、ひとつの事例の計算のあいだは定数とみなす数量を置いている。 A列が数量の名まえ、B列が数値、C列が単位である。 [2021-10-20 補足] 初期位置と初期速度の値は、各自が自由にあたえてよい。 このページにしめした数値は一例にすぎない。 しかし、ひとつの事例の計算のあいだは変えないという意味で「定数とみなす」とした。

D~F列は、時間変化する量を、各時刻を1行としてふくめている。 単位は省略しているが、時刻は s、速度は m/s、位置は m である。

A B C D E F
1 時刻 速度 位置
2 初期時刻 0.000000 s 0.000000 10.000000 50.000000
3 初期位置 50.000000 m 0.500000 5.100000 53.775000
4 初期速度 10.000000 m/s 1.000000 0.200000 55.100000
5 加速度 -9.800000 m/s2 1.500000 -4.700000 53.975000
6 時間刻み 0.500000 s 2.000000 -9.600000 50.400000
7 2.500000 -14.500000 44.375000
8 3.000000 -19.400000 35.900000
9 3.500000 -24.300000 24.975000
10 4.000000 -29.200000 11.600000
11 4.500000 -34.100000 -4.225000
12 5.000000 -39.000000 -22.500000

この表は、つぎのようにして作成した。

B列の各セルには数値を入れる。

セル D2 に =$B$2

セル D3 に =D2+$B$6 ... 上の行の時刻の値を参照して計算している。 この数式 (数値ではない) をその下にコピーしていく。

セル E2 に =$B$4+$B$5*D2 ... 同じ行の時刻の値を参照している。 この数式 (数値ではない) をその下にコピーしていく。

セル F2 に =$B$3+$B$4*D2+$B$5*D2*D2/2 ... 同じ行の時刻の値を参照している。 この数式 (数値ではない) をその下にコピーしていく。

数値あるいは数式のはいった各セルの書式を、数、小数点以下6けたとする。

データのある範囲を指定して、HTMLでエクスポートする。

(このページにふくめたものは、HTMLにしてから編集して、 行・列の番号を示すための列・行を追加している。)

B列の初期位置、初期速度を変えるといろいろなシミュレーションができる。

差分近似による

微分方程式を積分でといた式をつかうかわりに、 有限の (無限小でない) 時間きざみで近似計算する方法もある。 このような近似は、積分でとけない問題のばあいによくつかわれる。 ここではそのうちいちばん単純な (気象の分野でつかわれる用語で) 「前方差分」という方法による。 これは、ある有限時間区間の変化量を、区間のはじめの量で評価する方法である。

それにつかうワークシートは、上の表のA~D列とH~I列である。
A B C D E F G H I
1 時刻 速度 (前方差分) 位置 (前方差分)
2 初期時刻 0.000000 s 0.000000 10.000000 50.000000
3 初期位置 50.000000 m 0.500000 5.100000 55.000000
4 初期速度 10.000000 m/s 1.000000 0.200000 57.550000
5 加速度 -9.800000 m/s2 1.500000 -4.700000 57.650000
6 時間刻み 0.500000 s 2.000000 -9.600000 55.300000
7 2.500000 -14.500000 50.500000
8 3.000000 -19.400000 43.250000
9 3.500000 -24.300000 33.550000
10 4.000000 -29.200000 21.400000
11 4.500000 -34.100000 6.800000
12 5.000000 -39.000000 -10.250000

A~D列の内容は積分された式をつかうばあいと同じ。

セル H2 に =$B$4

セル H3 に =H2+$B$5*$B$6 ... 上の行の速度の値を参照している。 この数式 (数値ではない) をその下にコピーしていく。

セル I2 に =$B$3

セル I3 に =I2+H2*$B$6 ... 上の行の位置と速度の値を参照している。 この数式 (数値ではない) をその下にコピーしていく。

プログラム言語による計算 [2021-10-10 追加]

Python言語のプログラムによって上のワークシートと実質的に同じ計算をするプログラム例を追加した。 出力の文字列は ASCII 文字コードで表現できるアルファベット・数字にかぎり、表現は略式にした。 プログラム中のコメントには日本語文字をふくむ。その文字コードは UTF-8 にした。


運動エネルギー [2021-10-20 追加]

上にのべた、積分された式による計算 (いわゆる「解析解」) の速度にもとづいて、 質点の運動エネルギー (1/2) m vz2 の計算を追加する。

表計算のワークシートによる計算

上記のワークシート A~C列 (定数)、D~F列 (時間変化する量) をそのままつかう。 H~I列はつかわない。(今後の拡張で上記の差分計算とは別の目的でつかう可能性がある。)

定数として、質点の質量を、A~C列の7行めに追加する。(例は 0.1 kg としたが、値は自由に設定できる。)

ABC
7質量0.100000kg

変数として、G列に、運動エネルギーを追加する。

セル G1 に「運動エネルギー」を記入する。単位は省略しているが、J (ジュール) である。

セル G2 に、式「=$B$7*(E2^2)/2」を入れ、この数式 (数値ではない) を その下のセルにコピーしていく。

プログラム言語による計算

Python による 上記の rakutai1.py に運動エネルギーの計算を追加したのがつぎの rakutai3.py である。


位置エネルギー、力学的エネルギー [2021-10-27 追加]

上にのべた、積分された式による計算 (いわゆる「解析解」) の速度にもとづいて、 質点の位置エネルギー m g z と、力学的エネルギー (運動エネルギーと位置エネルギーの和) の計算を追加する。

表計算のワークシートによる計算

上記のワークシート A~C列 (定数)、D~G列 (時間変化する量) をそのままつかう。 H~I列をあたらしい目的につかう。

定数として、重力加速度を、A~C列の8行めに追加する。 なお、A~C列の5行めの加速度は、この重力加速度を参照 (絶対参照) する式に変更した。

=$B$8
ABC
5加速度m/s2
8重力加速度9.800000m/s2

変数として、H~I列に、位置エネルギー、力学的エネルギーを追加する。

セル H1 に「位置エネルギー」、I1 に「力学的エネルギー」 を記入する。単位は省略しているが、J (ジュール) である。

セル H2 に、式「=$B$7*$B$8*F2」を入れ、この数式 (数値ではない) を その下のセルにコピーしていく。

セル I2 に、式「=G2+H2」を入れ、この数式 (数値ではない) を その下のセルにコピーしていく。

プログラム言語による計算

Python による 上記の rakutai3.py に位置エネルギーと力学的エネルギーの計算を追加したのがつぎの rakutai4.py である。


2021-10-07, 2021-10-10, 2021-10-20, 2021-10-27
増田 耕一 (MASUDA Kooiti)
[この授業の目次ページ]