4D rotations

Started by
18 comments, last by Lode 18 years, 3 months ago
@jjd
Clearly, for any two row-vectors (or column vectors) in the matrix, the following should hold:
1. vi.vj = 0, i,j=1,...,n, i!=j,
2. |vi|=1, i=1,...,n

I neglected to mention that
Advertisement
Quote:Original post by Eelco
Quote:Original post by Lode
So can you say that in a 3D rotation you're rotating around an axis, while in a 4D rotation, you're rotating around a plane, and in higher dimensions you're rotating around hyperplanes?


no, thats exactly not the point of the above post.

all rotations take place IN a plane.

the rotation acts AROUND everything that is peripendicular to said plane, an n-2 dimensional space. in 2d thats a point, in 3d an axis, and in 4d, hard to imagine as it is, a plane.

btw, not only 2d rotation matrices have complex eigenvalues. all rotation matrices have 2 complex eigenvalues/vectors, but for higher dimensions, there are also an n-2 set of real, non-rotating eigendirections


Well, then it is what I said, I said "in 4D you rotate around a plane" and you said it too. What you said with "the rotation acts AROUND everything that is peripendicular to said plane, an n-2 dimensional space. in 2d thats a point, in 3d an axis, and in 4d, hard to imagine as it is, a plane." is what I meant.

The complex eigenvalues are confusing my by the way, is a complex 4D space not 8D instead of 4D?
Well, Lode seems to be arguing about the proper way to call it, while Eelco is trying to point out that you shouldn't think of it as "rotation around something", but as "rotation of a plane". I second that, because a plane is always a well-defined entity no matter the dimension.

If you define "rotate around 'something'", as: "The only points of space that remain unaffected by the rotation lie in 'something'", then you could say that -in 2D- rotations are performed around the origin... in 3d around an axis... or around a plane in 4D. However in 5D, three axes remain unaffected. Three axes perpendicular to each other are an entire new 3d space, not a hyperplane. (I suppose, by hyperplane, you mean the set of 4d space whose points saqtisfy: Ax+By+Cz+Dw == const.) I'm not sure that would be the proper way to call it.

Anyway, arguing about how to call it, is like missing the forest here
Quote:Original post by Lode
Well, then it is what I said, I said "in 4D you rotate around a plane" and you said it too. What you said with "the rotation acts AROUND everything that is peripendicular to said plane, an n-2 dimensional space. in 2d thats a point, in 3d an axis, and in 4d, hard to imagine as it is, a plane." is what I meant.

yeah, you did reach the correct conclusion. only i felt your summary missed the essence of someusername post, being that its better to view rotations as taking part in a plane, rather than defining them by the space they rotate around.

ive had some confusing discussions in the past, when i didnt properly understand the concept myself. my teachers would refuse to explain me a 2d problem outside of the context of a slice of a 3d one: they would always talk about rotating things about the z-axis. which i found confusing, with there being no z-axis is a real 2d problem. i always felt a rotation should be possible and well defined without an appeal to a dimension you are not even considering.

appearently it is not even inituatively obvious how to translate the problem of rotation to a lower dimension without clinging to the concept of an axis, that only applies in 3d. its better to let go of such a 3d-centric way of thinking sooner rather than later.

i believe hyperplane is the right term btw. a volume can be considered a hyperplane. so rotating in 5d would happen 'around' a volume...

You can read about a generalization to n-dimensional rotation here, it's called a Special orthogonal group.

Here's an intuitive way to look at it...

We can define rotation as an even number of mirror operations.
A mirror operation is where you "flip" your space around some hyperplane.
( Reminder: a hyperplane in 5D is a 4D sub-space )

For example, in 2d, if you take an object, flip it once about some arbitrary line and then flip it again around yet another arbitrary line, you get a rotation.

In any dimension, a matrix that represents a flip is an orthogonal matrix that has a determinant of -1.

Since we require that a rotation will be a composition of an even number of flips, a rotation matrix is an orthogonal matrix that has a determinant of 1, due to the following identity: |A*B|=|A|*|B|.

It works the other way around too. That is, any orthogonal matrix that has a determinant of 1 is a rotation matrix.

Now please remind me, why on earth would you need that? :)
Quote:Original post by ury
Now please remind me, why on earth would you need that? :)


Some algorithm that does rotations in 65536 dimensions (for 256 * 256 images) which has to do with Principal Component Analysis.
Quote:Original post by someusername
To be honest though, I'm having a little trouble understanding the meaning of the complex axes in the eigenvectors...

I think the difficulty might come from trying to interpret them as axis. Complex numbers in and of themselves can be used a means of 2D analysis, just as real numbers can be used as a means of 1D analysis, but they're both still scalars. So if you think of the complex number as always being a scalar then it makes sense they can be components of a vector, and when you fall back on the definitions of eigenvectors, eigenvalues, and the mechanics of complex number arithmetic everything stays consistent. I find that his happens a lot in mathematics, that you have to fall back on pure definitions and mechanics in order for things to make sense. Otherwise I myself would barely understand higher-dimensional geometry [smile]
Yes, what you in fact do is planar rotations... rotations is sorta "flat". I.e. points of objects go around circle in the plane.
In 3D it happens that axis is uniquely orthogonal to plane so you "rotate around axis". But it's not so in other numbers of dimensions.

I wrote some 4D viewer where rotations is done by pressing two buttons specifying axises of plane you do planar rotation in. (order of presses gives the direction). It works in any number of dimensions, so i can rather easily expand my program to support 5D, 6D, etc. and it will even be backward compatible (like first two keys do 2D rotations, first 3 keys do 3D rotations, first 4 keys do 4D rotations, etc.)
Quote:Original post by Lode
Some algorithm that does rotations in 65536 dimensions (for 256 * 256 images) which has to do with Principal Component Analysis.

As far as I can remember, PCA is equivalent to performing a Singular Value Decomposition (SVD) of the data covariance matrix. SVD produces orthogonal matrices and I am fairly sure that they can have a determinant of -1.

I am probably wrong though... where did you read that?
Quote:Original post by ury
Quote:Original post by Lode
Some algorithm that does rotations in 65536 dimensions (for 256 * 256 images) which has to do with Principal Component Analysis.

As far as I can remember, PCA is equivalent to performing a Singular Value Decomposition (SVD) of the data covariance matrix. SVD produces orthogonal matrices and I am fairly sure that they can have a determinant of -1.

I am probably wrong though... where did you read that?


It said that you're "rotating" the data (images and/or statistics?) all the time to get new principal components, each time you rotate this way that you get as much correlation as possible in the next principal component (which is an image that can also be seen as an axis, it's 65536D). So the reason I asked this question is that, if you do each next rotation, I was wondering if the axes you had already rotated towards maximal correlation, would stay at their position (which is of course what we want).

But don't ask me too many details, I'm not a specialist on this subject, and it's only theoretical too because in practice it'd take too many calculations :)

This topic is closed to new replies.

Advertisement