fast stable computation of the eigenvalues of companion
play

Fast Stable Computation of the Eigenvalues of Companion Matrices - PowerPoint PPT Presentation

Fast Stable Computation of the Eigenvalues of Companion Matrices David S. Watkins Department of Mathematics Washington State University Spa, Belgium, 2014 David S. Watkins Eigenvalues of Companion Matrices Collaborators This is joint work


  1. The Unitary Part  x x x x   x x   1   1  1 x x x x x x x x          =         x x x 1 x x x x        x x 1 1 x x � � � Q = � � � O ( n ) storage David S. Watkins Eigenvalues of Companion Matrices

  2. The Unitary Part  x x x x   x x   1   1  1 x x x x x x x x          =         x x x 1 x x x x        x x 1 1 x x � � � Q = � � � O ( n ) storage David S. Watkins Eigenvalues of Companion Matrices

  3. The Upper Triangular Part R = U + xy T unitary-plus-rank-one, so R has quasiseparable rank 2.   x · · · x x · · · x . . . ... . . .  . . .      x x x · · ·   R =   x x · · ·    .  ... .   .   x quasiseparable generator representation ( O ( n ) storage) Chandrasekaran et. al. exploit this structure. We do it differently. David S. Watkins Eigenvalues of Companion Matrices

  4. The Upper Triangular Part R = U + xy T unitary-plus-rank-one, so R has quasiseparable rank 2.   x · · · x x · · · x . . . ... . . .  . . .      x x x · · ·   R =   x x · · ·    .  ... .   .   x quasiseparable generator representation ( O ( n ) storage) Chandrasekaran et. al. exploit this structure. We do it differently. David S. Watkins Eigenvalues of Companion Matrices

  5. The Upper Triangular Part R = U + xy T unitary-plus-rank-one, so R has quasiseparable rank 2.   x · · · x x · · · x . . . ... . . .  . . .      x x x · · ·   R =   x x · · ·    .  ... .   .   x quasiseparable generator representation ( O ( n ) storage) Chandrasekaran et. al. exploit this structure. We do it differently. David S. Watkins Eigenvalues of Companion Matrices

  6. The Upper Triangular Part R = U + xy T unitary-plus-rank-one, so R has quasiseparable rank 2.   x · · · x x · · · x . . . ... . . .  . . .      x x x · · ·   R =   x x · · ·    .  ... .   .   x quasiseparable generator representation ( O ( n ) storage) Chandrasekaran et. al. exploit this structure. We do it differently. David S. Watkins Eigenvalues of Companion Matrices

  7. The Upper Triangular Part R = U + xy T unitary-plus-rank-one, so R has quasiseparable rank 2.   x · · · x x · · · x . . . ... . . .  . . .      x x x · · ·   R =   x x · · ·    .  ... .   .   x quasiseparable generator representation ( O ( n ) storage) Chandrasekaran et. al. exploit this structure. We do it differently. David S. Watkins Eigenvalues of Companion Matrices

  8. Our Representation Add a row/column for extra wiggle room  0 1  − a 0 1 − a 1 0   . .  ...  . . A =   . .     1 0 − a n − 1   0 0 Extra zero root can be deflated immediately. A = QR , where  0 ± 1 0   1 0  − a 1 . . ... 1 0 0 . .    . .  . .  ...    . . Q = R =     . . 1 − a n − 1 0         1 0 0 ∓ 1 ± a 0     0 1 0 0 David S. Watkins Eigenvalues of Companion Matrices

  9. Our Representation Add a row/column for extra wiggle room  0 1  − a 0 1 − a 1 0   . .  ...  . . A =   . .     1 0 − a n − 1   0 0 Extra zero root can be deflated immediately. A = QR , where  0 ± 1 0   1 0  − a 1 . . ... 1 0 0 . .    . .  . .  ...    . . Q = R =     . . 1 − a n − 1 0         1 0 0 ∓ 1 ± a 0     0 1 0 0 David S. Watkins Eigenvalues of Companion Matrices

  10. Our Representation  0 ± 1 0  1 0 0   . .  ...  . . Q =   . .     1 0 0   0 1 Q is stored in factored form � � � Q = � � � Q = Q 1 Q 2 · · · Q n − 1 David S. Watkins Eigenvalues of Companion Matrices

  11. Our Representation  0 ± 1 0  1 0 0   . .  ...  . . Q =   . .     1 0 0   0 1 Q is stored in factored form � � � Q = � � � Q = Q 1 Q 2 · · · Q n − 1 David S. Watkins Eigenvalues of Companion Matrices

  12. Our Representation  1 0  − a 1 . . ... . .  . .    R =   1 − a n − 1 0     ∓ 1 ± a 0   0 0 R is unitary-plus-rank-one:     1 0 0 0 − a 1 0 . . . . ... ... . . . .  . .   . .      +  1 0 0   0 0  − a n − 1         0 ∓ 1 ± a 0 0     ± 1 0 ∓ 1 0 David S. Watkins Eigenvalues of Companion Matrices

  13. Representation of R R = U + xy T , where   − a 1 . .  .    xy T = � � 0 0 1 0 · · ·   − a n − 1     ± a 0   ∓ 1 Next step: Roll up x . David S. Watkins Eigenvalues of Companion Matrices

  14. Representation of R R = U + xy T , where   − a 1 . .  .    xy T = � � 0 0 1 0 · · ·   − a n − 1     ± a 0   ∓ 1 Next step: Roll up x . David S. Watkins Eigenvalues of Companion Matrices

  15. Representation of R R = U + xy T , where   − a 1 . .  .    xy T = � � 0 0 1 0 · · ·   − a n − 1     ± a 0   ∓ 1 Next step: Roll up x . David S. Watkins Eigenvalues of Companion Matrices

  16. Representation of R     x x x x  =     x x    x x David S. Watkins Eigenvalues of Companion Matrices

  17. Representation of R     x x x x  =     x x    � � x 0 David S. Watkins Eigenvalues of Companion Matrices

  18. Representation of R     x x x x �  =     � 0 x    � � x 0 David S. Watkins Eigenvalues of Companion Matrices

  19. Representation of R     x x � � x 0 �  =     � 0 x    � � x 0 David S. Watkins Eigenvalues of Companion Matrices

  20. Representation of R     x x � � 0 x �  =     � x 0    � � 0 x C 1 · · · C n − 1 C n x = α e 1 (w.l.g. α = 1) David S. Watkins Eigenvalues of Companion Matrices

  21. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  22. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  23. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  24. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  25. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  26. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  27. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  28. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  29. Representation of R C 1 · · · C n − 1 C n x = e 1 Cx = e 1 C ∗ e 1 = x R = U + xy T = U + C ∗ e 1 y T = C ∗ ( CU + e 1 y T ) R = C ∗ ( B + e 1 y T ) B is upper Hessenberg (and unitary) so B = B 1 · · · B n . R = C ∗ ( B + e 1 y T ) = C ∗ 1 ( B 1 · · · B n + e 1 y T ) n · · · C ∗ O ( n ) storage Bonus: Redundancy! No need to keep track of y . David S. Watkins Eigenvalues of Companion Matrices

  30. Representation of A Altogether we have A = QR = Q C ∗ ( B + e 1 y T ) 1 ( B 1 · · · B n + e 1 y T ) A = Q 1 · · · Q n − 1 C ∗ n · · · C ∗   � � � � � � � � �   � � � + · · ·   � � �   � � �   � � � � David S. Watkins Eigenvalues of Companion Matrices

  31. Francis Iterations We have complex single-shift code . . . real double-shift code. We describe single-shift case for simplicity. ignoring rank-one part . . . � � � � � � � � � A = � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  32. Francis Iterations We have complex single-shift code . . . real double-shift code. We describe single-shift case for simplicity. ignoring rank-one part . . . � � � � � � � � � A = � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  33. Francis Iterations We have complex single-shift code . . . real double-shift code. We describe single-shift case for simplicity. ignoring rank-one part . . . � � � � � � � � � A = � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  34. Two Basic Operations Two basic operations: Fusion � � � ⇒ � � � Turnover (aka shift through, Givens swap, . . . ) � � � � � � ⇔ � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  35. Two Basic Operations Two basic operations: Fusion � � � ⇒ � � � Turnover (aka shift through, Givens swap, . . . ) � � � � � � ⇔ � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  36. Two Basic Operations Two basic operations: Fusion � � � ⇒ � � � Turnover (aka shift through, Givens swap, . . . ) � � � � � � ⇔ � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  37. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  38. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  39. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  40. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  41. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  42. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  43. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  44. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  45. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  46. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  47. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  48. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  49. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  50. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  51. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  52. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  53. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  54. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  55. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  56. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  57. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  58. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  59. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  60. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  61. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  62. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  63. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  64. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  65. The Bulge Chase � � � � � � � � � � � � � � � � � � � � � � David S. Watkins Eigenvalues of Companion Matrices

  66. Done! iteration complete! Cost: 3 n turnovers/iteration, so O ( n ) flops/iteration Double-shift iteration is similar. (Chase two core transformations instead of one.) David S. Watkins Eigenvalues of Companion Matrices

  67. Done! iteration complete! Cost: 3 n turnovers/iteration, so O ( n ) flops/iteration Double-shift iteration is similar. (Chase two core transformations instead of one.) David S. Watkins Eigenvalues of Companion Matrices

  68. Done! iteration complete! Cost: 3 n turnovers/iteration, so O ( n ) flops/iteration Double-shift iteration is similar. (Chase two core transformations instead of one.) David S. Watkins Eigenvalues of Companion Matrices

  69. Speed Comparison, Complex Case Contestants ( O ( n 3 )) LAPACK code ZHSEQR BEGG (Boito et. al. 2012) AMVW (our single-shift code) David S. Watkins Eigenvalues of Companion Matrices

  70. Speed Comparison, Complex Case 3 10 LAPACK BEGG 2 10 AMVW 1 10 0 10 time (seconds) −1 10 −2 10 −3 10 −4 10 −5 10 0 1 2 3 4 5 10 10 10 10 10 10 degree David S. Watkins Eigenvalues of Companion Matrices

  71. Speed Comparison, Complex Case At degree 1024: method time LAPACK 7.14 BEGG 1.02 AMVW 0.18 David S. Watkins Eigenvalues of Companion Matrices

  72. Speed Comparison, Real Case Results similar for double-shift code . . . . . . but we’re only about twice as fast as the competition. (compared with Chandrasekaran et. al.) David S. Watkins Eigenvalues of Companion Matrices

Recommend


More recommend