I have three 3-dimensional vectors, $\boldsymbol{c_{1}} = \begin{bmatrix} c_{11*} \\\\ 0 \\\\ 0 \end{bmatrix}$, $\boldsymbol{c_{2}} = \begin{bmatrix} c_{21} \\\\ c_{22} \\\\ c_{23} \end{bmatrix}$, and $\boldsymbol{c_{3}} = \begin{bmatrix} c_{31} \\\\ c_{32} \\\\ c_{33} \end{bmatrix}$. If possible, I am trying to find the coordinates $c_{21}$, $c_{22}$, $c_{23}$, $c_{31}$, $c_{32}$, $c_{33}$. I know $c_{11*}$, as well all vector magnitudes and the cosines of the angles between the vectors. That is,

$||\boldsymbol{c_{1}}|| = R_{1} = \sqrt{c_{11*}^2}$, $||\boldsymbol{c_{2}}|| = R_{2}$, $||\boldsymbol{c_{3}}|| = R_{3}$,

$cos(\theta_{12}) = \rho_{12}$, $cos(\theta_{13}) = \rho_{13}$, $cos(\theta_{23}) = \rho_{23}$,

are all known.

I am able to find $c_{21}$ and $c_{31}$ by applying the dot product definition of the cosine:

$\boldsymbol{c_{1}} \cdot \boldsymbol{c_{2}} = cos(\theta_{12})||\boldsymbol{c_{1}}||||\boldsymbol{c_{2}}|| \implies c_{21} = \frac{R_{1}R_{2}\rho_{12}}{c_{11*}}$, and

$\boldsymbol{c_{1}} \cdot \boldsymbol{c_{3}} = cos(\theta_{13})||\boldsymbol{c_{1}}||||\boldsymbol{c_{3}}|| \implies c_{31} = \frac{R_{1}R_{3}\rho_{13}}{c_{11*}}$,

provided that $c_{11*} \neq 0$. Similarly, I know that:

$\boldsymbol{c_{2}} \cdot \boldsymbol{c_{3}} = cos(\theta_{23})||\boldsymbol{c_{2}}||||\boldsymbol{c_{3}}|| \implies c_{22}c_{32} + c_{23}c_{33} = cos(\theta_{23}) R_{2}R_{3} - c_{21}c_{31}$.

In addition,

$R_{2}+R_{3} = \sqrt{c_{21}^2 + c_{22}^2 + c_{23}^2} + \sqrt{c_{31}^2 + c_{32}^2 + c_{33}^2}$.

After that I'm kind of stuck. It seems that I still have 4 unknowns but only 2 equations. I tried understanding the problem in polar/(hyper)spherical coordinates, but that didn't help me either - quite the contrary, even.

So my questions are:

  1. What am I missing and/or doing wrong?
  2. Is there even a unique solution to my problem?
  3. If there is a solution, does it generalize to any N-dimensional case (so to a case with N N-dimensional vectors instead of three 3-dimensional vectors)?
  • $\begingroup$ Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. $\endgroup$
    – Community Bot
    Nov 23, 2022 at 13:38

1 Answer 1


You can rotate the entire set of vectors around the axis $\boldsymbol{c_{1}}$ by any rotation angle without changing the length of any vector or the angle between any two vectors, and the inage of $\boldsymbol{c_{1}}$ will still be $\begin{bmatrix} c_{11*} & 0 & 0 \end{bmatrix}^T.$

This gives you a new set of vectors that satisfies all the defining properties you have given for your vectors (magnitudes and cosines of angles). This means you do not have a unique solution.

You can also reflect $\boldsymbol{c_{3}}$ through the plane that passes through $\boldsymbol{c_{2}}$ and $\boldsymbol{c_{1}}$ without affecting any of the defining properties.

You can get a solution by assuming that $c_{23} = 0$ and $c_{33} \geq 0.$ Then, if you like, you can parameterize the solutions by an angle of rotation about the axis $\boldsymbol{c_{1}}$ and then by a parameter whose value is $+1$ or $-1$ to represent whether to reflect $\boldsymbol{c_{3}}$ across the plane of the other two vectors.

I do not believe this gets better in higher dimensions.

  • $\begingroup$ Thank you so much! I get it, except for 2 things. (1) You talk about parametrizing the solution, but in what ways could that be helpful? Would it change anything substantively if I'd do that? (2) You say 'it doesn't get better' in higher dimensions, but does this mean that the approach you suggested (to fix c_23 and c_33) doesn't generalize to higher dimensions? Or does it mean that it DOES generalize but requires similar workarounds to fix a couple of c_ij to 0? $\endgroup$ Nov 26, 2022 at 10:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .