ブラウン運動のシミュレーション
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に戻る