こんにちは、ヒガシです。
このページでは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を使って、初速&放出角度から物体の放物線を計算する方法をご紹介しました。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント