Home > GCalc活用研究 > 波のアニメーション

波のアニメーション

高等学校の『物理Ⅰ』では「発展」扱いでしたが、新課程の『物理』では正弦波の式は堂々と教科書に記載されています。
(数研出版の教科書では133ページに掲載されています。)

振幅を\( A \)、周期を\( T \)、波長を\( \lambda \)とします。このとき、\( x \)の正の向きに進む正弦波の変位\( y \)は、 \[ y(t,x)=A\sin 2 \pi(\frac{t}{T} -\frac{x}\lambda ) \] と表されます。ここで、\( x \)は位置を\( t \)は時間を表し、初期位相はゼロとしています。

1.横波のアニメーションを作る

正弦波の式を使って、進行波のアニメーションを作ってみましょう。

  • 振幅\( A = 1 \)[m] 、周期\( T = 2 \)[s]、波長\(\lambda = 4 \)[m]としましょう。アニメーションにする手順は次の通りです。
    1. 「新しいグラフ」をクリック。入力ウインドウで「2D陽関数」のプロットを選びます。
    2. 入力欄に式 \( \sin2\pi( \frac{t}{2} - \frac{x}{4}) \)を入れます。 GCalcでの入力は Sin[2Pi (t/2 - x/4)]です。 円周率\( \pi \)の表記がGCalcでは Piであることに注意してください。
      なお、ver 3.30 以降で、引数を( )で囲むをチェックした場合は、Pi の後ろに、掛け算の記号 * か、スペースを入れてください。
    3. 変数\( x \)の範囲は、0 < x < 12とし、 変数\( y \)のの範囲は、自動のチェックを外して-2< y < 2とします。
    4. 次に、アニメーションのページに移動し、「有効にする」にチェックをつけます。また、 初期値を\( 0 \)、パラメータを\( t \)、終値を\( 2 \)にします。 周期が2秒なので、この設定でもとに戻ります。フレーム数は16にして下さい。
    5. 「実行ボタン」をクリックします。メイン画面のグラフペインに3波長分の正弦波が描かれます。
    6. ツールバーのアニメーション操作ボタンのうち[動かす]ボタンを押して、グラフを動かします。 一時停止、コマ送りボタンもツールバーにあります。
    7.   
  • 次に反対向きに動かします。
    1. これは大変かんたんで、入力する式を \( \sin 2\pi( \frac{t}{2} + \frac{x}{4}) \)と \( x \) の前の符号を逆にするだけです。なぜを符号を逆にすると、逆向きに進むか考えてみてください。
    2. GCalcでの入力は Sin[2Pi(t/2 + x/4)]です。これがデータファイルの二番目のグラフです。
  • 次に定常波のアニメーションをつくってみます。
    1. 定常波は反対向きに進むふたつの等しい波が重なって生じる合成波なので、入力する式を Sin[2Pi(t/2 + x/4)] + Sin[2Pi(t/2+x/4)] にするだけです。
    2. 三角関数の加法定理(または和と積の公式)を使うと、 \[ A\sin 2 \pi(\frac{t}{T} -\frac{x}\lambda ) + A\sin 2 \pi(\frac{t}{T} +\frac{x}\lambda ) = 2A\cos 2 \pi \frac{x}\lambda \sin 2 \pi \frac{t}{T} \] ですから、位置 \( x \)により振幅が異なっている 単振動だとわかります。 \( 2A\cos 2 \pi \frac{x}\lambda \)が振幅を表す式です。 最大値\( 2A \)になる所が『腹』です。
  • 右に進む波、左に進む波、定常波の3つの波を同時に描くアニメーションをつくってみます。
    • GCalcでは、複数の曲線をプロットをする場合には、 曲線を表す数式をリスト(波括弧でくくり、コンマで区切る)にしますので、入力する式は
      { Sin[2Pi(t/2-x/4)] , Sin[2Pi(t/2+x/4)], Sin[2Pi(t/2-x/4)] + Sin[2Pi(t/2+x/4)] } になります。腹と節を持った進まない波、定常波の特徴が良く観察できると思います。 節と節の間隔は何波長分になっているでしょうか。
             

    赤い実線の波が右に進む波、赤い点線の波が左に進む波、太い青線の波が定常波(GCalcで作成したGifアニメーション)

2.縦波(疎密波)のアニメーションを作る

  • こんどは縦波の場合を考えます。縦波のアニメーションをつくるには、少し工夫が必要です。
    1. まず、\( x = k \)にある縦棒だけを考えてみましょう。この棒は\( x = k \)を中心として左右に単振動しています。
    2. 波の速さを\( v \)とすると、この棒の振動は原点に比べて時間が\( \frac{k}{v} \)だけ遅れてます。
    3. 原点の振動を \( A\sin 2\pi \frac{ t}{T} \)とすると、この式の\( t \) を \( t - \frac{k}{v} \)に置き換えて、 縦棒の振動を表すことができます。つまり \[ x_k (t) = k + A\sin \frac{ 2 \pi}{T}(t -\frac{k}{v}) \] です。
  • 次に、縦棒を何本も並べて縦波の進行波をつくってみましょう。  
    1. 棒は\( x = 0 \)から\( x = 10 \)まで、\( 0.5 \)[m]おきに並んでいることにします。一本だけだった場合の\( k \)が {0, 0.5,1.0, ・・・, 9.0, 9,5,10} のすべてをとれば(本当は、-0.5, 10.5もあったほうがよい)、 すべての棒が振動することになります。
    2. \( y \)軸に平行な直線は陽関数では描けませんので、陰関数のプロットで描きます。
    3. リストを作る関数Tableを使用して、入力する数式は
      Table[x == k + Sin[2Pi(t-k/8)] ,{k,0,10,0.5}]とします。 この式は、kを、0 から 10まで0.5ずつ増やして、21本の直線を作成する命令です。 ここでは、速さは\( v=8 \)[m/s]にしています。
    4. フレーム数を16にして、実行します。
    5. 多数の直線を16フレーム分用意するので、少し時間がかかりますが縦波のアニメーションが表示されます。
    6. 下の図がデータファイルの五番目のグラフです。私には多数の直線が百足のように動いて、密の部分が進んでいくように思えます。 一本一本の棒の動きにも注目してください。
      
  • 逆向きに進む縦波も作ってみましょう。また、左右に進む波を合成して縦波の定常波を作って観察してください。