FrontPage

2009/11/09からのアクセス回数 6638

微分方程式で解く硫黄島の戦い

大学時代数学セミナーに微分方程式で硫黄島の戦いがシミュレーションできるという記事がありました。

そこで、Googleで「硫黄島の戦い」と「微分方程式」で検索すると、ランチェスターのモデルを使って 硫黄島の戦いを表した本:「微分方程式 その数学と応用」あることが分かりました。

また、Lanchester iwo jimaをキーワードとするとVerifying Lanchester's Combat Model Battle of Iwo Jimaが見つかり、クイック・ビューでその論文を見ることができました。 この論文では、

とし、硫黄島の戦いを以下のような微分方程式で表すことができます。 $$ \begin{array}{l l l} \frac{dx}{dt} &=& - a y + f(t) \\ \frac{dy}{dt} &=& - b x \\ \end{array} $$

a, bは米軍、日本軍の戦闘効率係数とし、\(f(t)\)は米国軍の補強関数で、以下のようになっています。 $$ f(t) = \left\{

   \begin{array}{l l}
        54,000 & 0 \le t \lt 1 \\
        0      & 1 \le t \lt 2 \\
        6,000  & 2 \le t \lt 3 \\
        0      & 3 \le t \lt 5 \\
        13,000 & 5 \le t \lt 6 \\
        0      & t \ge 6 \\
   \end{array}

\right. $$

微分方程式をsageで表現する

\(f(t)\)を任意の関数にすることは難しいので、\(\delta(t)\)として、一瞬で補強が完了するような式を sageを使って定義したのが以下の式です。

# 微分方程式で解く硫黄島の戦い(ランチェスターのモデル)
var('t a b c')
assume(c>0)
x = function('x', t)
y = function('y', t)
f = function('f', t)
# ランチェスターの式を定義します
de1 = diff(x,t) == -a*y + c*dirac_delta(t)
de2 = diff(y,t) == -b*x

コメント

選択肢 投票
おもしろかった 0  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc