En álgebra lineal , la descomposición de Cholesky o factorización de Cholesky (pronunciado / ʃ ə l ɛ s k i / shə- LES -kee ) es una descomposición de un hermitiana , la matriz definida positiva en el producto de una matriz triangular inferior y su conjugado transpose , que es útil para soluciones numéricas eficientes, por ejemplo, simulaciones de Monte Carlo . Fue descubierto por André-Louis Choleskypara matrices reales. Cuando es aplicable, la descomposición de Cholesky es aproximadamente dos veces más eficiente que la descomposición LU para resolver sistemas de ecuaciones lineales . [1]
Declaración
La descomposición de Cholesky de una matriz hermitiana positiva definida A , es una descomposición de la forma
donde L es una matriz triangular inferior con entradas diagonales reales y positivos, y L * indica la transpuesta conjugada de L . Cada matriz hermitiana positiva definida (y por tanto también toda matriz simétrica positiva definida de valor real) tiene una descomposición de Cholesky única. [2]
Lo contrario es trivial: si A puede escribirse como LL * para alguna L invertible , triangular inferior o de otro tipo, entonces A es hermitiana y definida positiva.
Cuando A es una matriz real (por lo tanto, simétrica positiva definida), la factorización puede escribirse
donde L es una matriz triangular inferior real con entradas diagonales positivas. [3] [4] [5]
Matrices semidefinidas positivas
Si una matriz hermitiana A es solo semidefinida positiva, en lugar de definida positiva, entonces todavía tiene una descomposición de la forma A = LL * donde se permite que las entradas diagonales de L sean cero. [6] No es necesario que la descomposición sea única, por ejemplo:
Sin embargo, si el rango de A es r , entonces hay una L triangular inferior única con exactamente r elementos diagonales positivos y n - r columnas que contienen todos ceros. [7]
Alternativamente, la descomposición puede hacerse única cuando se fija una elección pivotante. Formalmente, si A es una matriz semidefinita positiva n × n de rango r , entonces hay al menos una matriz de permutación P tal que PAP T tiene una descomposición única de la forma PAP T = LL * con, donde L 1 es una matriz triangular inferior r × r con diagonal positiva. [8]
Descomposición de LDL
Una variante estrechamente relacionada de la descomposición clásica de Cholesky es la descomposición de LDL,
donde L es una matriz triangular (triangular) unitaria inferior y D es una matriz diagonal . Es decir, se requiere que los elementos diagonales de L sean 1 a costa de introducir una matriz diagonal adicional D en la descomposición. La principal ventaja es que la descomposición de LDL se puede calcular y utilizar esencialmente con los mismos algoritmos, pero evita la extracción de raíces cuadradas. [9]
Por esta razón, la descomposición de LDL a menudo se denomina descomposición de Cholesky sin raíz cuadrada . Para matrices reales, la factorización tiene la forma A = LDL T y a menudo se la denomina descomposición LDLT (o descomposición LDL T , o LDL ′). Está estrechamente relacionado con el eigendecomposition de matrices simétricas reales , A = QΛQ T .
La descomposición de LDL está relacionada con la descomposición clásica de Cholesky de la forma LL * de la siguiente manera:
Por el contrario, dada la clásica descomposición de Cholesky de una matriz definida positiva, si S es una matriz diagonal que contiene la diagonal principal de, entonces una A se puede descomponer como dónde
- (esto cambia la escala de cada columna para hacer elementos diagonales 1),
Si A es positivo definido, entonces los elementos diagonales de D son todos positivos. Para semidefinido positivo A , undescomposición existe en el que el número de no cero elementos en la diagonal D es exactamente el rango de A . [10] Algunas matrices indefinidas para las que no existe descomposición de Cholesky tienen una descomposición de LDL con entradas negativas en D : basta con que los primeros n −1 principales menores principales de A no sean singulares. [11]
Ejemplo
Aquí está la descomposición de Cholesky de una matriz real simétrica:
Y aquí está su descomposición de LDL T :
Aplicaciones
La descomposición de Cholesky se utiliza principalmente para la solución numérica de ecuaciones lineales. . Si A es simétrica y definida positiva, entonces podemos resolver calculando primero la descomposición de Cholesky , luego resolviendo para y por sustitución hacia adelante , y finalmente resolviendopara x por sustitución hacia atrás .
Una forma alternativa de eliminar las raíces cuadradas en el descomposición es calcular la descomposición de Cholesky , luego resolviendo para y , y finalmente resolviendo.
Para los sistemas lineales que se pueden poner en forma simétrica, la descomposición de Cholesky (o su variante de LDL) es el método de elección, para una eficiencia superior y estabilidad numérica. En comparación con la descomposición LU , es aproximadamente el doble de eficiente. [1]
Mínimos cuadrados lineales
Los sistemas de la forma Ax = b con A simétrico y definido positivo surgen con bastante frecuencia en las aplicaciones. Por ejemplo, las ecuaciones normales en problemas lineales de mínimos cuadrados son de esta forma. También puede suceder que la matriz A provenga de una energía funcional, que debe ser positiva por consideraciones físicas; esto sucede con frecuencia en la solución numérica de ecuaciones diferenciales parciales .
Optimización no lineal
Las funciones multivariadas no lineales pueden minimizarse sobre sus parámetros utilizando variantes del método de Newton llamadas métodos cuasi-Newton . En la iteración k, la búsqueda avanza en una dirección definido resolviendo por , dónde es la dirección del paso, es el gradiente , yes una aproximación a la matriz hessiana formada mediante la repetición de actualizaciones de rango 1 en cada iteración. Dos fórmulas de actualización conocidas se denominan Davidon – Fletcher – Powell (DFP) y Broyden – Fletcher – Goldfarb – Shanno (BFGS). Se evita la pérdida de la condición positiva-definida a través del error de redondeo si, en lugar de actualizar una aproximación a la inversa del hessiano, se actualiza la descomposición de Cholesky de una aproximación de la propia matriz hessiana. [12]
simulación del Monte Carlo
La descomposición de Cholesky se usa comúnmente en el método de Monte Carlo para simular sistemas con múltiples variables correlacionadas. La matriz de covarianza se descompone para dar la L triangular inferior . Al aplicar esto a un vector de muestras no correlacionadas u se produce un vector muestral Lu con las propiedades de covarianza del sistema que se está modelando. [13]
El siguiente ejemplo simplificado muestra la economía que se obtiene de la descomposición de Cholesky: suponga que el objetivo es generar dos variables normales correlacionadas y con coeficiente de correlación dado . Para lograr eso, es necesario generar primero dos variables aleatorias gaussianas no correlacionadas y , que se puede hacer usando una transformada de Box-Muller . Dado el coeficiente de correlación requerido, las variables normales correlacionadas se pueden obtener mediante las transformaciones y .
Filtros de Kalman
Los filtros de Kalman sin aroma suelen utilizar la descomposición de Cholesky para elegir un conjunto de los denominados puntos sigma. El filtro de Kalman rastrea el estado medio de un sistema como un vector x de longitud N y covarianza como un N × N matriz P . La matriz P es siempre semi-definida positiva y se puede descomponer en LL T . Las columnas de L se pueden sumar y restar de la media x para formar un conjunto de 2 N vectores llamados puntos sigma . Estos puntos sigma capturan completamente la media y la covarianza del estado del sistema.
Inversión de matriz
La inversa explícita de una matriz hermitiana se puede calcular mediante la descomposición de Cholesky, de manera similar a la resolución de sistemas lineales, utilizando operacionesmultiplicaciones). [9] La inversión completa incluso se puede realizar de manera eficiente en el lugar.
Una matriz B no hermitiana también se puede invertir usando la siguiente identidad, donde BB * siempre será hermitiana:
Cálculo
Existen varios métodos para calcular la descomposición de Cholesky. La complejidad computacional de los algoritmos de uso común es O ( n 3 ) en general. [ Citación necesaria ] Los algoritmos descritos a continuación todos implican Acerca de (1/3) n 3 Flops ( n 3 /6 multiplicaciones y el mismo número de adiciones) para sabores reales y (4/3) n 3 Flops para sabores complejos, [14 ] donde n es el tamaño de la matriz A . Por lo tanto, tienen la mitad del costo de la descomposición LU , que utiliza 2 n 3 /3 Flops (véase Trefethen y Bau 1997).
Cuál de los siguientes algoritmos es más rápido depende de los detalles de la implementación. Generalmente, el primer algoritmo será un poco más lento porque accede a los datos de una manera menos regular.
El algoritmo de Cholesky
El algoritmo de Cholesky , utilizado para calcular la matriz de descomposición L , es una versión modificada de la eliminación gaussiana .
El algoritmo recursivo comienza con i : = 1 y
- A (1) : = A .
En el paso i , la matriz A ( i ) tiene la siguiente forma:
donde I i −1 denota la matriz identidad de dimensión i - 1.
Si ahora definimos la matriz L i por
entonces podemos escribir A ( i ) como
dónde
Tenga en cuenta que b i b * i es un producto externo , por lo tanto, este algoritmo se denomina versión del producto externo en (Golub & Van Loan).
Repetimos esto para i de 1 a n . Después de n pasos, obtenemos A ( n + 1) = I . Por lo tanto, la matriz triangular inferior L que estamos buscando se calcula como
Los algoritmos Cholesky-Banachiewicz y Cholesky-Crout
Si escribimos la ecuación
obtenemos lo siguiente:
y por lo tanto las siguientes fórmulas para las entradas de L :
Para matrices complejas y reales, se permiten cambios de signo arbitrarios intrascendentes de los elementos diagonales y fuera de la diagonal asociados. La expresión debajo de la raíz cuadrada es siempre positiva si A es real y definida positiva.
Para la matriz hermitiana compleja, se aplica la siguiente fórmula:
Entonces podemos calcular la entrada ( i , j ) si conocemos las entradas a la izquierda y arriba. El cálculo generalmente se organiza en cualquiera de los siguientes órdenes:
- El algoritmo de Cholesky-Banachiewicz comienza en la esquina superior izquierda de la matriz L y procede a calcular la matriz fila por fila.
for ( i = 0 ; i < dimensionSize ; i ++ ) { for ( j = 0 ; j <= i ; j ++ ) { float sum = 0 ; para ( k = 0 ; k < j ; k ++ ) suma + = L [ i ] [ k ] * L [ j ] [ k ]; si ( i == j ) L [ i ] [ j ] = sqrt ( A [ i ] [ i ] - suma ); si no L [ i ] [ j ] = ( 1.0 / L [ j ] [ j ] * ( A [ i ] [ j ] - suma )); } }
- El algoritmo de Cholesky-Crout comienza en la esquina superior izquierda de la matriz L y procede a calcular la matriz columna por columna.
para ( j = 0 ; j < dimensionSize ; j ++ ) { float sum = 0 ; para ( k = 0 ; k < j ; k ++ ) { suma + = L [ j ] [ k ] * L [ j ] [ k ]; } L [ j ] [ j ] = sqrt ( A [ j ] [ j ] - suma ); para ( i = j + 1 ; i < dimensionSize ; i ++ ) { suma = 0 ; para ( k = 0 ; k < j ; k ++ ) { suma + = L [ i ] [ k ] * L [ j ] [ k ]; } L [ i ] [ j ] = ( 1.0 / L [ j ] [ j ] * ( A [ i ] [ j ] - suma )); } }
Cualquiera de los patrones de acceso permite que todo el cálculo se realice en el lugar si se desea.
Estabilidad del cálculo
Supongamos que queremos resolver un sistema de ecuaciones lineales bien condicionado . Si se usa la descomposición LU, entonces el algoritmo es inestable a menos que usemos algún tipo de estrategia pivotante. En este último caso, el error depende del llamado factor de crecimiento de la matriz, que suele ser (pero no siempre) pequeño.
Ahora, suponga que la descomposición de Cholesky es aplicable. Como se mencionó anteriormente, el algoritmo será el doble de rápido. Además, no es necesario pivotar y el error siempre será pequeño. En concreto, si queremos resolver Ax = b , y y denota la solución calculada, entonces Y resuelve el sistema perturbado ( A + E ) y = b , donde
Aquí || · || 2 es la norma 2 de la matriz , c n es una pequeña constante que depende de n , y ε denota el redondeo unitario .
Una preocupación con la descomposición de Cholesky a tener en cuenta es el uso de raíces cuadradas. Si la matriz que se factoriza es positiva definida como se requiere, los números debajo de las raíces cuadradas son siempre positivos en aritmética exacta . Desafortunadamente, los números pueden volverse negativos debido a errores de redondeo , en cuyo caso el algoritmo no puede continuar. Sin embargo, esto solo puede suceder si la matriz está muy mal acondicionada. Una forma de abordar esto es agregar una matriz de corrección diagonal a la matriz que se descompone en un intento de promover la definición positiva. [15] Si bien esto podría disminuir la precisión de la descomposición, puede ser muy favorable por otras razones; por ejemplo, al realizar el método de Newton en la optimización , agregar una matriz diagonal puede mejorar la estabilidad cuando está lejos del óptimo.
Descomposición de LDL
Una forma alternativa, que elimina la necesidad de tomar raíces cuadradas cuando A es simétrica, es la factorización simétrica indefinida [16]
Las siguientes relaciones recursivas se aplican a las entradas de D y L :
Esto funciona siempre que los elementos diagonales generados en D permanezcan distintos de cero. La descomposición es entonces única. D y L son reales si A es real.
Para la matriz Hermitiana compleja A , se aplica la siguiente fórmula:
Nuevamente, el patrón de acceso permite que todo el cálculo se realice en el lugar si se desea.
Variante de bloque
Cuando se usa en matrices indefinidas, se sabe que la factorización LDL * es inestable sin un pivote cuidadoso; [17] específicamente, los elementos de la factorización pueden crecer arbitrariamente. Una posible mejora es realizar la factorización en submatrices de bloques, comúnmente 2 × 2: [18]
donde cada elemento en las matrices anteriores es una submatriz cuadrada. De aquí se siguen estas relaciones recursivas análogas:
Esto implica productos de matriz e inversión explícita, lo que limita el tamaño del bloque práctico.
Actualizando la descomposición
Una tarea que surge a menudo en la práctica es que es necesario actualizar una descomposición de Cholesky. En más detalles, ya se ha calculado la descomposición de Cholesky de alguna matriz , luego se cambia la matriz de alguna manera en otra matriz, digamos , y se quiere calcular la descomposición de Cholesky de la matriz actualizada: . La cuestión ahora es si se puede utilizar la descomposición de Cholesky de que se calculó antes para calcular la descomposición de Cholesky de .
Actualización de rango uno
El caso específico, donde la matriz actualizada está relacionado con la matriz por , se conoce como actualización de rango uno .
Aquí hay una función [19] escrita en la sintaxis de Matlab que realiza una actualización de rango uno:
función [L] = cholupdate ( L, x ) n = longitud ( x ); para k = 1 : n r = raíz cuadrada ( L ( k , k ) ^ 2 + x ( k ) ^ 2 ); c = r / L ( k , k ); s = x ( k ) / L ( k , k ); L ( k , k ) = r ; si k < n L (( k + 1 ): n , k ) = ( L (( k + 1 ): n , k ) + s * x (( k + 1 ): n )) / c ; x (( k + 1 ): n ) = c * x (( k + 1 ): n ) - s * L (( k + 1 ): n , k ); final finalfinal
Baja de rango uno
Una actualización de rango uno es similar a una actualización de rango uno, excepto que la suma se reemplaza por la resta:. Esto solo funciona si la nueva matriz sigue siendo positivo definido.
El código para el rango-uno actualización se muestra anteriormente se puede adaptar fácilmente para hacer un rango-uno downdate: uno simplemente tiene que reemplazar las dos adiciones en la asignación a r
y L((k+1):n, k)
por sustracciones.
Agregar y eliminar filas y columnas
Si tenemos una matriz definida simétrica y positiva representado en forma de bloque como
y su factor Cholesky superior
luego para una nueva matriz , que es lo mismo que pero con la inserción de nuevas filas y columnas,
estamos interesados en encontrar la factorización Cholesky de , que llamamos , sin calcular directamente toda la descomposición.
Escritura para la solución de , que se puede encontrar fácilmente para matrices triangulares, y para la descomposición de Cholesky de , se pueden encontrar las siguientes relaciones:
Estas fórmulas pueden usarse para determinar el factor Cholesky después de la inserción de filas o columnas en cualquier posición, si configuramos las dimensiones de fila y columna de manera apropiada (incluso a cero). El problema inverso, cuando tenemos
con descomposición conocida de Cholesky
y desea determinar el factor Cholesky
de la matriz con filas y columnas eliminadas,
produce las siguientes reglas:
Observe que las ecuaciones anteriores que implican encontrar la descomposición de Cholesky de una nueva matriz son todas de la forma , lo que permite su cálculo eficiente mediante los procedimientos de actualización y downdate detallados en la sección anterior. [20]
Prueba de matrices semidefinidas positivas
Prueba limitando el argumento
Los algoritmos anteriores muestran que toda matriz definida positiva tiene una descomposición de Cholesky. Este resultado puede extenderse al caso semidefinido positivo mediante un argumento limitante. El argumento no es completamente constructivo, es decir, no proporciona algoritmos numéricos explícitos para calcular los factores de Cholesky.
Si es un matriz semidefinida positiva , luego la secuenciaconsta de matrices definidas positivas . (Esta es una consecuencia inmediata de, por ejemplo, el teorema de mapeo espectral para el cálculo funcional polinomial).
en la norma del operador . Desde el caso positivo definido, cada tiene descomposición de Cholesky . Por propiedad de la norma del operador,
La aguanta porque equipado con la norma del operador es un álgebra C *. Entonceses un conjunto acotado en el espacio de operadores de Banach , por lo tanto relativamente compacto (porque el espacio vectorial subyacente es de dimensión finita). En consecuencia, tiene una subsecuencia convergente, también denotada por, con limite . Se puede comprobar fácilmente que este tiene las propiedades deseadas, es decir , y es triangular inferior con entradas diagonales no negativas: para todos y ,
Por lo tanto, . Debido a que el espacio vectorial subyacente es de dimensión finita, todas las topologías en el espacio de operadores son equivalentes. Entonces tiende a en la norma significa tiende a por la entrada. Esto a su vez implica que, dado que cada es triangular inferior con entradas diagonales no negativas, es también.
Prueba por descomposición QR
Dejar ser un semi-definida positiva matriz hermitiana. Entonces se puede escribir como un producto de su matriz de raíz cuadrada ,. Ahora la descomposición QR se puede aplicar a, Resultando en , dónde es unitario y es triangular superior. Insertar la descomposición en la igualdad original produce. Configuración completa la prueba.
Generalización
La factorización de Cholesky se puede generalizar [ cita requerida ] a matrices (no necesariamente finitas) con entradas de operador. Dejarser una secuencia de espacios de Hilbert . Considere la matriz de operadores
actuando sobre la suma directa
donde cada
es un operador acotado . Si A es positivo (semidefinito) en el sentido de que para todo k finito y para cualquier
tenemos , entonces existe una matriz de operador triangular inferior L tal que A = LL *. También se pueden tomar las entradas diagonales de L como positivas.
Implementaciones en bibliotecas de programación
- Lenguaje de programación C : la biblioteca científica GNU proporciona varias implementaciones de la descomposición de Cholesky.
- Sistema de álgebra computacional máxima : función cholesky calcula la descomposición de Cholesky.
- El sistema de cálculos numéricos GNU Octave proporciona varias funciones para calcular, actualizar y aplicar una descomposición de Cholesky.
- La biblioteca LAPACK proporciona una implementación de alto rendimiento de la descomposición Cholesky a la que se puede acceder desde Fortran, C y la mayoría de los lenguajes.
- En Python , la función "cholesky" del módulo numpy.linalg realiza la descomposición Cholesky.
- En Matlab y R , la función "chol" da la descomposición de Cholesky.
- En Julia , la función "cholesky" de la biblioteca estándar LinearAlgebra da la descomposición Cholesky.
- En Mathematica , la función "CholeskyDecomposition" se puede aplicar a una matriz.
- En C ++ , el comando "chol" de la biblioteca de armadillo realiza la descomposición de Cholesky. La biblioteca Eigen proporciona factorizaciones Cholesky para matrices densas y dispersas.
- En el paquete ROOT , la clase TDecompChol está disponible.
- En Analytica , la función Descomponer da la descomposición de Cholesky.
- La biblioteca Apache Commons Math tiene una implementación que se puede usar en Java, Scala y cualquier otro lenguaje JVM.
Ver también
- Rango de ciclo
- Factorización incompleta de Cholesky
- Descomposición de la matriz
- Algoritmo de grado mínimo
- Raíz cuadrada de una matriz
- Ley de inercia de Sylvester
- Descomposición simbólica de Cholesky
Notas
- ^ a b Prensa, William H .; Saul A. Teukolsky; William T. Vetterling; Brian P. Flannery (1992). Recetas numéricas en C: El arte de la informática científica (segunda ed.). Universidad de Cambridge Inglaterra EPress. pag. 994 . ISBN 0-521-43108-5. Consultado el 28 de enero de 2009 .
- ^ Golub y Van Loan (1996 , p. 143), Horn y Johnson (1985 , p. 407), Trefethen y Bau (1997 , p. 174).
- ^ Horn y Johnson (1985 , p. 407).
- ^ "matrices - Diagonalización de una matriz simétrica compleja" . MathOverflow . Consultado el 25 de enero de 2020 .
- ^ Schabauer, Hannes; Pacher, Christoph; Sunderland, Andrew G .; Gansterer, Wilfried N. (1 de mayo de 2010). "Hacia un solucionador paralelo para problemas de valores propios simétricos complejos generalizados" . Procedia Informática . ICCS 2010. 1 (1): 437–445. doi : 10.1016 / j.procs.2010.04.047 . ISSN 1877-0509 .
- ^ Golub y Van Loan (1996 , p. 147).
- ^ Suave, James E. (1998). Álgebra lineal numérica para aplicaciones en estadística . Saltador. pag. 94. ISBN 978-1-4612-0623-1.
- ^ Higham, Nicholas J. (1990). "Análisis de la descomposición de Cholesky de una matriz semidefinida" . En Cox, MG; Hammarling, SJ (eds.). Computación numérica confiable . Oxford, Reino Unido: Oxford University Press. págs. 161-185. ISBN 978-0-19-853564-5.
- ^ a b Krishnamoorthy, Aravindh; Menon, Deepak (2011). "Inversión de matriz mediante descomposición de Cholesky". 1111 : 4144. arXiv : 1111.4144 . Código bibliográfico : 2011arXiv1111.4144K . Cite journal requiere
|journal=
( ayuda ) - ^ Entonces, Anthony Man-Cho (2007). Un enfoque de programación semidefinito para el problema de realización de gráficos: teoría, aplicaciones y extensiones (PDF) (PhD). Teorema 2.2.6.
- ^ Golub y Van Loan (1996 , Teorema 4.1.3)
- ^ Arora, JS Introducción al diseño óptimo (2004), p. 327. https://books.google.com/books?id=9FbwVe577xwC&pg=PA327
- ^ Documentación de Matlab randn . mathworks.com.
- ^ ? potrf Intel® Math Kernel Library [1]
- ^ Fang, Haw-ren; O'Leary, Dianne P. (8 de agosto de 2006). "Algoritmos de Cholesky modificados: un catálogo con nuevos enfoques" (PDF) . Cite journal requiere
|journal=
( ayuda ) - ^ Watkins, D. (1991). Fundamentos de los cálculos matriciales . Nueva York: Wiley. pag. 84 . ISBN 0-471-61414-9.
- ^ Nocedal, Jorge (2000). Optimización numérica . Saltador.
- ^ Fang, Haw-ren (24 de agosto de 2007). "Análisis de factorizaciones de LDLT en bloque para matrices indefinidas simétricas". Cite journal requiere
|journal=
( ayuda ) - ^ Basado en: Stewart, GW (1998). Descomposiciones básicas . Filadelfia: Soc. para Matemática Industrial y Aplicada. ISBN 0-89871-414-1.
- ^ Osborne, M. (2010), Apéndice B.
Referencias
- Dereniowski, Dariusz; Kubale, Marek (2004). "Factorización Cholesky de Matrices en Paralelo y Ranking de Gráficos". V Congreso Internacional de Procesamiento Paralelo y Matemática Aplicada (PDF) . Apuntes de conferencias sobre informática. 3019 . Springer-Verlag. págs. 985–992. doi : 10.1007 / 978-3-540-24669-5_127 . ISBN 978-3-540-21946-0. Archivado desde el original (PDF) el 16 de julio de 2011.
- Golub, Gene H .; Van Loan, Charles F. (1996). Cálculos matriciales (3ª ed.). Baltimore: Johns Hopkins. ISBN 978-0-8018-5414-9.
- Horn, Roger A .; Johnson, Charles R. (1985). Análisis matricial . Prensa de la Universidad de Cambridge. ISBN 0-521-38632-2.
- SJ Julier y JK Uhlmann. " Un método general para la aproximación de transformaciones no lineales de distribuciones de probabilidad ".
- SJ Julier y JK Uhlmann, " Una nueva extensión del filtro de Kalman a sistemas no lineales ", en Proc. AeroSense: 11 ° Int. Symp. Sensores, simulación y controles aeroespaciales / de defensa, 1997, págs. 182-193.
- Trefethen, Lloyd N .; Bau, David (1997). Álgebra lineal numérica . Filadelfia: Sociedad de Matemáticas Industriales y Aplicadas. ISBN 978-0-89871-361-9.
- Osborne, Michael (2010). Procesos bayesianos gaussianos para predicción secuencial, optimización y cuadratura (PDF) (tesis). Universidad de Oxford.
- Ruschel, João Paulo Tarasconi, Licenciatura " Implementaciones paralelas de la descomposición de Cholesky en CPU y GPU " Universidade Federal Do Rio Grande Do Sul, Instituto De Informatica, 2016, pp. 29-30.
enlaces externos
Historia de la ciencia
- Sur la résolution numérique des systèmes d'équations linéaires , manuscrito de Cholesky de 1910, en línea y analizado en BibNum (en francés e inglés) [para inglés, haga clic en 'A télécharger']
Información
- "Factorización Cholesky" , Enciclopedia de Matemáticas , EMS Press , 2001 [1994]
- Descomposición de Cholesky , The Data Analysis BriefBook
- Descomposición de Cholesky en www.math-linux.com
- La descomposición de Cholesky simplificada en Science Meanderthal
Codigo de computadora
- LAPACK es una colección de subrutinas FORTRAN para resolver problemas de álgebra lineal densa (DPOTRF, DPOTRF2, rendimiento de detalles )
- ALGLIB incluye un puerto parcial de LAPACK a C ++, C #, Delphi, Visual Basic, etc. (spdmatrixcholesky, hpdmatrixcholesky)
- libflame es una biblioteca C con funcionalidad LAPACK.
- Notas y video sobre la implementación de alto rendimiento de la factorización Cholesky en la Universidad de Texas en Austin.
- Cholesky: TBB + Threads + SSE es un libro que explica la implementación del CF con TBB, threads y SSE (en español).
- biblioteca "Ceres Solver" de Google.
- Rutinas de descomposición de LDL en Matlab.
- Armadillo es un paquete de álgebra lineal C ++
- Rosetta Code es un sitio de programación de chrestomathy. en el tema de la página .
- AlgoWiki es una enciclopedia abierta de las propiedades de los algoritmos y las características de sus implementaciones en el tema de la página.
- Intel® Math Kernel Library OneAPI Intel optimizado para Math Library numérica Computing ? Potrf , ? Potrs
Uso de la matriz en simulación
- Generación de variables aleatorias correlacionadas y procesos estocásticos , Martin Haugh, Universidad de Columbia
Calculadoras en línea
- Calculadora de matrices en línea Realiza la descomposición Cholesky de matrices en línea.