1

在蒙特卡洛模拟中,我遇到了以下问题:给定一个单位向量 u,它定义了一个单位球体表面上的点 A,我必须随机确定一个新矢量,该矢量与初始矢量在 [0,max) 中形成角度 θ . 换句话说,我需要一种算法,从均匀分布中随机选择球体表面上的一个点,该点位于球体上的一个圆内,该圆具有以初始点 A 为中心的预定义半径。

我正在考虑使用欧拉角(θ,Ψ,φ)从(x,y,z)到(X,Y,Z)进行坐标旋转,使得Z = u。然后,从笛卡尔坐标转换为球坐标 (r,θ,φ),其中 u=(1,0,0) 并统一选择 cosθ 和 φ。最后,转换为 (X,Y,Z),然后转换为 (x,y,z)。但是,三角函数太慢了,有没有更快的方法?

是否可以修改用于球体表面上均匀分布点的 Marsaglia 方法以选择点附近的点?

在此先感谢您的任何建议。

4

0 回答 0