自由落下シミュレーション scipy

自由落下シミュレーション

Scipyを使用して物体の自由落下の運動をシミュレーションし、結果をグラフ化してみましょう。

以下のコードでは、物体の初期の高さ重力加速度を入力として受け取り、物体の自由落下の運動をシミュレーションします。

シミュレーション結果を時間物体の高さの関係でグラフ化します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import numpy as np
import matplotlib.pyplot as plt
from scipy.constants import g

def simulate_free_fall(initial_height):
time = np.linspace(0, np.sqrt(2 * initial_height / g), 100) # 0から物体が地面に到達するまでの時間を100等分
height = initial_height - 0.5 * g * time**2 # 物体の高さを計算

return time, height

# 初期高さと重力加速度を設定
initial_height = 100.0 # 初期高さ(任意の値)
gravity = g # 重力加速度(地球の場合は9.8 m/s^2)

# 自由落下の運動をシミュレーション
time, height = simulate_free_fall(initial_height)

# 結果をグラフ化
plt.plot(time, height)
plt.xlabel('Time (s)')
plt.ylabel('Height (m)')
plt.title('Free Fall Simulation')
plt.grid(True)
plt.show()

このコードでは、numpyを使用して時間を0から物体が地面に到達するまでの時間に分割し、matplotlibを使用して結果をグラフ化しています。
x軸には時間(秒)、y軸には物体の高さ(メートル)を表示しています。

このグラフを通じて、物体が自由落下する際の高さの変化を視覚的に確認することができます。
時間が経つにつれて、物体の高さが減少していく様子がわかります。

グラフ解説

このグラフは、物体の自由落下の運動をシミュレーションした結果を表しています。

x軸は時間(秒)を表し、y軸は物体の高さ(メートル)を表しています。
グラフの形状は、物体が自由落下する過程で高さがどのように変化するかを示しています。

初期の高さが100メートルと仮定されている場合、物体は時間が経つにつれて高度が減少していきます。
最初は高さが減少する速度が緩やかですが、時間が経つにつれて減速し、最終的に地面に到達します。

グラフの形状は、放物線のような曲線となっています。
これは、物体が自由落下中に重力によって加速されるためです。
物体が自由落下する過程で、高さの変化は時間の二乗に比例して減少します。

このグラフを通じて、物体の自由落下の運動を視覚的に理解することができます。
時間が経つにつれて、物体の高さがどのように変化するかを確認できます。
また、初期高さや重力加速度を変更することで、グラフの形状がどのように変わるかを試すこともできます。