Il est courant d'associer les résultats de la décomposition en valeurs singulières à ceux de l'analyse en composantes indépendantes (ou ICA). Les algorithmes qui exploitent une combinaison des deux sont couramment appelés SVD/ICA. En effet, l'analyse en composantes indépendantes tient compte des termes d'ordre supérieurs ou égaux à 2 négligés par la décomposition en valeurs singulières.
Le procédé de décomposition en valeurs singulières généralisée, ou GSVD, étend le concept de la décomposition en valeurs singulières en utilisant des seminormes quadratiques et s'applique aux systèmes linéaires.
Une matrice A m × n et une matrice B p × n réelles ou complexes étant données, leur décomposition généralisée est :
et
avec U,V et Q des matrices unitaires et R une matrice triangulaire supérieure, non-singulière, carrée r × r, en notant
Par ailleurs, Σ1 et Σ2 sont des matrices m × r et p × r respectivement, nulles partout sauf sur leur diagonale principale, qui contient les réels αi et βi respectivement, tels que :
Les rapports σi = αi / βi sont analogues aux valeurs singulières. Dans le cas particulier, mais important, où B est carrée et inversible, elles sont les valeurs singulières, U U et V sont alors les vecteurs singuliers de la matrice AB − 1.
Il est possible d'étendre le concept de décomposition en valeurs singulières à des matrices complexes, ou, de manière équivalente à des matrices constituées de vecteurs 2D. Le calcul est proche de celui de la décomposition en valeurs singulières simple. On parle de décomposition en valeurs singulières 2D, ou 2DSVD.
De même que pour le cas simple, il existe des algorithmes spécialisés qui donnent une approximation d'un ensemble de matrices de rang faible, par exemple des images ou des cartes météorologiques.
Soit X = (x1,...,xn) un ensemble de réels (c'est-à-dire de vecteurs 1D). Pour la décomposition en valeurs singulières, on construit la matrice de covariance et la matrice de Gram :
En calcule ensuite leurs vecteurs propres U = (u1,...,un) et V = (v1,...,vn). Puisque VVT = I,UUT = I, on a :
En ne gardant que les K vecteurs propres principaux de U et V, on obtient ainsi une approximation de rang faible de la matrice X. Pour les algorithmes de 2DSVD, on travaille avec des matrices 2D, c'est-à-dire un ensemble de matrices (X1,...,Xn) . On construit les matrices de covariance ligne-ligne et colonne-colonne :
Pour ce faire, on agit de la même façon que pour la décomposition classique, et on calcule leurs vecteurs propres U et V. On approche les Xi :
par une méthode identique à celle de la décomposition en valeurs singulières.
On obtient ainsi une approximation de (X1,...,Xn) par la fonction :
Les algorithmes de 2DSVD sont principalement utilisés en compression et représentation d'images. L'utilisation de la SVD pour la compression d'images a toutefois été montrée comme étant sous-optimale par rapport à une DCT, notamment à cause de l'obligation de transmettre la transformée elle-même, en plus des données image. Son rôle dans le domaine de la compression est de fait marginal.
En considérant l'utilisation de matrices dépliées, on peut étendre la décomposition en valeurs singulières aux cas tridimensionnels, ou 3DSVD. De tels algorithmes sont utilisés en sismologie, en météorologie et en acoustique, où l'analyse de données 3D (ou 2D dépendant du temps) est souvent nécessaire.
Dans les utilisations, il est assez rare de devoir utiliser la forme complète de la décomposition en valeurs singulières, y compris la décomposition complète du noyau sous forme unitaire. Il est en effet courant, plus rapide, et moins coûteux en termes de mémoire, d'utiliser des versions réduites de la SVD. Les décompositions suivantes sont valables pour les matrices m × n de rang r.
Seuls les n vecteurs colonnes de U correspondant aux vecteurs lignes de V* sont calculés. Les vecteurs colonnes restant de U ne sont pas calculés, ce qui économise une quantité importante de calculs si
La première étape du calcul d'une SVD « fine » est la décomposition QR de M, qui peut être optimisée pour
Seuls les r vecteurs colonnes de U et les r vecteurs lignes de V* correspondants aux valeurs singulières non-nulles Σr sont calculés. On obtient un résultat plus rapidement qu'avec la SVD « fine » si
Seuls les t vecteurs colonnes de U et les t vecteurs lignes de V* correspondants aux t plus grandes valeurs singulières Σr sont calculées. C'est un calcul encore plus rapide que la SVD « fine » si
Cependant, cette décomposition « tronquée » n'est plus une décomposition exacte de la matrice d'origine M, mais la matrice obtenue,