J'ai une liste de matrices symétriques dont j'ai besoin pour vérifier la semi-définition positive (c'est-à-dire que leurs valeurs propres ne sont pas négatives.)
Le commentaire ci-dessus implique que l'on pourrait le faire en calculant les valeurs propres respectives et en vérifiant si elles ne sont pas négatives (peut-être en prenant soin des erreurs d'arrondi.)
Le calcul des valeurs propres est assez cher dans mon scénario, mais j'ai remarqué que la bibliothèque que j'utilise a un test assez rapide pour la précision positive (c'est-à-dire, si les valeurs propres d'une matrice sont strictement positives.)
D'où l'idée serait que, étant donné une matrice , on teste si est défini positif. Si ce n'est pas le cas, n'est pas semi-défini positif, sinon on peut calculer les valeurs propres de pour s'assurer qu'il est bien semi-défini positif.
Ma question est maintenant:
Existe-t-il un moyen plus direct et plus efficace de vérifier si une matrice est semi-définie positive, à condition qu'un test efficace de précision positive soit donné?
la source
Réponses:
Quelle est votre définition de travail de "semi-définie positive" ou "définie positive"? Dans l'arithmétique à virgule flottante, vous devrez spécifier une sorte de tolérance pour cela.
λ max−ϵ|λmax| λmax
Malheureusement, le calcul de toutes les valeurs propres d'une matrice prend beaucoup de temps. Une autre approche couramment utilisée est qu'une matrice symétrique est considérée comme définie positive si la matrice a une factorisation de Cholesky en arithmétique à virgule flottante. Le calcul de la factorisation de Cholesky est un ordre de grandeur plus rapide que le calcul des valeurs propres. Vous pouvez l'étendre à la semi-finesse positive en ajoutant un petit multiple de l'identité à la matrice. Encore une fois, il y a des problèmes de mise à l'échelle. Une approche rapide consiste à faire une mise à l'échelle symétrique de la matrice de sorte que les éléments diagonaux soient 1.0 et ajouter à la diagonale avant de calculer la factorisation de Cholesky.ϵ
Vous devez cependant faire attention à cela, car il y a des problèmes avec l'approche. Par exemple, il y a des circonstances où les et sont définis positifs dans le sens où ils ont des factorisations de Cholesky à virgule flottante, mais n'a pas de factorisation de Cholesky. Ainsi, l'ensemble des "matrices définies positives factorisables à virgule flottante" n'est pas convexe! B ( A + B ) / 2A B (A+B)/2
la source
Kerr, TH, « Testing Matrices for Definiteness and Application Exemples that Spawing the Need », AIAA Journal of Guidance , Control, and Dynamics, Vol. 10, n ° 5, p. 503-506, sept.-oct., 1987.
Kerr, TH, « On Misstatements of the Test for Positive Semidefinite Matrices », AIAA Journal of Guidance, Control, and Dynamics , Vol. 13, n ° 3, pp. 571-572, mai-juin. 1990. (comme cela s'est produit dans les logiciels de navigation et de suivi des cibles dans les années 1970 et 1980 en utilisant des contre-exemples)
Kerr, TH, « Fallacies in Computational Testing of Matrix Positive Definiteness / Semidefiniteness », IEEE Transactions on Aerospace and Electronic Systems , vol. 26, n ° 2, pp. 415-421, mars 1990. [Répertorie les algorithmes fallacieux que l'auteur a régulièrement trouvés dans les logiciels de navigation sous-marine et de bouées acoustiques de l'US Navy à la fin des années 1970 et au début des années 1980 en utilisant des contre-exemples pour signaler les problèmes. ]
la source