Prueba si una matriz es positiva semi-definida

11

Tengo una lista de matrices simétricas que necesito verificar para una semi-definición positiva (es decir, sus valores propios no son negativos).L

El comentario anterior implica que uno podría hacerlo calculando los valores propios respectivos y verificando si son no negativos (tal vez teniendo que ocuparse de los errores de redondeo).

Calcular los valores propios es bastante costoso en mi escenario, pero he notado que la biblioteca que estoy usando tiene una prueba bastante rápida para la definición positiva (es decir, si los valores propios de una matriz son estrictamente positivos).

Por lo tanto, la idea sería que, dada una matriz , se prueba si B + ϵ I es positivo definido. Si no lo es, entonces B no es positivo semi-definido, de lo contrario uno puede calcular los autovalores de B para asegurarse de que sea positivo semi-definido.BLB+ϵIBB

Mi pregunta ahora es:

¿Existe una forma más directa y eficiente de evaluar si una matriz es positiva y semiterminada, siempre que se proporcione una prueba eficiente para la definición positiva?

Jernej
fuente
1
A
1
B+cIccc
Sí, puede cambiar los valores propios y calcular el valor propio más pequeño, pero aún tiene el problema de establecer cierta tolerancia a lo que aceptará (¡y de asegurarse de que sus valores propios se calculen al menos para esa tolerancia!)
Brian Borchers
No estoy seguro de si esto sería útil, pero tenga en cuenta que una vez que sepa que una matriz no es positiva definida, para verificar si es semidefinida positiva solo necesita verificar si su núcleo no está vacío.
Abel Molina

Respuestas:

20

¿Cuál es su definición de trabajo de "semidefinido positivo" o "definitivo positivo"? En aritmética de coma flotante, tendrá que especificar algún tipo de tolerancia para esto.

Aλ=1.01030λ=1.0

ϵ|λmax|λmax

Desafortunadamente, calcular todos los valores propios de una matriz lleva bastante tiempo. Otro enfoque comúnmente utilizado es que una matriz simétrica se considera positiva definida si la matriz tiene una factorización de Cholesky en aritmética de coma flotante. Calcular la factorización de Cholesky es un orden de magnitud más rápido que calcular los valores propios. Puede extender esto a semidefinición positiva agregando un pequeño múltiplo de la identidad a la matriz. Nuevamente, hay problemas de escala. Un enfoque rápido es hacer una escala simétrica de la matriz para que los elementos diagonales sean 1.0 y agregar a la diagonal antes de calcular la factorización de Cholesky. ϵ

Sin embargo, debe tener cuidado con esto, porque hay algunos problemas con el enfoque. Por ejemplo, hay circunstancias en las que y son positivos definidos en el sentido de que tienen factorizaciones de Cholesky de punto flotante, pero no tiene una factorización de Cholesky. Por lo tanto, el conjunto de "matrices definidas positivas factorizables de Cholesky de coma flotante" no es convexo. B ( A + B ) / 2AB(A+B)/2

Brian Borchers
fuente
¿Podría dar más detalles sobre ese último párrafo o publicar un enlace a una fuente? Eso es bastante extraño.
Daniel Shapero
1
Una referencia clásica a esta escala es A. van der Slui. Números de condición y equilibrio de matrices Numerische Mathematik 14 (1): 14-23, 1969. También se discute en libros de texto como Golub y van Loan. El bit en el último párrafo proviene de la experiencia personal obtenida con esfuerzo en la búsqueda de líneas de codificación en un código de programación semidefinido: he encontrado situaciones en las que y tienen factorizaciones de Cholesky por LAPACK, pero no tiene una factorización de Cholesky según LAPACK. Este tipo de problemas comienzan a ocurrir cuando eres casi singular. X + α Δ X X + 0.95 α Δ XXX+αΔXX+0.95αΔX
Brian Borchers
Tampoco es raro descubrir que algunas matrices pueden ser factorizadas por Cholesky en precisión extendida o cuádruple, pero no en aritmética de coma flotante de precisión doble o precisión simple regular.
Brian Borchers
3
Varios de los códigos de puntos interiores primarios-dobles para SDP (CSDP, SDPT3, SDPA) siempre devuelven matrices que son positivas definidas y tienen factorizaciones de Cholesky, mientras que otro solucionador popular (SeDuMi) usa una descomposición de valores propios y devolverá soluciones que tienen muy poco negativo valores propios.
Brian Borchers
3
Thomas H. Kerr III
fuente
44
Parece que el nombre de usuario revela bastante bien la relación entre el autor de la respuesta y el autor de los documentos. Un poco más de información sobre lo que está contenido en el documento sería bueno; aunque, de todos modos, es muy interesante y relevante para la lista de preguntas.
Anton Menshov