CS3220 Gaussian Elimination and LU Steve Marschner Spring 2010 - - PowerPoint PPT Presentation
CS3220 Gaussian Elimination and LU Steve Marschner Spring 2010 - - PowerPoint PPT Presentation
CS3220 Gaussian Elimination and LU Steve Marschner Spring 2010 one step of the elimination phase for k = 1 to n1 k j for i = k+1 to n r = a ik /a kk for j = k+1 to n a ij += r a kj b i = b i r b k b k k a kk a kj a ik = 0 b i for k
- ne step of the elimination phase
for k = 1 to n–1 for i = k+1 to n r = aik /akk for j = k+1 to n aij += –r akj bi = bi – r bk aik = 0 for k = n to 1 s = bk for j = (k+1) to n s += –akj xj xk = s / akk
akj aij k k i j akk aik bk bi A x b
- ne step of the solution phase
for k = 1 to n–1 for i = k+1 to n r = aik /akk for j = k+1 to n aij += –r akj bi = bi – r bk aik = 0 for k = n to 1 s = bk for j = (k+1) to n s += –akj xj xk = s / akk
akj k k j akk xk xj bk A x b
- ne step of the elimination phase: vector
k k i j bk A x b akk aik
for k = 1 to n–1 for i = k+1 to n r = aik /akk ai,k+1:n += –r ak,k+1:n bi = bi – r bk aik = 0 for k = n to 1 s = bk – ak,k+1:n • xk+1:n xk = s / akk
- ne step of the solution phase: vector
k k j akk xk bk A x b bi
for k = 1 to n–1 for i = k+1 to n r = aik /akk ai,k+1:n += –r ak,k+1:n bi = bi – r bk aik = 0 for k = n to 1 s = bk – ak,k+1:n • xk+1:n xk = s / akk
- ne step of the elimination phase: matrix
k k i j bk A x b akk
for k = 1 to n–1 B = ak+1:n,k • ak,k+1:n ak+1:n,k+1:n –= B / akk bk+1:n += –ak+1:n,k / akk ak+1:n,k = 0 for k = n to 1 s = bk – ak,k+1:n • xk+1:n xk = s / akk
elimination step as matrix multiplication
k k k k Mk−1 · · · M1A Mk Mk · · · M1A
inverting elimination matrices
k k k I M−1
k
Mk i mik −mik
multiplying the multipliers
k k k M−1
k
M−1
k−1
matrix full of multipliers
L = 1 1 | | ... m1 m2 1 | | | 1 mn−2 mn−1 1
pivoting multipliers will be 10, 100, 1000, 10000—not good!
k k bk x Mk−1 · · · M1A Mk−1 · · · M1b
.01 .1 1 10 100
pivoting multipliers will be 10, 100, 1000, 10000—not good!
k k bk x Mk−1 · · · M1A Mk−1 · · · M1b
.01 .1 1 10 100
solution: swap these rows
pivot vector don’t actually swap rows—just renumber them.
k k bk x
.01 .1 1 10 100
Mk−1 · · · M1A Mk−1 · · · M1b p = [1, 2, 3, 4, 5, 6, 7, 8] p = [1, 2, 3, 8, 5, 6, 7, 4] p = [1, 2, 3, 8, 7, 4, 5, 6]
pivot vector don’t actually swap rows—just renumber them.
k k bk x
100
Mk−1 · · · M1A Mk−1 · · · M1b p = [1, 2, 3, 4, 5, 6, 7, 8] p = [1, 2, 3, 8, 5, 6, 7, 4] p = [1, 2, 3, 8, 7, 4, 5, 6]
pivot vector don’t actually swap rows—just renumber them.
k k bk x Mk−1 · · · M1A Mk−1 · · · M1b p = [1, 2, 3, 4, 5, 6, 7, 8] p = [1, 2, 3, 8, 5, 6, 7, 4] p = [1, 2, 3, 8, 7, 4, 5, 6]