# Find vectors from inner products

The problem is given all the inner products of N N-dimensional vector, can we work out the vector set?

For example given a N-by-N matrix $K$

$\{K\}_{ij} = v_i^Tv_j$ for all $i,j \in \{1,...,N\}$

Is it possible to find all $v_i$?

And will it be easier if we add norm constrain to the problem such that $||v_i||_2=1$?

-

The answer in general is negative. Essentially, if $v_i^T v_j=K_{ij}$, then for any real orthogonal matrix $Q$, we also have $w_i^Tw_j=K_{ij}$, where $w_i=Qv_i$. Therefore, if you have found a set of vectors $\{v_i\}$ that produces matrix $K$, any set of vectors $\{w_i\}$ obtained by applying rotations and/or reflections on $\{v_i\}$ is also able to generate $K$. In other words, $\{v_i\}$ is not unique. Since $\|w_i\|=\|Qv_i\|=\|v_i\|$, your additional constraint that each $v_i$ is a unit vector will not make the problem conceptually easier.

If you just want pick a set of vectors that can generate $K$, you may simply perform a Cholesky decomposition $K=LL^T$. Then $V=L^T$ will be a solution and the vectors $v_i$s are the columns of $V$. Cholesky decomposition has been implemented in many software libraries and computer algebra systems.

-

No. You are essentially asking for a kind of matrix "square root": given a matrix $K$, find a matrix $V$ (whose columns are your $v_i$) such that $V^TV=K$. This $V$ is generally not unique; multiplying $V$ on the left by any orthogonal matrix is still a solution. In fact, the only matrix $K$ with a unique $V$ is the zero matrix.

Requiring $v_i$ to be unit does not help; for $K=I$, any orthogonal matrix $V$ has this property.

If you only care about finding a $V$, even if it isn't unique, then a solution exists if and only if $K$ is positive semi-definite, in which case one solution is given by the Cholesky decomposition.

-