Typeset by GMNI & FoilTEX
MÉTODOS DIRECTOS PARA GRANDES SISTEMAS DE ECUACIONES LINEALES: FACTORIZACIONES DE CROUT Y CHOLESKY F Navarrina, I Colominas, M Casteleiro, H Gómez, J París GMNI GRUPO DE MÉTODOS NUMÉRICOS EN INGENIERÍA Departamento de Métodos Matemáticos y de Representación Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos Universidad de A Coruña, España e-mail: fnavarrina@udces página web: http://caminosudces/gmni
ÍNDICE FACTORIZACIÓN DE CROUT Ã = L D Ũ Fundamentos teóricos Condiciones de existencia Algoritmos de factorización y de solución de sistemas Programación Almacenamiento de los resultados sobre los datos Adaptación para almacenamientos en banda y perfil T FACTORIZACIÓN DE CHOLESKY Ã = L D L Fundamentos teóricos Condiciones de existencia Algoritmos de factorización y de solución de sistemas Programación Almacenamiento de los resultados sobre los datos Adaptación para almacenamientos en banda y perfil CONDICIONES DE VINCULACIÓN [coacciones] IMPLEMENTACIÓN Método de Cholesky para matrices en perfil ( Column Profile o Sky-Line )
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (I) FACTORIZACIÓN DE CROUT [à = L D Ũ] Sea el problema à x = b con à = a 11 a 12 a 1n a 21 a 22 a 2n, x = a n1 a n2 a nn x 1 x 2, b = x n b 1 b 2 b n La FACTORIZACIÓN DE CROUT consiste en: à = L D Ũ = L z {}}{ D Ũ x }{{} ȳ = b = L z = b, D ȳ = z, Ũ x = ȳ
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIa) FUNCIONAMIENTO DEL MÉTODO Supongamos que ya hemos factorizado [ ] a11 a 1k à k = L k D k Ũ k, con à k =, a k1 a kk siendo [ ] l11 0 L k = l k1 l kk [ ] d11 0, k D =, Ũ k = 0 d kk [ ] u11 u 1k 0 u kk
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIb) Pretendemos factorizar (a partir de lo anterior) à k+1 = L k+1 D k+1 Ũ k+1, con à k+1 = à k c k+1 f T k+1 a k+1,k+1, de forma que 2 Lk+1 = e 6 4 L e k lt k+1 0 l k+1,k+1 3, D k+1 = 7 e 5 2 6 4 D e k 0 T 0 d k+1,k+1 3, U k+1 = 7 e 5 2 6 4 U e k ū k+1 0 T u k+1,k+1 3 7 5 donde c k+1 = 8 < : 9 a 1,k+1 = ;, ū k+1 = a k,k+1 8 < : 9 u 1,k+1 = ;, u k,k+1 f T k+1 = [ a k+1,1 a k+1,k ], lt k+1 = [ l k+1,1 l k+1,k ]
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIc) Multiplicamos por cajas D e k+1 U e k+1 = 2 0 0 z} { e z } { Dk U e e k + 0 0 T Dk ūk+1 + 0 u k+1,k+1 e 0 T U k + d k+1,k+1 0 T 0 T ū k+1 + d k+1,k+1 u k+1,k+1 e 6 7 4 5 {z } 0 T {z } 0 T {z } 0 3 L e k+1 `De k+1 U e k+1 = 2 3 0 0 z} { e z } { Lk D e e k U e k + 0 0 T Lk D e e k ūk+1 + 0 d k+1,k+1 u k+1,k+1 lt k+1 Dk U e e k + l k+1,k+1 0 T lt k+1 Dk ūk+1 + l k+1,k+1 d k+1,k+1 u k+1,k+1 e 6 7 4 {z } 5 0 T
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IId) Igualamos 2 3 2 3 6 4 A e k c k+1 f T k+1 a k+1,k+1 7 5 = 6 4 L e k D e k U e k L e k D e k ūk+1 lt k+1 D e k U e k lt k+1 D e k ūk+1 + l k+1,k+1 d k+1,k+1 u k+1,k+1, 7 5 lo que por cajas equivale a à k = L k D k Ũ k, [ HIPÓTESIS] c k+1 = L k D k ū k+1, f T k+1 = l T k+1 D k Ũ k, a k+1,k+1 = l T k+1 D k ū k+1 + l k+1,k+1 d k+1,k+1 u k+1,k+1
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIe) Por tanto 1 El vector ū k+1 es la solucíón del sistema: [L k D k] ū k+1 = c k+1 2 El vector l k+1 es la solucíón del sistema: [ Ũ T k D k ] lk+1 = f k+1 3 Los coeficientes l k+1,k+1, d k+1,k+1 y u k+1,k+1 verifican: l k+1,k+1 d k+1,k+1 u k+1,k+1 = a k+1,k+1 l T k+1d k ūk+1 (*) (*) Donde l k+1 y ū k+1 se habrán calculado previamente Hay infinitas descomposiciones posibles Por convenio, se eligen (arbitrariamente) los valores: l k+1,k+1 = 1, u k+1,k+1 = 1 = d k+1,k+1 = a k+1,k+1 l T k+1 D e k ūk+1
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIf) 4 Para k = 1: Ã 1 = L 1 D 1 Ũ 1 = l 11 d 11 u 11 = a 11 (*) 5 Para k = n: Ã n = Ã = Ã = L D Ũ con = L n L, = n D D, Ũ = Ũ n (*) Hay infinitas descomposiciones posibles Por convenio, se eligen (arbitrariamente) los valores: l 11 = 1, u 11 = 1 = d 11 = a 11
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIIa) REALIZACIÓN DE LOS CÁLCULOS 1 FACTORIZACIÓN DE LA MATRIZ: Asignar l 11 = 1, u 11 = 1, d 11 = a 11 Para k = 1,, n 1 Resolver [ L k D k] ū k+1 = c k+1, [ Ũ k T D k ] lk+1 = f k+1 Asignar l k+1,k+1 = 1, u k+1,k+1 = 1, d k+1,k+1 = a k+1,k+1 l T k+1d k ūk+1
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIIb) Notas: 1 Los sistemas [L k D k] ū k+1 = c k+1 se resuelven en dos fases: L k v k+1 {}}{ D k ūk+1 = c k+1 = L k v k+1 = c k+1, k D ūk+1 = v k+1 2 Los sistemas Ũ T k [ Ũ T k D k] lk+1 = f k+1 se resuelven en dos fases: m k+1 {}}{ D k l k+1 = f k+1 = Ũ T k m k+1 = f k+1, k D l k+1 = m k+1
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IIIc) REALIZACIÓN DE LOS CÁLCULOS (continuación) 2 SOLUCIÓN DE SISTEMAS: Resolver L z = b, D ȳ = z, Ũ x = ȳ
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IVa) CONDICIONES DE EXISTENCIA Por construcción (unos en la diagonal principal), se cumple det(lk ) = det(u k) = 1 para k = 1,, n e e Por tanto, basta con que se cumplan las condiciones ( det(de k ) 0, k = 1,, n 1 para que pueda realizarse la factorización, det(d e k ) 0, k = n para que pueda realizarse la solución de sistemas Por otro lado, Ak = L e e k D e k U e k = det(ak ) = det(l e e k) det(d e k) det(u e k) = det(d k) k e Luego, las condiciones de existencia pueden expresarse en la forma ( det(ae k ) 0, k = 1,, n 1 para que pueda realizarse la factorización, det(a e k ) 0, k = n para que pueda realizarse la solución de sistemas
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IVb) En general, podemos afirmar que: Si la matriz es REGULAR h i det(a) 0 e puede pasar que la factorización exista; (*) puede pasar que la factorización NO exista; (**) es prácticamente imposible comprobar a priori la condición de existencia anterior; es sencillo (y RECOMENDABLE en todo caso) comprobar sobre la marcha que Aunque la matriz sea SINGULAR d 11 0, d k+1,k+1 0 para k = 1,, n h i det(a) = 0 e puede pasar que la factorización exista; (*) pero no se podrá utilizar para resolver el sistema (***) (*) Esto sucederá cuando det(ak ) 0, k = 1,, n 1 e (**) Esto sucederá cuando no se cumpla la condición anterior Por ejemplo, cuando a 11 = 0 Al igual que en el Método de Gauss, estos casos requieren PIVOTAMIENTO (intercambio de filas y/o columnas) El problema es que el pivotamiento casa mal con los almacenamientos en banda y en perfil (***) Porque el sistema no tiene solución y el algoritmo fallará al resolver D e ȳ = z
FACTORIZACIÓN DE CROUT: Fundamentos Teóricos (IVc) Un caso importante es el de las MATRICES DEFINIDAS: A DEFINIDA = det(ak ) 0, k = 1,, n e e Luego, si à es DEFINIDA (positiva o negativa) puede realizarse la factorización y puede realizarse la solución de sistemas
FACTORIZACIÓN DE CROUT: Algoritmos (I) 1 FACTORIZACIÓN DE LA MATRIZ: l 11 = 1, u 11 = 1 d 11 = a 11 DO k=1,n-1 ENDDO u i,k+1 = a i,k+1 Xi 1 l ij u j,k+1 ; i = 1,, k u i,k+1 = u i,k+1 / d ii ; i = 1,, k l k+1,i = a k+1,i Xi 1 u ji l k+1,j ; i = 1,, k l k+1,i = l k+1,i / d ii ; i = 1,, k l k+1,k+1 = 1, u k+1,k+1 = 1 kx d k+1,k+1 = a k+1,k+1 l k+1,j d jj u j,k+1
FACTORIZACIÓN DE CROUT: Algoritmos (II) 2 SOLUCIÓN DE SISTEMAS: (*) z i = b i Xi 1 l ij z j ; i = 1,, n y i = z i / d ii ; i = 1,, n nx x i = y i u ij x j ; i = n,, 1, 1 j=i+1 (*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfil debido a que el bucle interno de la última expresión (sumatorio) barre la matriz U e por filas
FACTORIZACIÓN DE CROUT: Algoritmos (III) 2 SOLUCIÓN DE SISTEMAS: [Planteamiento Alternativo] (*) z i = b i Xi 1 l ij z j ; i = 1,, n y i = z i / d ii ; i = 1,, n x i = y i ; i = 1,, n x j = x j u ji x i ; j = 1,, i 1 ; i = n,, 2, 1 (*) Este planteamiento es adecuado para matrices en banda y también para matrices en perfil Obsérvese que el bucle interno de la última expresión barre ahora la matriz U e por columnas
FACTORIZACIÓN DE CROUT: Programación ( ) Es fácil comprobar que podemos almacenar L, D y Ũ sobre Ã; podemos almacenar z, ȳ y x sobre b; Así a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n a 31 a 32 a 33 a 3n a n1 a n2 a n3 a nn se transformará en d 11 u 12 u 13 u 1n l 21 d 22 u 23 u 2n l 31 l 32 d 33 u 3n l n1 l n2 l n3 d nn b 1 b 2 b 3 b n se transformará en z 1 z 2 z 3 z n se transformará en y 1 y 2 y 3 y n se transformará en x 1 x 2 x 3 x n
FACTORIZACIÓN DE CROUT: Programación (I) 1 FACTORIZACIÓN DE LA MATRIZ: DO k=1,n-1 ENDDO a i,k+1 a i,k+1 Xi 1 a ij a j,k+1 ; i = 2,, k a i,k+1 a i,k+1 / a ii ; i = 1,, k a k+1,i a k+1,i Xi 1 a ji a k+1,j ; i = 2,, k a k+1,i a k+1,i / a ii ; i = 1,, k kx a k+1,k+1 a k+1,k+1 a k+1,j a jj a j,k+1
FACTORIZACIÓN DE CROUT: Programación (II) 2 SOLUCIÓN DE SISTEMAS: (*) b i b i Xi 1 a ij b j ; i = 2,, n b i b i / a ii ; i = 1,, n nx b i b i a ij b j ; i = n 1,, 1, 1 j=i+1 (*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfil debido a que el bucle interno de la última expresión (sumatorio) barre la parte superior de la matriz A e por filas
FACTORIZACIÓN DE CROUT: Programación (III) 2 SOLUCIÓN DE SISTEMAS: [Planteamiento Alternativo] (*) b i b i Xi 1 a ij b j ; i = 2,, n b i b i / a ii ; i = 1,, n b j b j a ji b i ; j = 1,, i 1 ; i = n,, 2, 1 (*) Este planteamiento es adecuado para matrices en banda y también para matrices en perfil Obsérvese que el bucle interno de la última expresión barre ahora la parte superior de la matriz A e por columnas
FACTORIZACIÓN DE CROUT: Adaptación a Banda y Perfil (Ia) Sea la matriz à tal que à = 0 0 a i u(i),i a i 1,i 0 0 a i,i l(i) a i,i 1 a ii fila i columna i donde ( l(i) semiancho de banda inferior de la fila i, u(i) semiancho de banda superior de la columna i
FACTORIZACIÓN DE CROUT: Adaptación a Banda y Perfil (Ib) Examinamos en detalle el cálculo { de la fila k + 1 de L, y de la columna k + 1 de Ũ u i,k+1 = a i,k+1 Xi 1 l ij u j,k+1 ; i = 1,, k u i,k+1 = u i,k+1 / d ii ; i = 1,, k IRRELEVANTE l k+1,i = a k+1,i Xi 1 u ji l k+1,j ; i = 1,, k l k+1,i = l k+1,i / d ii ; i = 1,, k IRRELEVANTE
FACTORIZACIÓN DE CROUT: Adaptación a Banda y Perfil (Ic) Observamos que (a falta de dividir por los elementos d ii ) 8 i 1 X i = 1 a i,k+1 = 0 u i,k+1 = a i,k+1 l ij u j,k+1 = 0, i 1 X i = 2 a i,k+1 = 0 u i,k+1 = a i,k+1 l ij u j,k+1 = 0, >< i 1 X i = (k + 1) u(k + 1) 1 a i,k+1 = 0 u i,k+1 = a i,k+1 l ij u j,k+1 = 0, i 1 X i = (k + 1) u(k + 1) a >: i,k+1 0 u i,k+1 = a i,k+1 l ij u j,k+1 = a i,k+1 0 8 i 1 X i = 1 a k+1,i = 0 l k+1,i = a k+1,i u ji l k+1,j = 0, i 1 X i = 2 a k+1,i = 0 l k+1,i = a k+1,i u ji l k+1,j = 0, >< i 1 X i = (k + 1) l(k + 1) 1 a k+1,i = 0 l k+1,i = a k+1,i u ji l k+1,j = 0, i 1 X i = (k + 1) l(k + 1) a >: k+1,i 0 l k+1,i = a k+1,i u ji l k+1,j = a k+1,i 0
FACTORIZACIÓN DE CROUT: Adaptación a Banda y Perfil (II) Por tanto, se conservan los semianchos de banda inferior y superior: Y también los perfiles inferior (por filas) y superior (por columnas):
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (I) FACTORIZACIÓN DE CHOLESKY [à = L D L T, à simétrica] Sea el problema à x = b con à = a 11 a 12 a 1n a 22 a 2n Sim a nn, x = x 1 x 2, b = x n b 1 b 2 b n La FACTORIZACIÓN DE CHOLESKY consiste en: T à = L D L = L z {}}{ D L T x }{{} ȳ = b = L z = b, D ȳ = z, L T x = ȳ
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IIa) FUNCIONAMIENTO DEL MÉTODO Observamos que es un caso particular de la Factorización de CROUT para matrices simétricas en el que Ũ = L T Debido a la simetría se cumplirá c k+1 = f k+1, T = k L, ū k+1 = l k+1, Ũ k u k+1,k+1 = l k+1,k+1
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IIb) Por tanto 1-2 El vector l k+1 es la solucíón del sistema: [L k D k] lk+1 = f k+1 3 Los coeficientes l k+1,k+1 y d k+1,k+1 verifican: l k+1,k+1 d k+1,k+1 l k+1,k+1 = a k+1,k+1 l T k+1d k l k+1 (*) (*) Donde l k+1 se habrá calculado previamente Hay infinitas descomposiciones posibles Por convenio, se eligen (arbitrariamente) los valores: l k+1,k+1 = 1 = d k+1,k+1 = a k+1,k+1 l T k+1 D e k l k+1
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IIc) 4 Para k = 1: Ã 1 = L 1 T 1 1 = l 11 d 11 l 11 = a 11 (*) D L 5 Para k = n: T Ã n = Ã = Ã = L D L con { L = L n, D = D n (*) Hay infinitas descomposiciones posibles Por convenio, se eligen (arbitrariamente) los valores: l 11 = 1 = d 11 = a 11
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IIIa) REALIZACIÓN DE LOS CÁLCULOS 1 FACTORIZACIÓN DE LA MATRIZ: Asignar l 11 = 1, d 11 = a 11 Para k = 1,, n 1 [ Resolver L k k] lk+1 = D f k+1 Asignar l k+1,k+1 = 1, d k+1,k+1 = a k+1,k+1 l T k+1d k l k+1
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IIIb) Notas: 1 Los sistemas [L k D k] l k+1 = f k+1 se resuelven en dos fases: L k m k+1 {}}{ D k l k+1 = f k+1 = L k m k+1 = f k+1, k D l k+1 = m k+1
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IIIc) REALIZACIÓN DE LOS CÁLCULOS (continuación) 2 SOLUCIÓN DE SISTEMAS: Resolver L D z = b, ȳ = z, L T x = ȳ
FACTORIZACIÓN DE CHOLESKY: Fundamentos Teóricos (IV) CONDICIONES DE EXISTENCIA Son las mismas que en el caso de la Factorización de CROUT
FACTORIZACIÓN DE CHOLESKY: Algoritmos (I) 1 FACTORIZACIÓN DE LA MATRIZ: l 11 = 1, d 11 = a 11 DO k=1,n-1 l k+1,i = a k+1,i Xi 1 l ij l k+1,j ; i = 1,, k l k+1,i = l k+1,i / d ii ; i = 1,, k ENDDO l k+1,k+1 = 1, d k+1,k+1 = a k+1,k+1 kx l k+1,j d jj l k+1,j
FACTORIZACIÓN DE CHOLESKY: Algoritmos (II) 2 SOLUCIÓN DE SISTEMAS: (*) z i = b i Xi 1 l ij z j ; i = 1,, n y i = z i / d ii ; i = 1,, n nx x i = y i l ji x j ; i = n,, 1, 1 j=i+1 (*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfil debido a que el bucle interno de la última expresión (sumatorio) barre la matriz L e por columnas
FACTORIZACIÓN DE CHOLESKY: Algoritmos (III) 2 SOLUCIÓN DE SISTEMAS: [Planteamiento Alternativo] (*) z i = b i Xi 1 l ij z j ; i = 1,, n y i = z i / d ii ; i = 1,, n x i = y i ; i = 1,, n x j = x j l ij x i ; j = 1,, i 1 ; i = n,, 2, 1 (*) Este planteamiento es adecuado para matrices en banda y también para matrices en perfil Obsérvese que el bucle interno de la última expresión barre ahora la matriz L e por filas
FACTORIZACIÓN DE CHOLESKY: Programación ( ) Es fácil comprobar que podemos almacenar L Y D sobre la parte inferior de Ã; podemos almacenar z, ȳ y x sobre b; Así a 11 a 21 a 22 a 31 a 32 a 33 a n1 a n2 a n3 a nn se transformará en d 11 l 21 d 22 l 31 l 32 d 33 l n1 l n2 l n3 d nn b 1 b 2 b 3 b n se transformará en z 1 z 2 z 3 z n se transformará en y 1 y 2 y 3 y n se transformará en x 1 x 2 x 3 x n
FACTORIZACIÓN DE CHOLESKY: Programación (I) 1 FACTORIZACIÓN DE LA MATRIZ: DO k=1,n-1 ENDDO a k+1,i a k+1,i Xi 1 a ij a k+1,j ; i = 2,, k a k+1,i a k+1,i / a ii ; i = 1,, k kx a k+1,k+1 a k+1,k+1 a k+1,j a jj a k+1,j
FACTORIZACIÓN DE CHOLESKY: Programación (II) 2 SOLUCIÓN DE SISTEMAS: (*) b i b i Xi 1 a ij b j ; i = 2,, n b i b i / a ii ; i = 1,, n nx b i b i a ji b j ; i = n 1,, 1, 1 j=i+1 (*) Este planteamiento es adecuado para matrices en banda pero inadecuado para matrices en perfil debido a que el bucle interno de la última expresión (sumatorio) barre la parte inferior de la matriz A e por columnas
FACTORIZACIÓN DE CHOLESKY: Programación (III) 2 SOLUCIÓN DE SISTEMAS: [Planteamiento Alternativo] (*) b i b i Xi 1 a ij b j ; i = 2,, n b i b i / a ii ; i = 1,, n b j b j a ij b i ; j = 1,, i 1 ; i = n,, 2, 1 (*) Este planteamiento es adecuado para matrices en banda y también para matrices en perfil Obsérvese que el bucle interno de la última expresión barre ahora la parte inferior de la matriz A e por filas
FACTORIZACIÓN DE CHOLESKY: Adaptación a Banda y Perfil (Ia) Sea la matriz à tal que à = SIM 0 0 a i,i l(i) a i,i 1 a ii fila i columna i donde ( l(i) semiancho de banda inferior de la fila i, semiancho de banda superior de la columna i
FACTORIZACIÓN DE CHOLESKY: Adaptación a Banda y Perfil (Ib) Examinamos en detalle el cálculo de la fila k + 1 de L l k+1,i = a k+1,i Xi 1 l ij l k+1,j ; i = 1,, k l k+1,i = l k+1,i / d ii ; i = 1,, k IRRELEVANTE
FACTORIZACIÓN DE CHOLESKY: Adaptación a Banda y Perfil (Ic) Observamos que (a falta de dividir por los elementos d ii ) 8 i 1 X i = 1 a k+1,i = 0 l k+1,i = a k+1,i i 1 X i = 2 a k+1,i = 0 l k+1,i = a k+1,i >< i 1 X i = (k + 1) l(k + 1) 1 a k+1,i = 0 l k+1,i = a k+1,i i 1 X i = (k + 1) l(k + 1) a >: k+1,i 0 l k+1,i = a k+1,i l ij l k+1,j = 0, l ij l k+1,j = 0, l ij l k+1,j = 0, l ij l k+1,j = a k+1,i 0
FACTORIZACIÓN DE CHOLESKY: Adaptación a Banda y Perfil (II) Por tanto, se conservan los semianchos de banda inferior y superior: Y también los perfiles inferior (por filas) y superior (por columnas):
FACTORIZACIÓN DE CHOLESKY: Adaptación a Banda y Perfil (IIIa) 1 FACTORIZACIÓN DE LA MATRIZ: (*) DO k=1,n-1 ENDDO a k+1,i a k+1,i Xi 1 a ij a k+1,j j=max{i l(i),(k+1) l(k+1)} ; i = [(k+1) l(k+1)+1],, k a k+1,i a k+1,i / a ii ; i = [(k+1) l(k+1)],, k kx a k+1,k+1 a k+1,k+1 a k+1,j a jj a k+1,j j=(k+1) l(k+1) (*) l(i) es el semiancho de banda inferior de la fila i Este valor indica que el primer elemento no nulo de la fila i es el coeficiente a i,i l(i)
FACTORIZACIÓN DE CHOLESKY: Adaptación a Banda y Perfil (IIIb) 2 SOLUCIÓN DE SISTEMAS: (*) b i b i Xi 1 j=i l(i) a ij b j ; i = 2,, n b i b i / a ii ; i = 1,, n b j b j a ij b i ; j = [i l(i)],, i 1 ; i = n,, 2, 1 (*) l(i) es el semiancho de banda inferior de la fila i Este valor indica que el primer elemento no nulo de la fila i es el coeficiente a i,i l(i)
CONDICIONES DE VINCULACIÓN [coacciones] (I) Sea el sistema a 11 a 12 a 13 a 1v a 1n x 1 a 21 a 22 a 23 a 2v a 2n x 2 a 31 a 32 a 33 a 3v a 3n x 3 a v1 a v2 a v3 a vv a vn x v a n1 a n2 a n3 a nv a nn x n = b 1 b 2 b 3 b ṿ b n + 0 0 0 r v 0, con la coacción adicional x v = p v, donde v = GRADO DE LIBERTAD (GDL) COACCIONADO, p v = VALOR PRESCRITO (conocido), r v = REACCIÓN (desconocida)
CONDICIONES DE VINCULACIÓN [coacciones] (II) El planteamiento anterior puede reescribirse en la forma b 1 a 1v p v a 11 a 12 a 13 0 a 1n x 1 a 21 a 22 a 23 0 a 2n b x 2 a 2v p v 2 a 31 a 32 a 33 0 a 3n x 3 b 3 a 3v p v = 0 0 0 1 0 x v p v a n1 a n2 a n3 0 a nn x n b n a nv p v x 1 con la ecuación adicional x 2 x 3 r v = [ a v1 a v2 a v3 a vv a vn ] b v, x v x n que se utiliza una vez resuelto el sistema anterior,
CONDICIONES DE VINCULACIÓN [coacciones] (III) TRATAMIENTO DE LAS CONDICIONES DE VINCULACIÓN [coacciones] Dado el sistema A e x = b + r, con algunas x v = p v, se procede de la siguiente manera: 1) Al factorizar se ignoran filas y columnas correspondientes a GDL prescritos (v) 2) Las columnas correspondientes a GDL prescritos pasan restando a los términos independientes multiplicadas por los valores prescritos ( a iv p v ) 3) Las filas correspondientes a GDL prescritos (a vj ) se usan a posteriori para calcular las reacciones ( r v ) Luego, los datos almacenados en filas y columnas correspondientes a GDL prescritos no se alteran durante la factorización y se pueden utilizar para resolver múltiples sistemas con la misma matriz y distintos términos independientes o valores prescritos (*) (*) OJO!: pueden cambiarse los valores prescritos (pv), pero no pueden cambiarse los GDL prescritos (v)
IMPLEMENTACIÓN: Cholesky para matrices en perfil (Ia) CODIFICACIÓN DEL ALMACENAMIENTO ( ) Ã = a 11 0 SIM 0 0 0 0 0 0 0 a i,i lsbi a i,i 1 a ii fila i 0 0 0 0 0 0 a nn ( ) PARTE TRIANGULAR SUPERIOR EN PERFIL POR COLUMNAS PARTE TRIANGULAR INFERIOR EN PERFIL POR FILAS
IMPLEMENTACIÓN: Cholesky para matrices en perfil (Ib) ALMACENAMIENTO EN PERFIL (*) { Ã se almacena en v = [a11,, a i,i lsbi,,, a i,i 1, a ii,,, a nn ] a ij v k, con k = lpij puntero del coeficiente a ij Si lp(i) puntero del coeficiente a ii, entonces: 8 lpii = lp(i) puntero de a ii, ( ) >< lsbi = lpii ( lp(i 1) + 1) semiancho de banda inferior de la fila i, ( ) lpiø = lpii i, >: lpij = lpiø + j puntero de a ij, con i lsbi j i, (*) Sistema de punteros y variables utilizado en la subrutina SLE$Solver_LDLt_CP() (**) Se utilizan valores absolutos porque esta subrutina cambia los signos de los punteros de los GDL coaccionados
IMPLEMENTACIÓN: Cholesky para matrices en perfil (II) PROGRAMACIÓN 1) CAMBIAR SIGNO A PUNTEROS DE GDL COACCIONADOS 2) FACTORIZAR: Ã = L D L T (*) 3) INICIALIZAR REACCIONES E IMPONER CONDICIONES DE VINCULACIÓN 4) RESOLVER LOS SISTEMAS: L z = b, D ȳ = z, L T x = ȳ (*) 5) CALCULAR REACCIONES 6) RESTAURAR SIGNO A PUNTEROS DE GDL COACCIONADOS (*) IGNORANDO FILAS Y COLUMNAS CORRESPONDIENTES A GDL COACCIONADOS
IMPLEMENTACIÓN: Cholesky para matrices en perfil (IIIa) 1 FACTORIZACIÓN DE LA MATRIZ: (*) DO k=2,n ENDDO a ki a ki Xi 1 a ij a kj ; i = [k lsbk+1],, k 1 j=max{i lsbi,k lsbk} a ki a ki / a ii ; i = [k lsbk],, k 1 a kk a kk Xk 1 j=k lsbk a kj a jj a kj (*) lsbi es el semiancho de banda inferior de la fila i Este valor indica que el primer elemento no nulo de la fila i es el coeficiente a i,i lsbi
IMPLEMENTACIÓN: Cholesky para matrices en perfil (IIIb) 2 SOLUCIÓN DE SISTEMAS: (*) b i b i Xi 1 a ij b j j=i lsbi ; i = 2,, n b i b i / a ii ; i = 1,, n b j b j a ij b i ; j = [i lsbi],, i 1 ; i = n,, 2, 1 (*) lsbi es el semiancho de banda inferior de la fila i Este valor indica que el primer elemento no nulo de la fila i es el coeficiente a i,i lsbi