2012-02-15 21 views
1

私はPythonで単純な2dブラウン運動のシミュレータを書いています。明らかにxディスプレースメントとyディスプレースメントの値をディストリビューションから引き出すのは簡単ですが、2dディスプレースメント(すなわち、斜辺)をディストリビューションから引き出し、新しいx座標とy座標に変換するように設定する必要があります。これはおそらく些細なことですが、私はそれを正しく行う方法を覚えておくために三角法からあまりにも遠く離れています。私は斜辺の値を生成し、それをsinとcosでxとyの変位に変換する必要がありますか? (これはどうやって正しく行うのですか?)2dランダムウォークをPythonで - 分布から斜辺を引く

答えて

1

これはあなたのディストリビューション用の極座標(r, theta)を(rがあなたの「斜辺」である場合))を使用して、その後、x = r cos(theta)y = r sin(theta)を使用して、(x, y)に結果を変換することによって行わ最高です。つまり、好きな配布物からrを選択し、theta(通常はフラットな0〜360度の分布から)を選択し、xyに変換します。 (すなわち、方向に依存しない斜辺を与えた相関(x、y)分布を構築する)ことは非常に困難である。別ウィンドウ(タブ)の大きな表示で見る

0

斜辺が線分の形であれば、2つの点があります。 P0 = (x0, y0)P1 = (x1, y1)の2つの点から、x0x1y0からy1に差し引くことで、xとyの変位を得ることができます。

あなたの斜辺が実際に極座標平面内のベクトルである場合は、[はい、あなたは角度のsinを取るとy変位を得るために、ベクトルの大きさを掛けなければならないでしょうし、同様のためcosとxの変位。

関連する問題