HOME > natural science Laboratory > 学会へ行こう!プロジェクト > Event Driven Science > コンピュータ・サイエンス講座 > 基礎講座

第2回授業報告(2008.06.06)

文責:林 叔克 (2008年6月 7日) カテゴリ:基礎講座(19)

今回の授業は、新たに文学部や法学部の1年生の参加となった。自然現象のアルゴリズムを見いだし、シミュレーションを構築することで、自然の原理を解明していこうという方向性を最初に提示した。

ボールの運動を記述するのに、座標軸の導入が必要となるが、との必然性をデカルトが、どのように「ここはどこ? いまはいつ?」という問いに答えようとしたかという逸話を紹介した。ここという場所を指し示すのに、基準となる場所が必要になる。この基準を原点とよび、座標軸を自然界に導入したことこそが、自然い対して人が見方を提示した瞬間である。この座標軸によって速度の定義など、他の物理量の定義が可能となる。

さて、ビリヤードの玉が壁にぶつかって反射していく世界を予測しよう!というのが課題である。

プログラムの実行文である等式、x=x+1;がこの瞬間と未来のつなぐ式であることを理解するとは、右辺のxは今のこの瞬間を表し、左辺のxは、未来の玉の位置を表していることを理解することである。 for文が繰り返される中で、xという変数に入る値が変わっていく。授業では数字がはいる箱という意味で、ブラックボックスという言い方をした。forループという繰り返しの中で、xという値がワンステップ毎に更新されていき、玉の運動が記述される。

玉が壁にぶつかる瞬間になにがおこるのか?「運動の向きがかわる」という意見がでてきたが、向きが変わるとは、どういう意味なのか?速度が方向性を持ち、方向性が導入した座標のプラス方向か、マイナス方向かで、符号がきまる。まず、ここで全員が立ち止まって考えた。

次にプログラム上で、速度の方向がどのように変化を書き表すことが必要となる。衝突が起こった瞬間におこる、過去と未来をつなぐ式を、過去を表す右辺、未来を表す左辺で表すにはどのようにしたらいいのだろうか?
C言語のプログラミングにおける課題としては、プログラム上におけるイコール=の意味は、数学の等式とは異なっているので、授業ではこのプログラム上のイコールという概念を構築するのに時間をかけた。
アルゴリズムを構築するさいに、繰り返し計算と条件分岐の理解が必要となるが、ボールが壁にぶつかるという瞬間をどのように条件とするのか、さらにボールが壁にぶつかる瞬間に「真」、ぶつからないならば「偽」という判定がなされる。

以上、「ボールが跳ね返るということは、どういうことか?」のアルゴリズムを繰り返し計算と条件分岐で構築した。


衝突するボールのプログラミング

for ループによる繰り返し計算
{
   x=x+Vx;//ボールの位置を更新する

  if(衝突の条件判定)
 {
  ーVx=Vx;//衝突の前後のワンステップにおこる現象を捉える
  }

}
cs1-3-2.gif


▲このページのトップ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との接続に失敗しました