wittgenst3in said:
I suspect much of the problem here is via a matter of definition.
The idea people seem to have is that by having a force pushing a point on the object we get one rotation, so by having two forces pushing the object we get two rotations.
So instead of using the word rotate, which IMHO can only be used after the forces are summed and the resultant found, lets use the analogy of having a force applied by a number of jet engines on the surface of the earth. (Assume for the moment that the center of the earth is in some sort of immovable bearing so forces only cause rotations, not translations in this case). Also assume that the earth is not currently rotating.
So say we have a massive jet engine on the lawn at Greenwich, pointing east. We fire it up and it sets the earth rotating clockwise as viewed from the north pole. Check. We stop the earth and start again.
Now we move to the second engine we have in the same place, which is pointing north. We activate both engines at the same time, and the earth starts rotating about a diagonal this time. This is what most people have been calling a second rotation, as it involves two sources contributing to the rotation. I don't think this is true, and here's why.
Say I reposition the engines so one is facing east and one is facing west. I power them up at the same time, and the resultant force is zero. This is a state of no rotation, it's not two rotations cancelling each other out, it's just the forces summing to zero.
So I think it all comes down to definitions.
Having said that it would seem that adding infinite number of jet engines in random directions would sum to zero. However if each jet engine was placed in such a way as to give a positive spin when viewed from the north pole (i.e. being located with thrust pointing at a compas bearing between 0 and 180 deg), then the rotation would probably be as infinite as you can get in Einsteins world.
Well I agree with all the above, this is equivalent to what I was trying to convey in my last post. The question remains though how we answer BSM's question.
I've been looking at your MATLAB program that you posted, and although I don't know MATLAB code I think I understand how it works. But I see a problem. It's related to the coordinate system as I thought.
If we have a fixed observer, then the absolute direction (the world coordinate system as opposed to the local coordinate system) has to be invariant with respect to that observer (otherwise the observer isn't fixed!). Taking the case of two rotations about orthogonal axes (which is what you were plotting) I think we need to fix the axes at the outset and ALWAYS rotate relative to those same LOCAL directions (in the local coordinate system). However, as you noted before, every time we perform a rotation, we move the axes and effectively change the relation between the two coordinate systems (i.e. the relation of observer to the coordinates of rotation). Therefore, in order to be consistent, we need to keep altering the transform to account for the changes of coordinate system (local coordinate system relative to world coordinate system) with each individual rotation. For example. let's define a world coordinate system of X,Y, Z (orthogonal) with X and Y in the conventional sense (i.e. Y points to the top of the page, X points to the right) and Z points toward us out of the page or screen, and with the sense of rotations anticlockwise looking from the origin out along any given axis. Now let's choose the two axes which we will rotate about. I choose Y and X (in that order). So we start with both local and world coordinate systems coincident.
Now, since our OBSERVER is fixed, then the absolute definitions of X, Y and Z should also remain fixed at all times. So let us start (for the sake of easy example) with a 90 degree rotation about Y. This will cause the X axis to become mapped on to the Z axis and the Z axis will be mapped to the -X axis. Hold up the thumb, forefinger and middle finger of the left hand at right angles to each other. Start with the thumb pointed toward you, so the thumb is Z, the forefinger is Y (pointing up) and the middle finger is X (pointing right). In order to ensure consistency we must always perform two rotations, firstly about the forefinger and then about the middle finger. As long as we ensure we always do this, then the sense of rotation should be continuous.
Now twist the hand about, bringing the middle finger toward you, so that the thumb is now pointing left and the middle finger ends up pointing at you. The middle finger was the ORIGINAL X axis. And the forefinger was (and still is) the ORIGINAL Y axis. The next rotation has to be performed around the middle finger, anticlockwise.
However. There is a problem. The coordinate transform matrices are developed relative to an observer whose view is invariant with respect to the original directions. So when we now want to perform a rotation about the (original) X axis - the middle finger, we have to take into account that our X axis is now actually the Z axis as the result of the last rotation. So the second transform we need to apply is the Z transformation, NOT the X transformation.
So we then apply the Z transformation which rotates about the middle finger. The middle finger remains as Z of course, but the thumb now points in the Y direction, and the forefinger now points in the X direction.
That is step 1. We then proceed with the next iteration. This time we need to rotate about the forefinger (as before), but the forefinger is now X, so we need to apply an X transformation. This maps the middle finger on to Y .... and so on.
So in the course of only two iterations, the sequence of transformations required for proper rotation invariant with respect to the LOCAL coordinate system is Y,Z,X,Y. Here is what I believe is the problem with your code. You are repeatedly performing only two transformations, X and Y, (no Z transformation at all) so your sequence for the same steps would be X,Y,X,Y. Instead of performing a continuous rotation along the same axes, you are incrementally skipping from axis to axis, which is what causes the fancy patterns in your charts (I'll admit they look nice though!

)
There is a further problem as well. The above only applies to 90 degree rotations - I chose it only for simplicity and because it's easy to see. If you are rotating by a small angle rather than 90 degrees, then the transformed axes do not map on to existing axes. So the actual transformations are wrong, because you would need to alter them to hybrid transformations for arbitrarily displaced axes. In other words, you would need to work out a projected transformation relative to the original axes. I haven't tried to work out if there is a simple solution - I have a nasty feeling there is some heavy duty trig involved in doing so!
Anyway, I believe that accounts for the discrepancy between your plots and what I visualise, your coordinate system is rotating AND oscillating relative to the fixed observer which is equivalent to having a rotating and oscillating observer observing an invariant coordinate system. If you correct the program for the motion of the observer I believe you will end up with simple circles - although, as I said above, I suspect that correction would be notoriously difficult.
Sorry if that's a bit difficult to follow, it was the easiest way I could think of describing it! I apologise for any mistakes in the above in advance, I'm a bit tired right now, but hope the gist of what I'm trying to say is clear.