第3章 Mathematicaでアニメ−ション
アニメ−ションを作成するには、<<Graphics’Animation’のパッケ−ジを最初にロ−ドする。
アニメ−ション実演
アニメ−ションを利用すると理解しやすい入試問題を取り上げてみよう東京大学1996年
xyz−空間内の円柱x2+y2=R2(R>0)を側面とする容器に、水がz=0と一致するようにz≦0の部分に水が入っている。z≧0に対して定義された連続な関数r(z)で、r(0)=0、0≦r(z)≦Rを満たすものとする。xz平面内の不等式0≦x≦r(z),z≧0で表される領域を、z軸の周りに1回転してできる回転体を毎秒1の速さで下に動かすと、t秒後には水面がz=f(t)に上昇するという。T≧0に対して、f(t)=et−t−1である時、関数r(z)を決定せよ。
解答
両辺をtで微分すると
πr(t+f(t))2(1+f'(t))=πR2f'(t)
これにf(t)=et−t−1を代入する。特にf'(t)=et−1も代入すると、
r(et−1)et=R2(et−1)
et−1=zとおくと、r(z)2(z+1)=R2zより
t≧0よりz≧0 ∴…(答)
水面の上昇をアニメ−ションで表現してみると
g[x_,k_]:=x^2/(4-x^2)-k f[k_]:=E^k-k-1 Do[Plot[{g[x,k],0, f[k]},{x,-1.95,1.95},PlotRange->{{-2,2},{-4,15}}, PlotStyle->{Thickness[0.01]}, GridLines->Automatic, AspectRatio->1.5],{k,0,3,0.5}]
更に、アニメ−ション化すると理解しやすい問題を考えてみよう。
北海道大学後期 4
水平な机の上の置かれた、1辺の長さ1の立方体のガラス容器に、その容積の1/4の量のインクが密封されている。図1に示すように、容器の内部に側面OABCから距離a、0<a<1の位置に、糸が辺OCに平行に張られている。底辺OAを机の上に固定し、それを回転軸として、図2のように、容器を静かに90°回転させて止めた。この過程において、少なくても一度インクに触れた糸の部分の長さを、f(a)とする。次の問いに答えよ。
ただし、ガラスの厚さは無視せよ。
(1)f(1/2)=1/4を示せ。
(2)1/4<a<1/2のとき、f(a)=1/8aを示せ。
解答
(1)a=1/2の時、図2、3、4番目において、インクの高さはOA=1、容積1/4より、面積1/4で一定。
(@)1/4<x<1/2の時 | (A)1/2≦x<1の時 | (B)x=1の時 |
面積: より、y=1/4 |
面積: より、y=x(1−x) |
これ以降、糸はインクは糸に触れないので、 ∴y=0 |
以上よりとなる。よって、最大値は1/4f(1/2)=1/4
この様な仮想実験的問題はアニメ−ション化してみると、理解しやすい。
Box={{0,0},{0,1},{-1,1},{-1,0},{0,0}}; Ito={{-1/2,0},{-1/2,1}}; Ro[t_]:={{Cos[t],-Sin[t]},{Sin[t],Cos[t]}}; Lev[t_]:=Which[N[Tan[t]]<0.5,{{-1,1/4-Tan[t]/2},{0,1/4+Tan[t]/2}}, 0.5<=N[Tan[t]]<=1.5,{{-2/(1+2 Tan[t]),0},{0,1/4+Tan[t]/2}}, 1.5<N[Tan[t]],{{-1/4-1/(2 Tan[t]),0},{-1/4+1/(2 Tan[t]),1}}] Do[Show[Graphics[{Line[Box.Ro[t]],Line[Ito.Ro[t]], Line[Lev[t].Ro[t]]}], AspectRatio->Automatic, Axes->True,PlotRange->{{-1,1},{0,1.5}}],{t,0,N[Pi/2]-0.001,N[Pi/24]}]