- Jacobi rotation
In
numerical linear algebra , a Jacobi rotation is a rotation, "Q""k"ℓ, of a 2-dimensional linear subspace of an "n-"dimensionalinner product space , chosen to zero a symmetric pair of off-diagonal entries of an "n"×"n" realsymmetric matrix , "A", when applied as a similarity transformation::
:
It is the core operation in the
Jacobi eigenvalue algorithm , which isnumerically stable and well-suited to implementation onparallel processor s.It is important to note that only rows "k" and ℓ and columns "k" and ℓ of "A" will be affected, and that "A"′ will remain symmetric. Also, an explicit matrix for "Q""k"ℓ is rarely computed; instead, auxiliary values are computed and "A" is updated in an efficient and numerically stable way. However, for reference, we may write the matrix as
:
That is, "Q""k"ℓ is an identity matrix except for four entries, two on the diagonal ("q""kk" and "q"ℓℓ, both equal to "c") and two symmetrically placed off the diagonal ("q""k"ℓ and "Q"ℓ"k", equal to "s" and −"s", respectively). Here "c" = cos ϑ and "s" = sin ϑ for some angle ϑ; but to apply the rotation, the angle itself is not required. Using
Kronecker delta notation, the matrix entries can be written:
Suppose "h" is an index other than "k" or ℓ (which must themselves be distinct). Then the similarity update produces, algebraically,
: :
:
: :
Numerically stable computation
To determine the quantities needed for the update, we must solve the off-diagonal equation for zero Harv|Golub|Van Loan|1996|loc=§8.4. This implies that
:
Set β to half this quantity,
:
If "a""k"ℓ is zero we can stop without performing an update, thus we never divide by zero. Let "t" be tan ϑ. Then with a few trigonometric identities we reduce the equation to
:
For stability we choose the solution
:
From this we may obtain "c" and "s" as
: :
Although we now could use the algebraic update equations given previously, it may be preferable to rewrite them. Let
:
so that ρ = tan(ϑ/2). Then the revised update equations are
: :
:
: :
As previously remarked, we need never explicitly compute the rotation angle ϑ. In fact, we can reproduce the symmetric update determined by "Q""k"ℓ by retaining only the three values "k", ℓ, and "t", with "t" set to zero for a null rotation.
See also
*
Givens rotation References
* citation
last1 = Golub
first1 = Gene H.
author1-link = Gene H. Golub
last2 = Van Loan
first2 = Charles F.
author2-link = Charles F. Van Loan
title = Matrix Computations
edition = 3rd
publisher = Johns Hopkins University Press
date = 1996
location = Baltimore
isbn = 978-0-8018-5414-9
Wikimedia Foundation. 2010.