EVD définie positive généralisée
Le problème généralisé des valeurs propres symétriques définies positives est l'un des problèmes de valeurs propres suivants :
- Ax = ΛBx
- ABx = Λx
- BAx = Λx
où A est une matrice symétrique et B une matrice symétrique définie positive.
Il est évident que ce problème se ramène aisément à la recherche des valeurs propres d'une matrice non symétrique quelconque (cette réduction s'effectue en multipliant les deux membres du système par B-1 dans le premier cas, et en multipliant les matrices A et B entre elles dans les deuxième et troisième cas). Cependant, le problème des valeurs propres d'une matrice non symétrique est beaucoup plus complexe ; il est donc judicieux de trouver une méthode plus efficace pour résoudre le problème symétrique généralisé. Par exemple, on peut le ramener à un problème symétrique classique en utilisant la décomposition de Cholesky de la matrice B (l'exemple ci-dessous s'applique au premier problème).
- Ax = ΛBx
- Ax = ΛLLTx
- AL-TLTx = ΛLLTx
- L-1AL-TLTx = ΛLTx
- (L-1AL-T)(LTx) = Λ(LTx)
Nous obtenons donc le problème suivant :
- Cy = Λy
- C = L-1AL-T
- y = LTx
Les valeurs propres des deux problèmes étant identiques, les vecteurs propres du problème initial peuvent être obtenus en résolvant un système d'équations linéaires à matrice triangulaire. Des transformations similaires peuvent être appliquées à deux autres problèmes généralisés.
Description des sous-programmes
Ce module contient deux sous-programmes permettant de résoudre un problème de valeurs propres symétrique défini positif généralisé. Le premier sous-programme, SMatrixGEVDReduce, ramène le problème à un problème symétrique classique. Il renvoie les matrices C (matrice du problème) et R (matrice triangulaire utilisée pour le calcul des vecteurs propres). Le second sous-programme, SMatrixGEVD, utilise le premier pour résoudre le problème généralisé. Il appelle automatiquement tous les sous-programmes nécessaires et transforme les vecteurs obtenus.