Eu tenho uma lista de matrizes simétricas que eu preciso verificar quanto à semi-definição positiva (ou seja, seus valores próprios não são negativos).
O comentário acima implica que alguém poderia fazê-lo calculando os respectivos autovalores e verificando se não são negativos (talvez seja necessário cuidar de erros de arredondamento).
Computar os autovalores é bastante caro no meu cenário, mas notei que a biblioteca que estou usando possui um teste rápido de definição positiva (ou seja, se os autovalores de uma matriz forem estritamente positivos).
Portanto, a idéia seria que, dada uma matriz , se testa se é definitivo positivo. Se não for, então não é semi-definido positivo, caso contrário, pode-se calcular os autovalores de para garantir que ele seja realmente semidefinido positivo.
Minha pergunta agora é:
Existe uma maneira mais direta e eficiente de testar se uma matriz é semi-definida positiva, desde que seja realizado um teste eficiente de definição positiva?
fonte
Respostas:
Qual é a sua definição de trabalho de "semidefinido positivo" ou "definido positivo"? Na aritmética de ponto flutuante, você precisará especificar algum tipo de tolerância para isso.
λ máx−ϵ|λmax| λmax
Infelizmente, calcular todos os autovalores de uma matriz consome bastante tempo. Outra abordagem comumente usada é que uma matriz simétrica é considerada definida positivamente se a matriz tiver uma fatoração de Cholesky na aritmética de ponto flutuante. O cálculo da fatoração de Cholesky é uma ordem de magnitude mais rápido que o cálculo dos valores próprios. Você pode estender isso para semidefinitividade positiva adicionando um pequeno múltiplo da identidade à matriz. Novamente, há problemas de dimensionamento. Uma abordagem rápida é fazer um dimensionamento simétrico da matriz para que os elementos diagonais sejam 1,0 e adicione à diagonal antes de calcular a fatoração de Cholesky.ϵ
Você deve ter cuidado com isso, porque existem alguns problemas com a abordagem. Por exemplo, há circunstâncias em que e são definidos positivamente no sentido de que eles têm fatorações de Cholesky de ponto flutuante, mas não tem uma fatoração de Cholesky. Portanto, o conjunto de "matrizes definidas positivas fatoráveis de Cholesky de ponto flutuante" não é convexo! B ( A + B ) / 2A B (A+B)/2
fonte
Kerr, TH, " Testando Matrizes para Definitividade e Exemplos de Aplicação que Surgiram a Necessidade ", AIAA Journal of Guidance , Control, and Dynamics, vol. 10, No. 5, pp. 503-506, set.-out., 1987.
Kerr, TH, “ Sobre distorções do teste para matrizes semidefinidas positivas ”, AIAA Journal of Guidance, Control, and Dynamics , vol. 13, No. 3, pp. 571-572, mai-jun. 1990. (como ocorreu no software Navigation & Target Tracking nas décadas de 1970 e 1980 usando contra-exemplos)
Kerr, TH, " Falácias em testes computacionais de definição positiva / semidefinitividade matricial ", Transações IEEE em sistemas aeroespaciais e eletrônicos , vol. 26, No. 2, pp. 415-421, março de 1990. [Lista algoritmos falaciosos que o autor descobriu rotineiramente nos softwares de navegação e sonobuoy submarinos da Marinha dos EUA no final dos anos 70 e início dos anos 80, usando contra-exemplos para apontar os problemas. ]
fonte