Talk:Givens rotation
This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||
|
Givens Rotations are like school in the summertime: No Class.
-Michael Shea
Copysign
editHow can it be that the copysign function, which copies the sign of y to x, may be replaced by x*sign(y)? If x is negative, the result will be exactly the opposite sign of y. I suppose it should read: abs(x)*sign(y)
88.73.242.210 (talk) 14:31, 19 December 2007 (UTC)
- In the examples in the code, x is sqrt(1+t*t) and thus always positive. -- Jitse Niesen (talk) 23:16, 19 December 2007 (UTC)
Complex case
editWhat about the complex case ? —Preceding unsigned comment added by Therealgandalf (talk • contribs) 06:19, 6 October 2008 (UTC)
Referring to Givens rotations ; other ambiguities ?
editSorry Juansempere, I suppressed the reference to Givens rotation you introduced, but I will not argue with you ; do what you want. I think that reference will not be helpful to the reader and even induce him to false ideas. For instance somebody wrote that Givens rotations have no intrinsic equivalence, which seems false to me ...
I also do not quite understand why an Euler angles table is again introduced there with new ambiguities. I think for example the matrix presented as xzy which is equivalent in intrinsic interpretation (after backswitch of angles) to XZY should be named yzx. The names whether in intrinsic or extrinsic mode should be given in the correct physical rotation order.
By the way I still think it is nonsense to switch the angles, doubling the number of matrices. It would be much clearer to give the full names . A rotation is defined by its axis and its angle !
Chessfan (talk) 16:41, 6 December 2010 (UTC)
- Those matrices can rotate single vectors instead of full frames. Does "intrinsic rotation" make a sense when rotating a single vector? I will put at least a reference to former article.
--Juansempere (talk) 02:51, 8 December 2010 (UTC)
The answer is yes because I rotate a body point, that is a whole set of vectors composing a rigid body. You can always make that hypothesis. The structure of the matrix does not matter. The fact they are Givens matrices only permits you to visualize immediately the successive rotation axes.Chessfan (talk) 08:07, 8 December 2010 (UTC)
- Rotating a single vector there is not a whole set of vectors. Anyway this matter should be discussed in the Givens rotations article, not here.--Juansempere (talk) 10:18, 8 December 2010 (UTC)
True, but I do not understand how you rotate a single vector in matrix algebra without defining some reference frame ? Then you have your minimal set of vectors ... Chessfan (talk) 12:41, 8 December 2010 (UTC)
- What I mean is the following. Givens rotations are always rotations in one of the basis axis (what is called "extrinsic" in the Euler angles article). Also, as they are defined as rotation operators, they are "active" rotations (a passive rotation would be a change of basis, not this). Therefore, if we have a sequence of Givens rotations applied over a vector v like
- The only possible meaning here is a composition of three transformations over the vector v, first , then and then . There is no other possible interpretation.--Juansempere (talk) 13:52, 13 December 2010 (UTC)
I give you a quick answer; more comes later. You are victim of your own interpretations. Of course you have the right to define Givens rotations as operators (not matrices) acting over a vector . But then you are nowhere ! You must now express that mathematical generality in some representation. It would be very easy in Geometric Algebra ... , but you have only matrix algebra at your disposal (quaternions perhaps ?). So you must define -- as I did -- a fixed reference frame, and write :
where of course the different factors are the Given matrices supposed acting in (e), and is a column vector.
And then you should easily recognize that you can utilize the same matrix definitions and transformation equations as in the Euler angles article to switch back to :
which is the intrinsic interpretation. It is definitely false to say that combined Givens rotations cannot be interpreted in intrinsic manner. Chessfan (talk) 14:50, 15 December 2010 (UTC)
- Ah, OK. I understand now what you mean. Anyway the natural way of composing rotation operations is the "extrinsic". I see no reason why we should use the other.--Juansempere (talk) 15:04, 18 December 2010 (UTC)
Some remarks about Givens rotations and their representations
editAnybody acquainted with Geometric Algebra methods recognizes at first sight that the matrix representation of a Givens rotation does not only figure a rotation in the plane spannned by two coordinate axes, but a rotation in the whole n-dimensional space, parallel to the plane spanned by those two coordinate axes. That is expressed in GA very simply by the bivector , and the action on any vector is written :
where :
In matrix representation you get the Givens matrices. That is a less easier way to describe the same operation with a lot of 1's and 0's ! But the important fact which appears in both representations is that a rotation is always represented by a plane and an angle. The fact that in we can use a rotation axis and an angle is a very particular situation. So it seems not very useful to attach a special signification to the fact that any intrinsic defined Euler angles convention can also be interpreted in extrinsic manner by matrices belonging to the Givens class ... And of course, conversely it would be incoherent with Euler angles theory to pretend that the combination of three Givens matrices cannot be interpreted in an intrinsic manner.
I suggest to reconsider the names of the different conventions in the table of composed rotations, to put them in coherence with Euler angles.I suggest also to suppress the assimilation of the subindexes with the ambiguous and here undefined denominations : intrinsic rotation, nutation, precession.
Chessfan (talk) 21:31, 15 December 2010 (UTC) Chessfan (talk) 06:01, 16 December 2010 (UTC)
- As I wrote before, the natural way of composing rotation operations is the "extrinsic" and I see no reason why we should use the "intrinsic" here, even if it is possible to assign a meaning for it.--Juansempere (talk) 15:06, 18 December 2010 (UTC)
Unifying notational conventions
editThe article about Jacobi rotation uses a different convention in representing the rotation matrix: the -s term is in a different place. Somebody should unify this. I personally suggest changing this article. One reason to do so is that Anderson's algorithm in fact produces the wrong sign now. — Preceding unsigned comment added by 213.216.249.47 (talk) 15:14, 1 August 2011 (UTC)
- You are correct about the Anderson algorithm not matching the convention used elsewhere on the page, so I have corrected it (the easy way out, since changing the sign convention on s elsewhere would require numerous changes, while the algorithm only required 3). I see not compelling reason, though, to make the rotations on the Jacobi page follow the same direction as here or vice versa. The two rotations are even identified as being in opposite directions (clockwise for the Jacobi, counterclockwise here). For the main purposes of either algorithm, the direction of the rotation is of little consequence, as the rotation angle is not calculated.Eigenguy (talk) 03:39, 17 July 2012 (UTC)
--
The current matrix on the page is:
[ C -S ] [ S C ]
But every Matrix Algebra book I've got in my collection, such as "Matrix Computations" by Golub and Van Loan [1] (on the reference list at the end of the article) and every Linear Algebra book on my shelf that covers Givens Rotations agrees that the correct form is:
[ C S ] [ -S C ]
I personally find doing it the same as the mathematics textbooks and refereed papers a very compelling reason to choose one over the other. Givens rotations come from the Linear Algebra field, and have had a long history from the 1950's when Wallace Givens introduced them, through the present have it as:
[ C S ] [ -S C ]
from the beginning through the present time.
I see someone edited a section that says that the page now agrees with the computer graphics use. [With no verifiable source].
1) This is not relevant... the article is about Givens Rotations, not how some rotation matrices are alleged to be being used somewhere else. 2) It certainly was NOT true that that computer graphics used the transpose of the correct mathematics convention when I took courses in computer graphics.
Every Computer Science Graphics text I have (Such as "Fundamentals of Interactive Computer Graphics" by Foley and Van Dam [2]) gives it the same way as the mathematics folks. But note that the computer graphics folk were post multiplying (not premultipying) by the rotation matrix, so that they could view it as a pipeline of composed functions that the point is being run through [left to right]. For example (taken from the Foley and Van Dam book):
[x y] [ cos(a) sin(a) ] = [ x * cos(a) - y * sin(a) ] [ -sin(a) cos(a) ] [ x * sin(a) + y * cos(a) ]
Using the wrong version is going to cause problems of agreement with books, papers, and other wikipedia articles. (As other comments on this page show is already happening). And I don't agree that the rotation direction doesn't matter... Givens Rotations are defined the way they are for a number of good reasons.
I second the suggestion to change this article to the correct (in the opinion of members of the Math department at my University) version:
[ C S ] [ -S C ]
I note that this was right for many years (2004 to 2018) [and that the right matrix, in that form of the diagram in that exact form is due to Golub and Van Loan in the book referenced above, it wasn't a common way to draw that diagram at the time. More common (as I remember it) was to start with the 2x2 rotation matrix, and then extend the description to cover zeroing items in larger matrices.
P.S. I may possibly munged the references above... someone more comfortable with wikipedia should probably correct the two book references I made if they are munged. 65.130.42.38 (talk) 03:21, 9 May 2020 (UTC)
Ref for article
editThis appears to be the most authoritative source on the implementation of Givens rotation.[3] Sizeofint (talk) 07:24, 2 August 2017 (UTC)
- The matrix computation book by Golub and Van Loan has said different things in different editions.
- What edition are you referencing? 158.120.249.73 (talk) 02:33, 16 May 2022 (UTC)
References
- ^ "Matrix Computations" by Golub and Van Loan
- ^ "Fundamentals of Interactive Computer Graphics" by Foley and Van Dam
- ^ Bindel, David; Demmel, James; Kahan, William; Marques, Osni (1 June 2002). "On computing givens rotations reliably and efficiently" (PDF). ACM Transactions on Mathematical Software. 28 (2): 206–238. doi:10.1145/567806.567809.
Matrix representation section
editThe "Matrix representation" section states:
"That is, for fixed i > j, the non-zero elements of Givens matrix are given by..."
Now, looking at the matrix, g(i,j)=s for i<j NOT i>j (where I read g(i,j) to refer to 'i rows down, j columns across'). Can someone leave a response indicating whether I'm right or wrong and, if necessary, make any changes to the page? That is, I think the article should state:
"That is, for fixed i < j, the non-zero elements of Givens matrix are given by..."