波の透過/反射(群速度を見る)

 下のプログラムがうまく動かない、という人はSUNのjavaの広場のページにいってjavaをダウンロードしてインストールしてみてください。動きが止まってしまった場合、windowをいったん最小化してからまた開くと動き出す場合があるようです。

 初期状態ではポテンシャルの差がゼロになっているので、反射が起きていない。スライドバーを左に動かすとV_0<0の場合(階段を下りる場合)に、右に動かすとV_0>0の場合(壁を登る場合)になる。壁を高くしすぎると波が透過できなくなる。

 ここでは、少しだけ波数(運動量)の違う二つの平面波を重ねている。それゆえ、波にこぶのようなふくらみができている。このこぶ一つをエネルギーの塊と考えれば、その塊の動く速度が群速度である。ずっと眺めていると、壁の左から塊一つが入射すると、ちょうど塊一つが透過していくのが見て取れる。V_0<0の状態にしているとわかりやすい。この場合、塊の長さは右側の方が長い。一つの塊が通過する時間は同じだから、右側の方が「塊の進む速度(すなわち群速度)」が速いということになる。この時、一個一個の小さい波の速度(すなわち位相速度)はむしろ右側の方が遅い。V_0>0の状態では塊が見えにくいのでわかりにくいが、注意深く見れば逆の現象が起きていること、つまり塊のサイズが小さくなっていることと、小さな波の山の速度はむしろ速いことがわかるはずである(位置エネルギーを高くしすぎると、透過が起こらなくなって妙な形になるので注意)。

 なお、このプログラムの理論的背景については「量子力学」講義録第7回を参照のこと。

 ソースコード(touka2.java)。その下請けクラスのソースコード(AnimeCanvas.java)