コンピュータ入門 II (第11回) Mathematca 6: アニメーション

コンピュータ入門 II (第 11 回)
担当教員:西沢 清子:TA: 斎藤, 大和田 2004.12.13
Mathematca 6: アニメーション
今回は Mathematica のアニメーション機能について学びます。
Do
反復を実行する命令 Do について見ておきます。次を入力し実行してみて下さい。
Do[Print[i^2],{i,1,5}]
結果は、1、4、9、16、25 の5つの数字が出力されます。 Print は引数の値を表示する命令
です。
¶
³
Do
Do[f ,{i, imin, imax }]
変数 i が imin から imax に増加するまで繰り返し f を実行する命令
µ
´
チャレンジ!
次の結果を予想し実行してみましょう。
1. Do[Print[2 k-1],{k,1,5}]
2. Do[Print[1/m],{m,3,6}]
3. Do[Print[n!],{n,5}]
4. Do[Print[x],{x,-1,3,0.5}]
※ 3. のように imin を省略すると1から始まります。
※ 4. のように反復の刻み幅を指定することもできます (この場合は 0.5 刻み)
アニメーションは画像を繰り返し出力することで表現されます。次を入力し実行してみま
しょう。
Do[Plot[a x^2,{x,-3,3},PlotRange->{-4,4}],{a,-3,3}]
これは関数 y = ax2 の係数 a の値が-3から3まで変化した7枚の画像が出力されます。Mathematica では最初に描かれた画像をダブルクリックすると出力された複数の画像が順番に描か
れアニメ−ションになるはずです。アニメ−ションは下部のボタンで速さなどを調整できます。
チャレンジ!
関数 y = x2 + bx は b の取る値によってグラフはどのように変化していくでしょ
うか?また b の値によって変化しないものは何でしょうか? 更に頂点の図形の軌跡はどんな図形
か予想してみて下さい。次を入力し実行して下さい。
Do[Plot[x^2+b x,{x,-3,3},PlotRange->{-4,4}],{b,-3,3}]
出力された1枚目をダブルクリックしてアニメ−ションを確認してください。
こんどは x^2+b x の部分を {x^2+b x,b x} と代えて実行してみて下さい。
これにより関数 y = x2 + bx と y = bx の関係を見ることができます。
チャレンジ!
関数 y = ax3 + 1 の a の値による変化のアニメ−ションを作成して下さい。ま
た、反復の刻みを1以下にすると変化が滑らかに見られるので試してみて下さい。
Hue 関数を使ったアニメ−ション
こんどは Mathematica のアニメ−ション機能と色関数 Hue を使って sin x, cos x の振る舞い方
を見てみましょう。まずその準備として色を出す関数を紹介しておきます。
Hue[h]
は、0 5 h 5 1 の数値 h に対応した色調を指示する関数です。次を入力・実行し数値 h におけ
る色の変化を見てみましょう。
Show[Graphics[Table[{Hue[i/20],Rectangle[{i,0},{i+1,1}]},{i,0,20}]]]
鮮やかな色の帯が浮かび上がりました。この帯は h が0から1の 20 等分しそれに対応した色
が左から右に推移しています。他にも Hue で色の濃淡や明暗をコントロ−ルできます。 詳しく
は ?Hue で調べ余裕があれば試してみて下さい。また、次も実行してみましょう。
Show[Graphics[Table[{Hue[i/20,j/20,1],Rectangle[{i,j},{i+1,j+1}]},{i,0,20},{j,0,20}]]]
※ Hue[h,s,b] はそれぞれ、色相、彩度、輝度を示し、0∼1 までの値をとる。Hue[h] は、Hue[h,1,1]
と同じ。さて、sin θ は単位円上での y 座標に対応しています。そこで円周上での点の動きを y
軸上に投影すると、sin θ の動きが明瞭になります。それを実現する Mathematica のアニメ−
ションを次に示します。
¶
アニメ−ション
³
Do[x=Cos[t];y=Sin[t];
Show[Graphics[
{Circle[{0,0},1],PointSize[0.03],
{Hue[0.6],Point[{x,y}]},
{Hue[0],Point[{0,y}]},
Line[{{0,0},{x,y}}]},
PlotRange->{{-1.2,1.2},{-1.2,1.2}},
Axes->True,Ticks->None,AspectRatio->Automatic]
],{t,0,2 Pi,Pi/6}]
µ
チャレンジ!
上の命令を cos θ の変化が描かれるように変更してみましょう。
チャレンジ!
上の命令の1行目の y=Sin[t] を y=0.5*Sin[t] にかえてみましょう。
青い点はどのような図形を描くかを予想しましょう。
Sin[t],Cos[t] にかける値を変更し考察してみましょう。
その際 PlotRange の範囲をかえてみましょう
´