高校「物理IB」
正弦波を描いてみよう
2002,1,9更新
 
 物理の授業で出てくる波の方程式を理解させるには実際にVBなどでグラフを描くのがいいと思います。ここでは物理の授業で実践した波の方程式(y=振幅*sin(t/周期-x/波長))を理解させるためのプログラミングを紹介します。
■ねらい
  • 波の方程式の波長、振幅を変化させるとどうなるかを理解させる。
  • 波の重ね合わせの原理を理解させる。
  • うなりのしくみを理解させる。
■課題1〜波の方程式をグラフに表す。
(1)フォームにPicture1とCommand1を置きます。
  • Picture1
  • Command1
(2)コード〜「Command1」ボタンをダブルクリックして以下のコードを打ち込む。
Private Sub Command1_Click()
 Dim x, y1 As Single
 Picture1.Line (0, 1000)-(10000, 1000), QBColor(4)
 For x = 0 To 10000
  y1 = 500 * Sin(x / 30)
  Picture1.PSet (x, y1 + 1000), QBColor(9)
 Next x
End Sub
1行目 コマンド1をクリックしたらEndSubまでのプログラムを実行すますよ。
2行目 xとy1の2つの変数を使いますよ。
3行目 x軸を引きます。色は4番(赤)にしましょう。
4行目 For to 〜Nextの範囲を、xの値が1から1万になるまで繰り返します。
5行目 y1 = 振幅* Sin(x / 波長)
6行目 指定された座標に点を打ちます。
(3)実行結果
(4)発展〜波長と周期をいろいろ変えてプログラムを実行しましょう。
■課題2〜波の重ね合わせの原理
(1)コード(赤字が課題1に追加した部分)
Private Sub Command1_Click()
 Dim x, y1
, y2 As Single
 Picture1.Line (0, 1000)-(10000, 1000), QBColor(4)
 For x = 0 To 10000
 y1 = 500 * Sin(x / 30)
 
y2 = □ * Sin(x /□)
 Picture1.PSet (x, y1 + 1000), QBColor(9)
 
Picture1.PSet (x, y2 + 1000), QBColor(10)
 Picture1.PSet (x, y1 + y2 + 1000), QBColor(14)

 Next x
End Sub
■課題3〜波の重ね合わせの原理(うなり)
(1)コード(赤字が課題1に追加した部分)
Private Sub Command1_Click()
 Dim x, y1
, y2 As Single
 Picture1.Line (0, 1000)-(10000, 1000), QBColor(4)
 For x = 0 To 10000
 y1 = 500 * Sin(x / 30)
 
y2 = 500 * Sin(x / 29)
 Picture1.PSet (x, y1 + 1000), QBColor(9)
 
Picture1.PSet (x, y2 + 1000), QBColor(10)
 Picture1.PSet (x, y1 + y2 + 1000), QBColor(14)

 Next x
End Sub
(2)実行結果

黄色の波形が合成波。うなり(振幅の強弱)が観測できる。
■参考になるサイト

index