随机数在一个球体
这个例子显示了如何创建随机分在一个球体的体积,像Knuth所描述的那样[1]。范围在本例中为中心在原点,半径为3。
创建点范围内的一个方法是在球坐标来指定它们。然后你可以将它们转换为笛卡尔坐标图。
首先,初始化随机数发生器在这个例子中可重复的结果。
rng (0,“旋风”)
计算每个点的仰角的球体。这些值在开区间, ,但不是均匀分布的。
rvals兰德(1000 1)= 2 * 1;海拔=最佳(rvals);
为每个点创建一个方位角的球体。这些值均匀分布在开区间, 。
方位= 2 *π*兰德(1000 1);
创建一个每个点在球面半径值。这些值在开区间, ,但不是均匀分布的。
半径= 3 * (rand (1000 1)。^ (1/3));
转换到笛卡尔坐标和策划的结果。
[x, y, z] = sph2cart(方位角、仰角半径);图plot3 (x, y, z,“。”)轴平等的
如果你想随机数从表面上看半径的球体,然后指定一个恒定的值是最后一个输入参数sph2cart
。在这种情况下,该值3
。
[x, y, z] = sph2cart(方位角、仰角3);
引用
[1]Knuth D。计算机编程的艺术。2卷,第3版。阅读,MA: addison - wesley朗文,1998年,页134 - 136。