My portfolio

Menu▼

  • Top
  • About
  • Portfolio
  • Diary
  • Privacy policy
  • 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