コンピュータサイエンス―基礎講座・第五回―
コンピュータサイエンス基礎講座 4/3
今日は、先週行った放物運動で、物体が放物運動する時に速さがだんだん速くなったり、だんだん遅くなったりするということは分かったが、それが具体的にどういうことなのかが分からなかった。
では、速さの変化を数字として見てみてみることにしよう。
まずは、ボールが垂直落下するときをシミュレーションしてみる。このとき、ボールと地面の摩擦は考えない。(ボールはy=0のときに跳ね返るようにした。)
そして、printfを使ってボールの速さの変化を見てみる。いったい、ボールの速さはどう変わっていくのだろうか??
解答例
プログラムの解答例は以下のとおりである。
(初期値は省略)横の番号は、行数を表す。
1. double x; //ボールのx座標 2. double y; //ボールのy座標 3. double Vx; //ボールのx軸方向の速さ 4. double Vy; //ボールのy軸方向の速さ 5.double A; //加速度 6.y = y + Vy; 7.Vy = Vy - A; 8.if(y <= 0) 9.{ 10. Vy = -Vy; 11.} 12.printf("ボールの速さは%f\n", Vy);
プログラムの意味
まず、ボールを放り投げた状態を作った。それが6行目だ。
しかし、重力でボールはどんどんと下へ引っ張られる(7行目)ため、ボールはだんだんと下向きに動く。
そして、ボールが地面に着いたとき(8行目)に速さは反対方向になる。(10行目)
そして、速さの変化する様子を表すのが12行目である。
速さの変化を見て
ボールが垂直に落下して跳ね返り、また、速さがどう変化しているかを書き出すプログラムを作成した。
速さの変化を数字として見ると、数がどう変化しているか、なんとなくわかる。が、まだいまいち分かりにくい。
そこで、速さの変化を数字から、グラフにしてみた。
すると、少し不思議なグラフに...。
まずは、グラフがどういう意味なのかを考えた。その後、どの速さの時にボールがどこの位置にあるのかを考えた。
位置と速さの関係から、ボールがだんだん速くなる・遅くなるというのがなぜ起こるのかを考えた。まず、ボールにかかる力として重力がある。この重力は下向きにかかる力である。
だから、ボールが下向きに動くときには、ボールの持っているもともとの速さと、重力が合わさって、より速くなっていく.
しかし、ボールが上向きに動くときにはボールの速さは上向きだが、重力は下向きであり、ボールは上に進んでいるにもかかわらず、下に引っ張られるのでどんどん速さは遅くなり、最後には0になって、今度は下向きの速さに変わっていく。
来週の予定
来週は、今回行ったボールの垂直落下の運動をもう少し詳しく行う。
詳しく、というのは、実際にボールを落下させると、地面について跳ね返った時に、どんどん跳ね返った後の速さは小さくなる。このどんどん跳ね返った後に速さが小さくなるということがいったいどういうことなのかを、考えていく。