【Python-物理】初速と放出角度から放物線を計算する方法!

こんにちは、ヒガシです。

 

このページではPythonというプログラミング言語を使って、以下の画像のように初速と放出角度から放物運動の履歴(放物線)を計算する方法をご紹介していきます。

物体の放物線を計算するという概要図

なお、今回の計算は重力加速度9.8m/s2、空気抵抗はなしとして計算していきます。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

必要なライブラリ一覧

★matplotlib

★numpy

★math

 

特別なものはないですね。

Anacondaを使っている人はおそらくすべてインストールされているはずです。

 

スポンサーリンク

放物線を計算するサンプルコード

それでは本題である放物線の計算に入っていきましょう。

 

以下がそのサンプルコードです。

import matplotlib.pyplot as plt
import numpy as np
import math
#初期条件設定
iniV=10
angle=45
dt=0.1
total_time=1.5
Vxini=iniV*math.cos(2*math.pi*(angle/360))
Vyini=iniV*math.sin(2*math.pi*(angle/360))
#速度、位置計算用の時間データ
time=np.linspace(0,total_time,int(total_time/dt+1))
#速度、位置履歴の計算
Vx=Vxini
Vy=Vyini-9.8*time
X=Vx*time
Y=Vyini*time-1/2*9.8*time*time
#グラフ作成
plt.scatter(X,Y)
plt.xlabel('X',fontsize=14)
plt.ylabel('Y',fontsize=14)
plt.xlim(0,12)
plt.ylim(0,12)
plt.savefig("pic1.jpg", dpi=300)

 

基本的にあなたが設定するべきことは、5~8行目までの初速、放出角度、グラフ化する際の刻み時間、総計算時間の4つだけです。

 

※もし放物線が途中できれていて全部表示したい場合はplt.xlim, plt.ylimの設定を変更すればOKです。

 

スポンサーリンク

サンプルコードの実行結果

それでは先ほどのコードを設定を変えながら実行してみましょう。

 

まずは先ほどのコードと同じ、

iniV=10
angle=45
dt=0.1
total_time=1.5

で実行してみましょう。

 

以下のグラフが出力されました。

サンプルコードの実行結果①

問題なく計算できていそうですね。

 

つぎは以下で実行してみます。

iniV=15
angle=75
dt=0.1
total_time=3

サンプルコードの実行結果②

問題なく設定が反映できていそうですね。

 

スポンサーリンク

おわりに

というわけで今回はpythonを使って、初速&放出角度から物体の放物線を計算する方法をご紹介しました。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました