Finding a certain rotation matrix

34 Views Asked by At

How do you find the set of n by n rotation matrices that when multiplied, rotate an n-dimensional point(a[1],a[2],a[3]...a[n]) around the center point (0,0...0) such that you get the point (b,b,...b) where b is a real number?

2

There are 2 best solutions below

1
On BEST ANSWER

Here is simple way to achieve it.

We want vector $U=(a_1,a_2, \cdots a_n)^T$ to be mapped onto vector $V=(1,1, \cdots 1)^T$ by a certain matrix (we assume, as you do, that $U$ and $V$ have the same norm ; the $T$s are there for considering them as column vectors).

Let $D=U-V$ and $N=D/\|D\|$ its normalized version (therefore $N^TN=1$, a property that will be sueful later).

Then consider the so-called Householder operator:

$$H_N:=I_n-2NN^T $$

It has the property :

$$H_N^2=H_NH_N=(I_n-2NN^T )(I_n-2NN^T )=I_n-4NN^T+4N\underbrace{N^TN}_{1}N^T=I_n$$

proving that it is symmetry, in fact a symmetry with respect to the hyperplane with normal vector $N$.

Therefore $$H_NU=V$$

(this can be established by computation also)

0
On

To find a matrix, we have two vectors, the starting point and the ending point.

First transform to an orthonormal coordinate system (using Gram-Schmidt) where the starting point is the first vector (normalized) and the first two basis vectors have the same span as the starting and ending point vectors. Then perform a 2D rotation. Then transform back.