Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Rotation of Elipse axes from covariance matrix

  1. Sep 9, 2009 #1
    Im writing some java code and need help with some matrix math... :confused:

    Basically Im trying to figure out how to rotate an ellipse given the std deviations, means, and covariance matrix such that the major and minor axes are along the direction that has the greatest variance. This is just a 2D ellipse, so my covariance matrix is 2x2. I know I need the eigenvectors of the covariance matrix to rotate the ellipse and the eigenvalues to scale the rotated ellipse, but Im confused in the details. Here is my basic idea:
    1. Shift ellipse to origin
    2. Scale ellipse
    3. Rotate ellipse
    4. Shift ellipse back

    I remember from long time ago that you usually apply transformations, then unapply them (using the inverse), but I dont want to unrotate or unscale here do I?

    Also, I am using the AffineTransform class in java, so I have to pass in a 3x3 transformation matrix. How do I get from my 2x2 covariance matrix and 2x2 eigenvectors/eigenvalues into the 3x3 form? By 3x3 I mean:
    cos(theta) sin(theta) 0
    -sin(theta) cos(theta) 0
    0 0 1
    (for a rotation matrix)

    Im sure this is basic, but it will help me out tons and Im curious to refresh my memory. Thanks so much!
  2. jcsd
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted