力学的エネルギー保存の法則
今回の記事では エネルギー とよばれる量を導入します。エネルギーに関する詳細な議論は先の記事で扱いますが、当面の間は運動エネルギーと位置エネルギーの定義式を天下り的に使いながら、数値シミュレーションを通してその性質を探っていきます。
運動エネルギーと位置エネルギー
質量
で与えられます。また、物体が置かれた天体 (惑星または衛星) の表面付近における重力加速度が
で定義されます (
エネルギーは [kg] × [m/s2] × [m]、すなわち [kg・m2/s2] の単位をもちます。
この単位をジュールと定義して、J という記号で表します。
力学的エネルギー保存の法則
前回記事に続いて月面における自由落下運動を考察しますが、位置エネルギーを計測しやすいように、座標軸の設定を変えることにします。
で与えられます。前回記事とはボールにはたらく重力の符号が逆になっていることに注意してください。両辺から
両辺を積分すると速度の式が得られます。
もう一度積分すると高度が得られます。
初期条件
より
で与えられます。
高度
# File_Mechanics_02
# In[1]
import numpy as np
import matplotlib.pyplot as plt
# 月面付近の重力加速度
g = 1.62
# ボールの質量
m = 0.15
# 高度の初期設定
h = 1e4
# ボールが地面に到達する時間
t_max = np.sqrt(2*h/g)
# 落下時間
t = np.linspace(0, t_max, 129)
# 落下速度
v = - g * t
# 高度
y = h - (g * t**2) / 2
# 運動エネルギー
K = (m * v**2) / 2
# 位置エネルギー
U = m * g * y
# FigureとAxesの設定
fig, ax = plt.subplots(figsize=(6.5, 4))
ax.set_title("Energy vs time", fontsize=16, pad=10)
ax.grid()
ax.set_xlim(0, max(t))
ax.set_ylim(0, max(U)*1.2)
ax.set_xlabel("t [s]", fontsize=14, labelpad=8)
ax.set_ylabel("K, U [J]", fontsize=14, labelpad=8)
# K,U,K+Uの時間変化をプロット
ax.plot(t, K, color="red", label="K")
ax.plot(t, U, color="blue", label="U")
ax.plot(t, K + U, color="black", linestyle="--", label="K + U")
# 凡例を表示
ax.legend(loc=(0.05, 0.1))
plt.show()
赤いラインが運動エネルギー、青いラインが位置エネルギーの時間変化を表しています。ボールは落下と共に位置エネルギーを減少させていきますが、減少量を補うように運動エネルギーが増加しているのがわかります (点線で表される力学的エネルギー
つまり、自由落下とは「持っている位置エネルギーの全てを運動エネルギーに変換する運動」といえます。
自由落下のように重力のみが作用するような運動では、力学的エネルギーは一定値を保つことが知られています。これを 力学的エネルギー保存の法則 とよびます。しかし、地球上での落下運動では力学的エネルギー保存の法則は成立しません。空気抵抗によって位置エネルギーの一部が大気中に散逸してしまう (大気を構成する分子の運動エネルギーに変換される) ので、すべての位置エネルギーがボールの運動エネルギーに変換されるわけではないからです。
より一般的には、物体に重力や静電気力、弾性力などの保存力のみがはたらいている状況において、力学的エネルギー保存則が成立します。ただし、保存力の一般論は少し先の記事で学ぶことになります。
月面衝突のエネルギー
前回記事では高度
質量
# In[2]
# 月面衝突時の運動エネルギー
print("月面衝突時の運動エネルギー: {:.2f} [J]".format(max(U)))
# 月面衝突時の運動エネルギー: 2430.00 [J]
念のために、運動エネルギーの定義式
# In[3]
# 月面衝突時の運動エネルギー
k = m * 180**2 /2
print("月面衝突時の運動エネルギー: {:.2f} [J]".format(k))
# 月面衝突時の運動エネルギー: 2430.00 [J]
たとえば、プロ野球の剛腕投手が投げるボールの球速は時速
# In[4]
# プロ野球選手が投げるボールの球速
vb = 150 / 3.6
# ボールの運動エネルギー
k = m * vb**2 / 2
print("プロ野球選手が投げるボールの運動エネルギー: {:.2f} [J]".format(k))
# プロ野球選手が投げるボールの運動エネルギー: 130.21 [J]
大きなスケールの運動を扱ってきた後で見ると、たったの
コメント