はじめに
本記事では、空気抵抗がある場合の斜方投射をmatplotlibのFuncAnimationを使用してアニメーション表示する方法について解説します。物理シミュレーションとPythonのアニメーション機能を組み合わせることで、空気抵抗の影響を受ける物体の軌道を視覚的に表現します。
解説
モジュールのインポート
バージョン
データの生成
常微分方程式を解くことでシミュレーションデータを生成します。詳細については下記記事で解説しています。

[SciPy] 13. solve_ivpで空気抵抗を考慮した斜方投射問題を解く
scipyのintegrate.solve_ivp関数を使って常微分方程式を解く方法を解説。本記事では空気抵抗を考慮した斜方投射問題を例に、初期値問題の設定方法からシミュレーション結果の可視化まで実践的に学べる。Pythonによる科学計算の基礎知識を深めたい方向け。
アニメーションの設定
最初に表示する図の設定
p1からp5までのプロットをあらかじめ作成しておきます。
アニメーション関数の設定
set_dataメソッドを使用して各プロットにデータを順次適用することで、滑らかなアニメーション表示を実現します。
アニメーションの表示
軌跡を表示しない版
まとめ
空気抵抗がある場合の斜方投射シミュレーションをmatplotlibのFuncAnimationを使って実装しました。物理モデルに基づいた運動方程式を数値的に解くことで、より現実的な物体の軌道をアニメーションとして表現できることを示しました。このような視覚化は物理現象の理解を深めるのに役立ちます。
参考

[SciPy] 13. solve_ivpで空気抵抗を考慮した斜方投射問題を解く
scipyのintegrate.solve_ivp関数を使って常微分方程式を解く方法を解説。本記事では空気抵抗を考慮した斜方投射問題を例に、初期値問題の設定方法からシミュレーション結果の可視化まで実践的に学べる。Pythonによる科学計算の基礎知識を深めたい方向け。
solve_ivp — SciPy v1.16.2 Manual
コメント