Introducing Zeros by Similarity Transformations • A = QT Q

advertisement
Introducing Zeros by Similarity Transformations
• Try computing the Schur factorization A = QT Q∗ by applying
Householder reflectors from left and right that introduce zeros:
Lecture 14
Hessenberg/Tridiagonal Reduction






×
××
××
××
××
×
×
××
××
××
××
×
×××××
×
××
××
××
××
×
××
××
××
×

 × × × × ×  Q∗  0 ×
Q1 ×
× × × × × 1  0 ×
××
××
××
×
××
××
×

 ××

 ××


××
××
××
××
×
0×
××
××
××
× −→ ×
× × × × × −→
×
××
××
××
××
×
0×
××
××
××
×
×××××
MIT 18.335J / 6.337J
Introduction to Numerical Methods
Q∗1 AQ1
Q∗1 A
A
• The right multiplication destroys the zeros previously introduced
Per-Olof Persson (persson@mit.edu)
• We already knew this would not work, because of Abel’s theorem
October 29, 2007
• However, the subdiagonal entries typically decrease in magnitude
1
2
The Hessenberg Form
The Hessenberg Form
• Instead, try computing an upper Hessenberg matrix H similar to A:






××
××
××
××
×
×××××
×××××
××
××
××
××
×
××
××
××
××
×

 × × × × ×  Q∗  ×
Q
1 
× × × × × 1  0 ×
×
××
××
××
×
××
××
××
×






×
××
××
××
×
0×
××
××
××
× −→
× × × × × −→
×
××
××
××
×
0×
××
××
××
×
×××××
A
Q∗1 AQ1
Q∗1 A



× ××
××
××
×
×××××
×××××
××
××
×
 × × × × ×  Q∗  × × × × ×  Q1  × × ×

 × × × × 1  ×
××
××
×
××
××
×

 −→  × ×

 −→  ××
×
××
××
×
0×
××
××
×
××××
×
××
××
×
0×
××
××
×
××××
Q∗1 AQ1
Q∗2 Q∗1 AQ1

Q∗2 Q∗1 AQ1 Q2
A
Q∗1 A
producing a tridiagonal matrix T after m − 2 steps
Householder Reduction to Hessenberg
Stability of Householder Hessenberg
= 1 to m − 2
x = Ak+1:m,k
vk = sign(x1 )kxk2 e1 + x
vk = vk /kvk k2
Ak+1:m,k:m = Ak+1:m,k:m − 2vk (vk∗ Ak+1:m,k:m )
A1:m,k+1:m = A1:m,k+1:m − 2(A1:m,k+1:m vk )vk∗
• The Householder Hessenberg reduction algorithm is backward stable:
kδAk
= O(machine )
kAk
Q̃H̃ Q̃∗ = A + δA,
where Q̃ is an exactly unitary matrix based on ṽk
• Operation count (not twice Householder QR):
k=1
Q∗1 AQ1
4
for k
4(m − k)2 + 4m(m − k) = 4m3 /3 +4m3 − 4m3 /2 = 10m3 /3
| {z }
QR
• For hermitian A, operation count is twice QR divided by two = 4m 3 /3
5

××
×0 0 0
×××××
×××××
××
××
××
××
×
××
××
××
××
×

 × × × × ×  Q∗  ×
Q 1  ××
× × × × × 1  0 ×
××
××
×
××
××
×

 −→  ×
 −→  ××

×
××
××
××
×
0×
××
××
××
×
×××××
×
××
××
××
×
0×
××
××
××
×
×××××
3
Algorithm: Householder Hessenberg
m
X

×××××
× × × × ×

× × × ×
Q∗m−2 · · · Q∗2 Q∗1 A Q1 Q2 · · · Qm−2 = H = 


{z
}
{z
} |
|
×××
∗
Q
Q
××
• For hermitian A, zeros are also introduced above diagonals





• This time the zeros we introduce are not destroyed
• Continue in a similar way with column 2:



• After m − 2 steps, we obtain the Hessenberg form:
6
Download