1 / 65

The Snap-Back Pivoting Method for Symmetric Banded Indefinite Matrices

The Snap-Back Pivoting Method for Symmetric Banded Indefinite Matrices. Dror Irony and Sivan Toledo Tel-Aviv University. The Problem. Solve the system Ax=b W here A is banded n  n , symmetric with half bandwidth m :. ?. ?. ?. ?. =. ?. ?. ?. ?. ?. So far ….

matty
Download Presentation

The Snap-Back Pivoting Method for Symmetric Banded Indefinite Matrices

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Snap-Back Pivoting Method for Symmetric Banded Indefinite Matrices Dror Irony and Sivan Toledo Tel-Aviv University

  2. The Problem Solve the system Ax=b Where A is banded nn, symmetric with half bandwidth m : ? ? ? ? = ? ? ? ? ?

  3. So far … • Choleski/LLT - just positive definite • GEPP - not exploiting symmetry • 2x2 block pivoting (e.g. B-K) - unbounded fill • Reduction to tridiagonal (e.g. aasen) - unbounded fill • Orthogonal reduction to tridiagonal (e.g. SBR) - too expensive: O(n2m)

  4. Our Factorization Snap-Back Pivoting: • If possible => simple 11 LLTstep • Otherwise => Eliminate 1 or 2 rows/columns symmetry is ruined – but then snapped back!

  5. Benefits • Stable • Exploits symmetry • Keeps band structure => fill is bounded • Running time: O(m2n) • Fast

  6. Snap Back Pivoting in Details

  7. If A[1,1]is large enough • Simple symmetric Gaussian elimination step: A[1,1]

  8. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  9. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  10. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  11. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  12. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  13. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  14. If A[1,1]is large enough • Simple symmetric Gaussian elimination step:

  15. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i)

  16. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i) x If x>y swap rows/cols 2 and 3 y

  17. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i)

  18. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i)

  19. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i) x If x>y swap rows/cols 3 and 4 y

  20. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i)

  21. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i)

  22. If A[1,1]is not large enough Eliminate elements 2 till m1in first row/column (mi = number of structural non-zeros under the diagonal in column i)

  23. If A[1,1]is not large enough Eliminate the element m1+1 in the first column by Givens:

  24. If A[1,1]is not large enough Eliminate the element m1+1 in the first column by Givens: Cos() Sin() 1 1 -Sin() Cos() 1 1 1 1 1

  25. If A[1,1]is not large enough Eliminate the element m1+1 in the first column by Givens:

  26. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  27. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  28. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  29. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  30. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  31. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  32. If A[1,1]is not large enough Now, eliminate the first row using its first element:

  33. If A[1,1]is not large enough Denote the matrix we got by B: B =

  34. If B[m1+1,m1+1] is not the largest element in its row Scale row m1+1: B[m1+1,m1+1] 1 1 1 1/Cos() 1 1 1 1 1

  35. If B[m1+1,m1+1] is not the largest element in its row Now we can move forward to the next elimination step…

  36. If B[m1+1,m1+1] is the largest element in its row Bring B[m1+1,m1+1] to location [2,2] : B[m1+1,m1+1] B[2,2]

  37. If B[m1+1,m1+1] is the largest element in its row Bring B[m1+1,m1+1] to location [2,2] :

  38. If B[m1+1,m1+1] is the largest element in its row Bring B[m1+1,m1+1] to location [2,2] :

  39. If B[m1+1,m1+1] is the largest element in its row Bring B[m1+1,m1+1] to location [2,2] :

  40. If B[m1+1,m1+1] is the largest element in its row Eliminate elements 3 to m1 in second row/column:

  41. If B[m1+1,m1+1] is the largest element in its row Eliminate elements 3 to m1 in second row/column: x If x>y swap rows/cols 3 and 4 y

  42. If B[m1+1,m1+1] is the largest element in its row Eliminate elements 3 to m1 in second row/column:

  43. If B[m1+1,m1+1] is the largest element in its row Eliminate elements 3 to m1 in second row/column:

  44. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

  45. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

  46. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

  47. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

  48. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

  49. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

  50. If B[m1+1,m1+1] is the largest element in its row Now eliminate the second row/column:

More Related