You are looking for a vector that forms angles with given cosines to given vectors. If you have n
vectors of dimension n+1
then you can get exact (possibly complex-valued) solutions.
You can start by normalizing the given vectors and moreover enforce that the result is normalized. Here is a simple example. Start by creating a random pair.
vecsa = RandomReal[{-1, 1}, {2, 3}];
vecs = Map[#/Norm[#] &, vecsa]
(* Out[428]= {{0.987183, -0.0620831, 0.147023}, {0.727193, 0.259849, -0.635349}} *)
We'll work with random correlations as well.
corrs = RandomReal[{-1, 1}, 2]
(* Out[429]= {-0.74406, -0.658859} *)
Create a new vector and appropriate equations.
newvec = Array[x, 3];
polys = Flatten[{newvec . newvec - 1, vecs . newvec - corrs}]
(* Out[433]= {-1 + x[1]^2 + x[2]^2 + x[3]^2,
0.74406 + 0.987183 x[1] - 0.0620831 x[2] + 0.147023 x[3],
0.658859 + 0.727193 x[1] + 0.259849 x[2] - 0.635349 x[3]} *)
Now we can solve for this vector.
NSolve[polys == 0, newvec]
(* Out[436]= {{x[1] -> -0.776951, x[2] -> -0.620562,
x[3] -> -0.106063}, {x[1] -> -0.775027, x[2] -> 0.518085,
x[3] -> 0.361831}} *)