6.50.9 Singular value decomposition (compatible HP) : SVD
SVD (singular value decomposition) a comme argument une matrice
carrée numérique réelle d’ordre n.
SVD(A) renvoie U une matrice orthogonale, Q une matrice orthogonale,
s la diagonale d’une matrice diagonale S=diag(s) constituée par les
valeurs singulières de A,(tQ*Q=I) tel que :
A=U.diag(s).tran(Q).
On tape :
SVD([[1,2],[3,4]])
On obtient :
[[-0.404553584834,-0.914514295677],[-0.914514295677, 0.404553584834]], [[-0.576048436766,0.81741556047],[-0.81741556047, -0.576048436766]], [5.46498570422,0.365966190626]
On tape :
(U,Q,s):=SVD([[3,5],[4,5]])
On obtient :
[[-0.672988041811,-0.739653361771],[-0.739653361771, 0.672988041811]], [[-0.576048436766,0.81741556047],[-0.81741556047, -0.576048436766]], [8.6409011028,0.578643354497]
Vérifions :
On tape :
U*diag(s)*tran(Q)
On obtient :
[[3.0,5.0],[4.0,5.0]]