Se una matrice A ha una matrice autovelox non reversibile P (ad esempio, la matrice [1 1 1 1; 0 1] ha il sistema autovelox non reversibile [1 0; 0 0 0]), allora A non ha la decomposizione dell’autovelox. Tuttavia, se A è una matrice reale m×n con m>n, allora A può essere scritto utilizzando un cosiddetto valore di decomposizione singolare della forma

A=UDV^(T).

(1)

Va notato che nella letteratura sono in uso diverse convenzioni nozionistiche contrastanti. Press et al. (1992) definiscono U come matrice m×n, D come n×n e V come n×n. Tuttavia, il linguaggio Wolfram definisce U come m×m, D come m×n e V come n×n. In entrambi i sistemi, U e V hanno colonne ortogonali in modo che

U^(T)U=I

(2)

e

V^(T)V=I

(3)

(dove le due matrici di identità possono avere dimensioni diverse), e D ha voci solo lungo la diagonale.

Per una matrice complessa A, la scomposizione del valore singolare è una scomposizione nella forma

A=UDV^(H),

(4)

dove U e V sono matrici unitarie, V^(H) è la trasposizione coniugata di V, e D è una matrice diagonale i cui elementi sono i valori singolari della matrice originale. Se A è una matrice complessa, allora c’è sempre una tale decomposizione con valori singolari positivi (Golub e Van Loan 1996, pp. 70 e 73).

La decomposizione dei valori singolari è implementata nel linguaggio Wolfram come SingularValueDecomposition[m], che restituisce una lista {U, D, V}, dove U e V sono matrici e D è una matrice diagonale composta dai valori singolari di m.