计算彼此等距的坐标

在给定的m维空间中,我需要计算m+1个坐标,这些坐标彼此之间的距离相等。

假设在二维空间中,最多可以有3个等距点(由3个顶点组成的等边三角形,这些顶点彼此等距),依此类推,泛泛而言,我们可以在m-1维空间中表示m个等距顶点。

顶点之间的距离为单位距离(1),在简单的二维情况下,3个顶点之间的距离为1。

我读过关于立方体上等距点的讨论,但我的需求不同,且只有一个(大的)约束条件而不是两个。

任何编程语言都可以,我需要一个建议来泛化这个逻辑。

感谢大家。

编辑 ———–解决方案如下(n为维度):

static double[] simplex_coordinates2 ( int n ){  double a;  double c;  int i;  int j;  double s;  double[] x;  x = r8mat_zero_new ( n, n + 1 );  for ( i = 0; i < n; i++ )  {    x[i+i*n] = 1.0;  }  a = ( 1.0 - Math.sqrt ( 1.0 + ( double ) ( n ) ) ) / ( double ) ( n );  for ( i = 0; i < n; i++ )  {    x[i+n*n] = a;  }////  Now adjust coordinates so the centroid is at zero.//  for ( i = 0; i < n; i++ )  {    c = 0.0;    for ( j = 0; j < n + 1; j++ )    {      c = c + x[i+j*n];    }    c = c / ( double ) ( n + 1 );    for ( j = 0; j < n + 1; j++ )    {      x[i+j*n] = x[i+j*n] - c;    }  }////  Now scale so each column has norm 1.//  s = 0.0;  for ( i = 0; i < n; i++ )  {    s = s + x[i+0*n] * x[i+0*n];  }  s = Math.sqrt ( s );  for ( j = 0; j < n + 1; j++ )  {    for ( i = 0; i < n; i++ )    {      x[i+j*n] = x[i+j*n] / s;    }  }  return x;}static double[] r8mat_zero_new ( int m, int n ){  double[] a;  int i;  int j;  a = new double[m*n];  for ( j = 0; j < n; j++ )  {    for ( i = 0; i < m; i++ )    {      a[i+j*m] = 0.0;    }  }  return a;}

回答:

你需要一个正则单纯形。
维基页面包含了关于正则单纯形顶点坐标的信息。

主要技巧基于这样一个事实:从单纯形中心到顶点的任意一对向量之间的角度是arccos(-1/d),其中d是空间维度(2d,3d,4d等)。

以二维情况为例:
设第一个顶点的坐标V2 = (x1,y1) = (0,1)
(x2,y2)和(x3,y3)与V1的点积必须是-1/2,因此x2和x3都等于-1/2
y2和y3分别是Sqrt(3)/2-Sqrt(3)/2 – 从距离=1到坐标原点

最后一步 – 将坐标标准化以使顶点之间的距离为1 – 只需将所有坐标乘以系数C=Sqrt(d/(2*(d+1)))
(根据余弦定理c^2+c^2+2*c*c/d=1

对于二维情况C=Sqrt(3)/3,所以单纯形的顶点是

(Sqrt(3)/3, 0)(-Sqrt(3)/6, 1/2)(-Sqrt(3)/6, -1/2)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注