12月8日 演習(レポート)

  Mathematicaでの表示結果

 


 


解答例(黒字の部分をコピー&ペーストしてMathematicaで実行可能)
微分方程式のxとyに関する解 x = vt・cos(θ), y = vt・sin(θ)-(g/2)t^2 を入力しない方法。
m = 5;
v = 10;
st = Pi/6;
g = 9.8;
DSolve[{m*x''[t] == 0, x'[0] == v*Cos[st], x[0] == 0}, x[t], t]
DSolve[{m*y''[t] == -m*g, y'[0] == v*Sin[st], y[0] == 0}, y[t], t]
S=NDSolve[
{ x''[t] == 0, x'[0] == v*Cos[st], x[0] == 0,
m*y''[t] == -m g, y'[0] == v*Sin[st], y[0] == 0},
{x[t],y[t]}, {t,0,1.2}]
<< Graphics`Animation`
Animate[
ParametricPlot[
Evaluate[{x[t],y[t]}/.S],
{t,n-0.005,n+0.005},PlotRange->{{0,9},{0,1.3}}
],{n,0.01,1.1,0.1}
];

"Aida Michiko"と"Hiroshi Yoshimitu"
の解答を組み合わせた例


Animate[
 ParametricPlot[
  {5*Sqrt[3]*t,(5*t)-(4.9)*t^2},{t,n-0.005,n+0.005},PlotRange->{{0,10},{0,1.3}}
 ],{n,0.01,1.1,0.1}
];

3D表示への改良例

xp[t_] := 5 Sqrt[3] t;
zp[t_] := 5t - 9.8/2*t^2;
Animate[
ParametricPlot3D[
{xp[t],2.5,zp[t]},{t,t1-0.01,t1+0.01},PlotRange->{{0,9.5},{0,5},{0,2}}
],{t1,0.001,1.1,0.1}
];
"Table","Show"と"Cuboid" (まだ教えてない、新コマンド)を
使った「空飛ぶ立方体」(2番目のアニメ)


xp[t_] := 5 Sqrt[3] t
yp[t_] := 5t - 9.8/2*t^2

Table[
{Show[
Graphics3D[
Cuboid[{xp[t]-.1,2.5-.1,yp[t]-.1},{xp[t]+.1,2.5+.1,yp[t]+.1}],
PlotRange->{{-1,13},{0,5},{-1,3}}
],ViewPoint->{1.703,-2.818,0.779}
]},{t,0.0,1.2,0.1}
];

その他の解答例
1."Table"を使った例(1番目上のアニメ) by michimura shinnji
Also reported by takeharu fujie, Shou Takemitsu, Akazawa Noritoshi, yasuakiterao,
Yoneshima Junko, Wakamoto Shuichi , hirotaka, yu-ji.m, Yasuhiko Mizuno, hashimoto.

m = 5
v = 10
a = Pi/6
g = 9.8
DSolve[{m*x''[t] == 0, x'[0] == v*Cos[a], x[0] == 0}, x[t], t]
DSolve[{m*y''[t] == -m*g, y'[0] == v*Sin[a], y[0] == 0}, y[t], t]

球が地面に戻る時間を計算した例
by takeharu fujie, Yoneshima Junko, Wakamoto Shuichi , yu-ji.m

Solve[5t - 9.8*t^2/2 == 0, t]

ParametricPlot[{x[t] = 5*3^(1/2)*t, y[t] = 5t - 9.8*t^2/2}, {t, 0, 1.02041}];

Table[
 ParametricPlot[
  {x[t] = 5*3^(1/2)*t, y[t] = 5t - 9.8*t^2/2}, {t, 0, n},
  PlotRange -> {{0, 10}, {0, 1.3}}],
 {n, 0, 1.1, 0.1}
];

2."Animate"を使った例 by Hiroshi Yoshimitu.
「短い線が飛ぶアニメ」。x[t],y[t]をy[x]に変換。
Animate[
Plot[x/(3^(1/2)) - x^2/15, {x, 5*3^(1/2)*t, 5*3^(1/2)*(t + 0.05)}],
{t,0,1,0.1}, PlotRange->{{0, 10}, {-0.2, 1.3}}];

3."Animate"と"ParametricPlot"を使った例 by Aida Michiko

Animate[
ParametricPlot[
{5*Sqrt[3]*t,(5*t)-(4.9)*t^2},{t,0,n},PlotRange->{{0,10},{0,1.3}}
],{n,0.1,(50/49),0.1}
];
4.x[t],y[t]をy[x]に変換 by Takuya Takahash and others.
Animate[
Plot[
{Tan[Pi/6]*x-4.9*(x^2)/((10^2)*((Cos[Pi/6])^2))},{x,0,10*Cos[Pi/6]*t}
],{t,0.0,1.2,0.1},AxesLabel->{"x","y"},PlotRange->{{0,9.5},{0,1.3}}
];
5.軌跡を点で表示 by Takuya Takahash
  (小さくて見えない?)

Animate[
 ParametricPlot[
  {10*Cos[Pi/6]*t,10*Sin[Pi/6]*t-4.9*(t^2)},{x,0,10},PlotStyle->PointSize[0.5]
 ],{t,0,1.2,0.1},AxesLabel->{"x","y"},PlotRange->{{0,9.5},{0,1.4}}
];

ホームページに戻る

Dec. 14 2000