[matplotlib animation] 19. 鉛直投げ上げ (vertical throw up)

matplotlib Animation
スポンサーリンク

matplotlib FuncAnimationによる鉛直投げ上げのアニメーション

コード

でできるアニメーション。

解説

モジュールのインポート

3Dグラフの設定

球データの生成

[matplotlib 3D] 18. 3D surfaceプロット2
mplot3d surface plotのデモ その2 3次元空間に球をプロット

↑に基づいて、球データの作成。底面に接するようにzに+rしている。(rは半径)

各種パラメータの設定

初速度をv0、重力加速度を9.8とすると、発射してから戻ってくるまでの時間(t)は、

$$t = \frac{2v_0}{g}$$

グリッドと軸ラベル、アスペクト比の設定

球の最高到達点の高さ(h)は、

$$h = \frac{v_0^2}{2g}$$

となるので、これに基づいてxyzの範囲を設定する。

アニメーションの設定

アニメーションを表示するためのグラフのリストを作成する。

アニメーションでは古いプロットを消す必要があるので、
グラフのリスト(ball_1)にグラフが入っている場合は.remove()で消す。

tの値が順次変化するので、順次変化するzを計算して、プロットしていく。

zの位置は、↓のようになる。

$$z = v_0 t -\frac{1}{2} gt^2$$

作成したプロットをリスト(ball_1)に入れることでアニメーションを表示できる。

アニメーションの表示

FuncAnimationでanimationの表示。updateを50step実行してアニメーションとする。intervalは100 ms なので5秒のアニメーションとなる。
HTML(ani.to_html5_video())でjupyter notebook上にアニメーションを表示できる。

参考

鉛直投げ上げ公式の覚え方・これでもう絶対に間違えない!|高校生向け受験応援メディア「受験のミカタ」
鉛直投げ上げの公式と最高点の高さの求め方・公式、そして計算問題をご紹介します。鉛直投げ上げの公式はすぐに導くことができ、難しくはありません。この記事を読み終えた頃には、鉛直投げ上げについてほぼ完ぺきに理解できているようになっているでしょう。

コメント