How can find the vector that satisfy some conditions

56 Views Asked by At

I have a question

Assume that there are 3 vectors x1,x2,x3 (each vector has the size 3*1 (3 dimension))

I want to find these vector that satisfy below conditions (the ininitial assumption x1 = [1 0 0] is ok)

x1'*x1 =1 x2'*x2 =1 x3'*x3 =1

x1'*x2 = 0.3 x1'*x3 = 0.2 x2'*x3 = 0.4

  • upper values are cos(theta) between two vectors

In practice, I have large matrix(90*90) that has cos(theta) values therefore I want to know the general solution to solve this problem..

thank you!

1

There are 1 best solutions below

0
On BEST ANSWER

Regard $x_1, x_2, x_3$ as the columns of a 3x3 matrix $M$ and $x_1', x_2', x_3'$ as the rows of a second unknown matrix $M'$. The entries of the matrix product $N = M'M$ will be the values $x_i' \cdot x_j$ for various $i,j$. So to solve your problem fill in the matrix $N$ as needed, then multiply on the right by the matrix inverse of $M$ (so your original vectors need to be linearly independent) and read off your vectors $x_i'$ from the result $M' = NM^{-1}$.

If your original vectors aren't independent, the solution may or may not exist.