VBAを用いたロケット方程式の数値解析
概要
VBAを用いロケット方程式の数値解析を行いました。
解析結果と微分方程式の解を比較した結果、1%以下の誤差となりました。
詳しくは日記をご覧ください。
方程式を変更すればロケットに限らず、様々な応用ができます。
微分方程式
ロケット方程式は以下のようになる

ここで初速度0とし、以下の式を上式に代入する。(無次元化)

各パラメータの意味は次の通り。
代入した結果が下式で、これに数値解析を行った。
Jaxaのデータを用いた結果も書いてあります
コード (VBA)
改良オイラー法による数値解析です。
Option Explicit
Implements Base
Dim V As Double
Dim V_Next As Double
Dim mass As Double '消費した燃料
Dim massPship As Double '全質量に対し、ロケットの占める割合
Dim delta As Double
Private Sub Class_Initialize()
mass = 0
V = 0
massPship = Range("B1").value
delta = 0.01
End Sub
Private Function Base_velocity() As Double
V_Next = V + (0.5 * (Differ(mass) + Differ(mass + delta)) * delta) '改良オイラー法
Base_velocity = V_Next
V = V_Next
mass = mass + delta
End Function
Private Function Differ(mass_ As Double) As Double 'dv/dm
Differ = (1 - massPship) / (1 - (1 - massPship) * mass_)
End Function
Private Property Get Base_EOM() As Boolean
Base_EOM = (mass > 1)
End Property