波のアニメーション

波は物理現象の中で基本的なものといえます。視覚的には日常的に目にしていますが、音や光のように視覚的にはわかりにくいものもあります。Maple のアニメーションにより数式を視覚化することで理解を助けてくれます。

また Maple では作成したワークシートをそのままアニメーションを含め (GIF 化) ホームページ化できます (HTML へのイクスポート機能)。

ここでは Maple でアニメーションがいかに簡単にできるかを実例で見て頂くことで教材などの開発にお役立ていただきたいと思います。
最初に以下のように初期設定します。

>    restart;

>    with(plots):with(plottools):

Warning, the name changecoords has been redefined

Warning, the assigned name arrow now has a global binding

水面に石を投げた時にできる波紋を表現してみました。変数x、yが空間的な座標を表し、tが時間座標を表します。

>    animate3d(sin(2*sqrt(x^2+y^2)-t),x=-3*Pi..3*Pi,y=-3*Pi..3*Pi,t=0..2*Pi,
          grid=[30,30],style=PATCHNOGRID,
          shading=zgrayscale,orientation=[0,5],frames=8);

[Maple Plot]

断面を二次元的に表示します。これらは空間的な表示です。

>    animate({Heaviside(x)*sin(x-t),Heaviside(-x)*sin(-x-t)},x=-5*Pi..5*Pi,t=0..2*Pi,numpoints=400,frames=10);

[Maple Plot]

>    n:=15:t:=0:dt:=2*Pi/n:p:=NULL:
for k to n do
x0:=5*Pi:y0:=sin(5*Pi-t):
elli := ellipse([x0,y0], 0.5, 0.05, filled=true, color=blue):
:ss:=plot(sin(x-t),x=0..10*Pi);
p:=p,display(ss,elli,view=[0..10*Pi,-1..1]):
t:=t+dt:
od:
display(p,insequence=true);

[Maple Plot]

横軸に時間をとり、その点の上下運動をプロットしえみます。  時間の変数tに値が入っていますので変数を初期化しています。

>    t:='t':

>    plot(sin(5*Pi-t),t=0..10*Pi);

[Maple Plot]

このような波は、波の進行方向の直行方向に振動しており横波と呼ばれます。

縦波

スプリングなどの信号は横波に対し波の進行方向に平行して振動しています。このような波を縦波と呼びます。

>    p:=NULL:
t:=0:
n:=8:
dt:=2*Pi/(n-1):
for k to n do
  p := p,spacecurve([cos((10+sin(y-t)/10)*y),y,sin((10+sin(y-t)/10)*y)],
                    y=4*Pi..8*Pi,numpoints=300):
  t:=t+dt:
end do:
display3d(p,insequence=true,orientation=[-20,30]);

[Maple Plot]

断面を二次元的に表示してみましょう。

>    t:='t':

>    animate(sin((10+sin(x-t)/10)*x),x=4*Pi..8*Pi,t=0..2*Pi,numpoints=300,frames=10);

[Maple Plot]

波の周波数が時間と共に変化しています。周波数の変化も同時にプロットしてみましょう。

>    t:='t':

>    display(matrix(2,1,[[animate(sin((10+sin(x-t)/10)*x),x=4*Pi..8*Pi,t=0..Pi,numpoints=190)],[animate(sin(x-t),x=4*Pi..8*Pi,t=0..4*Pi)]]));

[Maple Plot]

>