Hacer esto con los ángulos, como Jyrki sugerido, es complicado y difícil de generalizar a dimensiones diferentes. Aquí hay una respuesta que es esencialmente una generalización de WimC, que también corrige un error en su respuesta. En el final, voy a mostrar por qué esto funciona, ya que la prueba es simple y agradable.
El algoritmo
Dada una matriz de distancias $D_{ij}$, definir
$$M_{ij} = \frac {D^2_{1j}+D^2_{i1}-D^2_{ij}} 2 \,.$$
Una cosa que es bueno saber que en caso de que la dimensionalidad de los datos que genera la matriz de distancias que no se sabe es que el más pequeño (Euclidiana) de la dimensión en la que los puntos pueden ser incorporados está dado por el rango $k$ de la matriz $M$. No incrustación es posible si $M$ no es positiva semi-definida.
Las coordenadas de los puntos puede ser obtenido por el autovalor de la descomposición: si escribimos $M = USU^T$, entonces la matriz $X = U \sqrt S$ (usted puede tomar la raíz cuadrada de elemento por elemento) da las posiciones de los puntos (cada fila corresponde a un punto). Tenga en cuenta que, si los puntos de datos pueden ser incorporados en $k$-dimensiones del espacio, sólo $k$ columnas de $X$ va a ser distinto de cero (correspondiente a $k$ cero autovalores de a $M$).
¿Por qué funciona esto?
Si $D$ proviene de las distancias entre los puntos, entonces hay $\mathbf x_i \in \mathbb R^m$ tal que
$$D_{ij}^2 = (\mathbf x_i - \mathbf x_j)^2 = \mathbf x_i^2 + \mathbf x_j^2 - 2\mathbf x_i \cdot \mathbf x_j \,.$$
A continuación, la matriz de $M$ definido anteriormente adquiere una particular y agradable forma:
$$M_{ij} = (\mathbf x_i - \mathbf x_1) \cdot (\mathbf x_j - \mathbf x_1) \equiv \sum_{a=1}^m \tilde x_{ia} \tilde x_{ja}\,,$$
donde los elementos $\tilde x_{ia} = x_{ia} - x_{1a}$ pueden ser montados en un $n \times m$ matriz $\tilde X$. En la forma de la matriz,
$$M = \tilde X \tilde X^T \,.$$
Dicha matriz se llama matriz de Gram. Puesto que el original de vectores se dan en $m$ dimensiones, el rango de $M$ es en la mayoría de las $m$ (asumiendo $m \le n$).
Los puntos se obtiene haciendo que el autovalor de la descomposición descrita anteriormente no tiene que coincidir exactamente con los puntos que se pusieron en el cálculo de la matriz de distancias. Sin embargo, ellos pueden ser obtenidos a partir de ellos una rotación y una traslación. Esto puede ser demostrado por ejemplo, hacer una descomposición de valor singular de a $\tilde X$, y demostrando que si $\tilde X \tilde X^T = X X^T$ (donde $X$ puede ser obtenido a partir de la autovalor de descomposición, como en el anterior, $X = U\sqrt S$), $X$ debe ser el mismo que $\tilde X$ hasta una transformación ortogonal.