如何在 4D 平面上的某个点周围找到均匀分布的点?
How to find evenly distributed points around a point on a plane in 4D?
我正在尝试创建一个模拟,它要求我改变一组概率,即变量总和必须为 1。
当我想改变一组 3 个概率的参数时,我将每个参数视为 3D 中的一个轴 space 并使用等式对平面 x + y + z = 1 上的圆进行参数化p0 + rcos(v) (dot) u1 + rsin(v) (dot) u2,其中p0是表示原始概率的点,u1和u2是平行于平面的垂直向量,(dot)表示点积,并且r 和 v 是自由变量。通过改变 r 并沿 2pi 为 v 选择几个点,我可以生成一组接近原始概率但仍然有效的概率,满足我们的约束。
我现在遇到的问题是,当我尝试对一组 4 个概率(即 4D space 执行此操作时,我无法想象或找到扩展此方程组的方法。有没有办法实现类似于我对 4D 案例的 3D 案例的东西?我最初生成 3D 概率的方法是否愚蠢?如果是,标准方法是什么?
我假设你想要一个均匀分布的分布
一种方法是
这是一种高级方法,您可以使其更有效地用于 4D,但此实现很容易扩展到 N 维空间。
给定 4D 超平面的基础,您可以使用 3D 采样,就像将圆放置在 3D 平面上一样,对于在 3D 球体中均匀采样点的教程 here, for a "official" source saying the same check here。
首先考虑 3d 情况的不同方法,它不需要任何三角函数:
您对矢量元素的总和感兴趣,称其为 S(v).
v = (2, 3, 5) S(v) = 10
你对 S = 1 平面感兴趣,它有一个法向量,我们称之为 k:
k = (1/3, 1/3, 1/3) = (1/3)(1, 1, 1)
你在那个平面上有一个点 p0 (S(p0)=1), 和
你想要平面中距离 p0.
r 的一些点
从随机选择的一些点开始,在原点周围的单位球体中均匀分布 x2+y2+z2 < 1.(这个很简单,直接从那个球体周围的立方体中均匀选取点,拒绝球体外的点即可。)
现在将这些点中的每一个投影到 S=0 平面上:
v -> v - S(v)k
(盯着看,直到明白为止。)现在您的点散布在半径为 1 的圆盘中,垂直于 k。它们在圆盘中不均匀,它们靠近中间较厚,但它们在 角度上是均匀的。 现在缩放每个点以将其移动到半径为 r 的圆:
v -> v r/|v|
现在移动点环以 p0:
为中心
v -> v + p0
现在是关键。 您刚才所做的一切在 n 维中都像在 3 维中一样容易。
我正在尝试创建一个模拟,它要求我改变一组概率,即变量总和必须为 1。
当我想改变一组 3 个概率的参数时,我将每个参数视为 3D 中的一个轴 space 并使用等式对平面 x + y + z = 1 上的圆进行参数化p0 + rcos(v) (dot) u1 + rsin(v) (dot) u2,其中p0是表示原始概率的点,u1和u2是平行于平面的垂直向量,(dot)表示点积,并且r 和 v 是自由变量。通过改变 r 并沿 2pi 为 v 选择几个点,我可以生成一组接近原始概率但仍然有效的概率,满足我们的约束。
我现在遇到的问题是,当我尝试对一组 4 个概率(即 4D space 执行此操作时,我无法想象或找到扩展此方程组的方法。有没有办法实现类似于我对 4D 案例的 3D 案例的东西?我最初生成 3D 概率的方法是否愚蠢?如果是,标准方法是什么?
我假设你想要一个均匀分布的分布
一种方法是
这是一种高级方法,您可以使其更有效地用于 4D,但此实现很容易扩展到 N 维空间。
给定 4D 超平面的基础,您可以使用 3D 采样,就像将圆放置在 3D 平面上一样,对于在 3D 球体中均匀采样点的教程 here, for a "official" source saying the same check here。
首先考虑 3d 情况的不同方法,它不需要任何三角函数:
您对矢量元素的总和感兴趣,称其为 S(v).
v = (2, 3, 5) S(v) = 10
你对 S = 1 平面感兴趣,它有一个法向量,我们称之为 k:
k = (1/3, 1/3, 1/3) = (1/3)(1, 1, 1)
你在那个平面上有一个点 p0 (S(p0)=1), 和 你想要平面中距离 p0.
r 的一些点从随机选择的一些点开始,在原点周围的单位球体中均匀分布 x2+y2+z2 < 1.(这个很简单,直接从那个球体周围的立方体中均匀选取点,拒绝球体外的点即可。)
现在将这些点中的每一个投影到 S=0 平面上:
v -> v - S(v)k
(盯着看,直到明白为止。)现在您的点散布在半径为 1 的圆盘中,垂直于 k。它们在圆盘中不均匀,它们靠近中间较厚,但它们在 角度上是均匀的。 现在缩放每个点以将其移动到半径为 r 的圆:
v -> v r/|v|
现在移动点环以 p0:
为中心v -> v + p0
现在是关键。 您刚才所做的一切在 n 维中都像在 3 维中一样容易。