Givens rotation

Givens rotation

In numerical linear algebra, a Givens rotation is a rotation in the plane spanned by two coordinates axes. Givens rotations are named after Wallace Givens who introduced them to numerical analysts in the 1950s while he was working at Argonne National Laboratory.

Matrix representation

A Givens rotation is represented by a matrix of the form

:G(i, k, heta) = egin{bmatrix} 1 & cdots & 0 & cdots & 0 & cdots & 0 \ vdots & ddots & vdots & & vdots & & vdots \ 0 & cdots & c & cdots & s & cdots & 0 \ vdots & & vdots & ddots & vdots & & vdots \ 0 & cdots & -s & cdots & c & cdots & 0 \ vdots & & vdots & & vdots & ddots & vdots \ 0 & cdots & 0 & cdots & 0 & cdots & 1 end{bmatrix}

where "c" = cos("θ") and "s" = sin("θ") appear at the intersections "i"th and "k"th rows and columns. That is, a Givens rotation matrix is the identity matrix with these substitutions::egin{align} g_{i, i} &{}= c \ g_{k, k} &{}= c \ g_{i, k} &{}= s \ g_{k, i} &{}= -send{align}

The product "G"("i","k",θ)Tx represents a counterclockwise rotationof the vector x in the ("i","k") plane of θ radians, hence the name Givens rotation.

The main use of Givens rotations in numerical linear algebra is to introduce zeros in vectors or matrices.This effect can, for example, be employed for computing the QR decomposition of a matrix. One advantage over Householder transformations is that they can easily be parallelised, and another is that often for very sparse matrices they have a lower operation count.

Stable calculation

When a Givens rotation matrix, "G"("i","k",θ), is multiplied times another matrix, "A", from the left, "GA", only rows "i" and "k" of "A" are affected. Thus we restrict attention to the following problem. Given "a" and "b", find "c" = cos θ and "s" = sin θ such that: egin{bmatrix} c & s \ -s & c end{bmatrix} egin{bmatrix} a \ b end{bmatrix} = egin{bmatrix} r \ 0 end{bmatrix} . Explicit calculation of θ is rarely necessary or desirable. Instead we directly seek "c", "s", and "r". An obvious solution would be:egin{align} r &{}larr sqrt{a^2 + b^2} \ c &{}larr a / r \ s &{}larr b / r.end{align}However, to avoid overflow and underflow, we use a different computation, employing the ratio "b"/"a" (which is tan θ) or its reciprocal (Golub & Van Loan 1996). And as Edward Anderson (2000) discovered in improving LAPACK, a previously overlooked numerical consideration is continuity. To achieve this, we required "r" to be positive.

if (b = 0) then {c ← copysign(1,a); s ← 0; r ← abs(a)} else if (a = 0) then {c ← 0; s ← copysign(1,b); r ← abs(b)} else if (abs(b) > abs(a)) then t ← a/b u ← copysign(sqrt(1+t*t),b) s ← 1/u c ← s*t r ← b*u else t ← b/a u ← copysign(sqrt(1+t*t),a) c ← 1/u s ← c*t r ← a*u

This is written in terms of the IEEE 754r copysign(x,y) function, which provides a safe and cheap way to copy the sign of y to x. If that is not available, x*sgn(y), using the sign function, is an alternative.

See also

* Jacobi rotation

References

* cite book
last = Golub
first = Gene H.
authorlink = Gene H. Golub
coauthors = Charles F. Van Loan
title = Matrix Computations
edition = 3/e
publisher = John Hopkins University Press
date = 1996
location = Baltimore
id = ISBN 978-0-8018-5414-9

* Anderson, Edward. (2000) " [http://www.netlib.org/lapack/lawns/downloads/ Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem] ". LAPACK Working Note 150, University of Tennessee, UT-CS-00-454, December 4, 2000.
* D. Bindel, J. Demmel, W. Kahan, O. Marques. (2001) " [http://www.netlib.org/lapack/lawns/downloads/ On Computing Givens rotations reliably and efficiently] ". LAPACK Working Note 148, University of Tennessee, UT-CS-00-449, January 31, 2001.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Givens-Rotation — In der linearen Algebra ist eine Givens Rotation (nach Wallace Givens) eine Drehung in einer Ebene, die durch zwei Koordinaten Achsen aufgespannt wird. Manchmal wird dies auch als Jacobi Rotation (nach Carl Gustav Jacobi) bezeichnet. Beschreibung …   Deutsch Wikipedia

  • Givens-Drehung — In der linearen Algebra ist eine Givens Rotation (nach Wallace Givens) eine Drehung in einer Ebene, die durch zwei Koordinaten Achsen aufgespannt wird. Manchmal wird dies auch als Jacobi Rotation (nach Carl Gustav Jacobi) bezeichnet. Beschreibung …   Deutsch Wikipedia

  • Rotation matrix — In linear algebra, a rotation matrix is a matrix that is used to perform a rotation in Euclidean space. For example the matrix rotates points in the xy Cartesian plane counterclockwise through an angle θ about the origin of the Cartesian… …   Wikipedia

  • Givens — Der Nachname Givens gehört Philip Gerald Givens, der 55. Bürgermeister von Toronto. Edward Givens, einem US amerikanischen Astronautenanwärter. Jack Givens (* 1956), US amerikanischer Basketballspieler Robin Givens, einer US amerikanischen… …   Deutsch Wikipedia

  • James Wallace Givens — James Wallace Givens, Jr. (* 14. Dezember 1910 in Alberene bei Charlottesville; † 5. März 1993) war Mathematiker und Pionier der Informatik. Nach ihm ist die Givens Rotation benannt. Er erhielt 1928 im Alter von 17 Jahren seinen Bachelor… …   Deutsch Wikipedia

  • James Wallace Givens, Jr — James Wallace Givens, Jr. (* 14. Dezember 1910 in Alberene bei Charlottesville; † 5. März 1993) war Mathematiker und Pionier der Informatik. Nach ihm ist die Givens Rotation benannt. Er erhielt 1928 im Alter von 17 Jahren seinen Bachelor… …   Deutsch Wikipedia

  • Wallace Givens — James Wallace Givens, Jr. (1910 December 14–1993 March 5) was a mathematician and a pioneer in computer science. He is the eponym of the well known Givens rotations. Born the son of two teachers in Alberene, Virginia (a small town near… …   Wikipedia

  • Wallace Givens — James Wallace Givens, Jr. (* 14. Dezember 1910 in Alberene bei Charlottesville; † 5. März 1993) war Mathematiker und Pionier der Informatik. Nach ihm ist die Givens Rotation benannt. Er erhielt 1928 im Alter von 17 Jahren seinen Bachelor… …   Deutsch Wikipedia

  • Jacobi rotation — In numerical linear algebra, a Jacobi rotation is a rotation, Q k ℓ, of a 2 dimensional linear subspace of an n dimensional inner product space, chosen to zero a symmetric pair of off diagonal entries of an n × n real symmetric matrix, A , when… …   Wikipedia

  • Matrice de rotation — En mathématiques, et plus précisément en algèbre linéaire, une matrice de rotation Q est une matrice orthogonale de déterminant 1, ce qui peut s exprimer par les équations suivantes : QtQ = I = QQt et det Q = 1, où Qt est la matrice… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”