1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How to rotate a 3D complex vector?

  1. May 10, 2012 #1

    I have a 3D complex vector k=[k1,k2,k3], and k1, k2, k3 are complex numbers respectively. Now, I want to rotate k to a new vector t=[1 0 0]. However, I do not know the mathematical expression of rotation matrix. What is the difference between rotation in real domain and rotation in complex domain?

    Any suggestion would be wonderful. Many thanks.
  2. jcsd
  3. May 10, 2012 #2


    User Avatar
    Science Advisor

    Hey LingliRS and welcome to the forums.

    If you just want to rotate this vector like a normal vector in R^n for appropriate n, then just treat this as a six-dimensional vector that needs to be rotated.

    In terms of actually 'rotating' the vector, there is no difference in terms of the geometric intuition: instead of it being a three-dimensional vector, it's a six-dimensional vector with three independent real components, and three independent complex components.

    For six-dimensions, the best way way that I can think of is to use a kind of 'axis-angle' formulation by finding the vector you want to rotate around and then supplying an appropriate angle. After this, you can calculate a matrix and apply this matrix (since all rotations are linear transformations) and check that the matrix has the property that R*R^T = I and that R^T = R^(-1) and that |R| = 1 for a counter-clockwise oriented rotation (I think it's negative for a clockwise rotation). Either way the magnitude of the rotation matrix will always be 1.

    Note that for high-dimensional spaces, you will need to use geometric algebra and the wedge product, which means you supply n-1 vectors to get the wedge product of those for an n-dimensional vector.

    What information do you have for the rotation? Do you have a rotation axis for each complex number? Do you have angle information like Euler angles?
  4. May 11, 2012 #3
    Thank you for your reply!
    I just know the vectors rotated before and after, and I do not know the angle information.
    The known vector k is defined in k=Trace(A),Trace()is the sum of the diagonal elements of the matrix inside. S is 2*2 complex matrix, given by S=[a,b;b*,c], and A is a complete set of 2*2 basis matrices under a hermitian inner product. A is given by A = {[1,0;0,1], [1,0;0,-1], [0,1;1,0], [0,-i;i,0]}.

    These are the known information of k. The linear transformation is U*k^T= t^T, and I want to achieve the mathematical expression of U.
    I hope that I do not make myself confused.
    Thank you!
  5. May 11, 2012 #4


    User Avatar
    Science Advisor

    No this is ok, I understand what you have given.

    The angle will be given by the interior (or inner or scalar) product between the vectors. In this particular case since all components are completely orthogonal to each other, then we can use the standard inner product in R^8.

    Just for your future knowledge and endeavors, we will always use the cartesian basis if and only if all elements are independent of each other. If all elements are completely independent, then they are orthogonal and because of this, we can describe them in a cartesian type system.

    We can't do this however when there is dependency between the two variables which translate into a dependency occuring between the basis vectors.

    If you had for example say a complex number that followed the constraint |z| = 1 then you would get a geometry that looks like the circle and not a normal (x,y) co-ordinate system. This is the quick mental check that you need to use if you have to figure out whether to use a normal R^n system, or whether you can't use a normal R^n system.

    I'll let you calculate the inner product first and then explain how to get the axis of rotation. (Hint convert your system to eight-dimensions and then figure out what you're two vectors are as eight-dimensional vectors and take the inner product of those vectors using the definition for a cartesian system in eight dimensions).
  6. May 11, 2012 #5
    Chiro, thank you for your patient and time.

    I do not understand how to convert the system to eight-dimensions now. The eight-dimensions vector is not made up by four independent real components, and four independent complex components simply. And I do not understand the relationship between the group set and cartesian system.

    In addition, if I do not change the systems, cloud I use the rotation matrix composed by two rotation angles(theta\tao) and one phase angle(phi), given by [1, 0, 0; 0, cos(2*phi), sin(2*phi); 0, -sin(2*phi), cos(2*phi)]*[cos(2*theta), 0, j*sin(2*theta); 0, 1, 0; j*sin(2*theta), 0, cos(2*theta)]*[cos(2*tao), -j*sin(2*tao), 0; -j*sin(2*tao), cos(2*tao), 0; 0, 0, 1]?

    Thank you!
  7. May 11, 2012 #6


    User Avatar
    Science Advisor

    It looks like you have changed your question (from your initial post) to have 3 complex numbers instead of four.

    Again if all complex numbers are independent and each complex number is independent from the real part, then this is just a vector in R^n where n = 2 times the number of complex components (which for 3 numbers is six). To understand this, read the previous reply above about orthogonality and what that means for using R^n systems.

    So following this if you have the following two vectors:

    [a0,a1,a2,a3,4,a5] and [b0,b1,b2,b3,b4,b5] where (a0,a1) = k1, (a2,a3) = k2, (a4,a5) = k3 and the b's represent your vector that you 'rotating to' (if its t=[1,0,0] then we have [1,0,0,0,0,0] for our b vector) then the inner product under R^n for n=6 is given by:

    <a,b> = a0b0 + a1b1 + a2b2 + a3b3 + a4b4 + a5b5 + a6b6 for a given a and b vector.
  8. May 12, 2012 #7
    In k=Trace(A), S=[a, b; c, d], and b = c, so we have a 3D vector. I am sorry to have made you confused.
    I did not understand the orthogonality for using R^n system at first. The elements in vector k are not completely orthogonal to each other. Their correlation coefficients are not zero. I think they can not be described in cartesian type system. I'll try other method performed in C6.
    Thank you!
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook