ブラウン運動のシミュレーション

 Brown.c はブラウン運動および幾何ブラウン運動のシミュレーションを行うCプログラムです。
 プログラムは次の関数から成っています。


 UniformToNormal

  区間[0,1)の一様乱数を1個与えると,それを標準正規分布に従う乱数へと変換する関数です。
  変換には逆関数法を使い,正規分布の分布関数の逆関数の近似には Moro の方法を使って
  います。Moro の方法の詳細は[1][2]を参照してください。


 GenerateBM

  区間[0,T]のブラウン運動をシミュレーションする関数です。T,区間の分割数n,乱数の初期値
  seedを与えます。結果は長さn+1の配列Bに格納されます。


 GenerateGBM

  区間[0,T]の幾何ブラウン運動 dS = μSdt + σSdBt をシミュレーションする関数です。T,区間
  の分割数n,乱数の初期値seed,幾何ブラウン運動の初期値S0,μ,σを与えます。結果は長さ
  n+1の配列Sに格納されます。


 main

  上記3つの関数のためのテストプログラムです。まず,標準正規分布に従う1000個の乱数を
  発生させ,標本平均(0に近い値になるはず)と標本分散(1に近い値になるはず)を計算して
  出力します。次にブラウン運動のサンプルパスを3通り発生し,最後に幾何ブラウン運動のサン
  プルパスを3通り発生させてファイル Brown.txt に出力します。


 シミュレーション結果

  区間[0,1]のブラウン運動のサンプルパスを3通り発生させた例を図1に示します。分割数は
  n=1000としています。


  
                    図1 ブラウン運動のサンプルパス


  また,区間[0,1]の幾何ブラウン運動のサンプルパスを発生させた例を図2に示します。分割
  数はn=1000で,S0=100,μ=0.05,σ=0.2としています。


  
                   図2 幾何ブラウン運動のサンプルパス


 参考文献

  [1] B. Moro: "The Full Monte", Risk, Vol. 8 (Feb.), pp. 57-58 (1995).

  [2] P. Glasserman: "Monte Carlo Methods in Financial Engineering", Springer-Verlag,
    New York, 2004.


2004年度応用数理工学特論のページに戻る
プログラムのページに戻る
Topに戻る