2016-04-28 10 views
1

私はこのクラスをJavaで幾何学的なブラウン運動を得るために使用しました。その後、私はグラフを生成するためにRでJavaで得た値を使用しました。私のプロットがこのように見えるという事実のために、数式が正しくないことがわかります。 Javaで コードはこれです:Javaで幾何ブラウン運動

public GeometricBrowianMotion(double s0, double mu, double sigma, double t, int N) { 
     this.s0 = s0; 
     this.mu = mu; 
     this.sigma = sigma; 
     this.t = t; 
     this.N = N; 
    } 

    public double[] simulate(RandomStream rng) { 
     double[] answer = new double[N]; 
     NormalGen ngen = new NormalGen(rng, new NormalDist()); 
     for (int i = 0; i < N; i++) { 
      answer[i] = s0 * Math.exp((mu - 0.5 * sigma * sigma) * t + sigma * Math.sqrt(t) * ngen.nextDouble()); 
     } 
     return answer; 
    } 

とプロットは次のようになります[ここに画像の説明を入力] [1]

! [1]:http://i.stack.imgur.com/tFBCc.png

+0

があなたをしたように、ステップの良い画像については

X[i] = X0 + Sum{i=0..i} (answer[i]) 

の合計として、私は、2Dの動画を計算したいです質問があります? –

+0

はい、実際の幾何学的ブラウン運動を得るためには、式が正しいかどうか、そしてそれをどのように置き換えるべきか、私は確信が持てません。なぜなら、価格は常に最初のものなので、パラメータと、私はそれが大丈夫ではないと確信しています。そして別の問題は、私の最初の価格が返されないということです。 –

+0

「価格」とはどういう意味ですか?そして、あなたは何をプロットしますか? '答え'配列ですか? – MBo

答えて

0

あなたのanswerは変位、移動ステップの配列であると思っていました。

とブラウンの運動を説明するために、それはより良いポジションを描画するだろう - この

enter image description here

+1

これは講義ホールではありません - ユーザーの質問に対する解決策はありますか? – gpasch