球体上の粒子を使用して Metropolis モンテカルロ シミュレーションを行っていますが、特定の時間ステップでのランダムな動きについて質問があります。
そもそも球上のランダムな点の均一な分布を取得するには、単純な最も単純な方法 (一定の R で球座標を使用し、ランダムな角度のシータとファイを選択する) を使用するだけでは不十分であることを理解していますが、たとえば使用する必要があります。これらの方法のいずれか: http://mathworld.wolfram.com/SpherePointPicking.html
球体上のモンテカルロの別のコードを見ると、ランダムな動きを生成するかなり複雑な方法がわかります。ランダムな粒子を選択し、それを北極に移動する回転行列を計算し、特定の長さ未満のランダムなデカルト ベクトルを見つけて移動します。それを北極に合わせ、デカルト ベクトルを正規化し、元の粒子位置の近くまで回転させます。
これはすべて、偏りのない新しいランダムな位置を取得するためです。細かいバランスに繋がっているのではないかと思いますが、完全には理解できません。しかし、これを行うためのより簡単な (つまり、より高速な) 方法があるはずだと私は感じています。実際、私は直感的に、この場合、2 つの小さなランダムな角度 theta と phi を見つけて、それらを粒子の位置に追加しても問題ないと感じています。それとも、これは間違いでしょうか?