MATLAB Language
Décompositions matricielles
Recherche…
Syntaxe
- R = chol (A);
- [L, U] = lu (A);
- R = qr (A);
- T = schur (A);
- [U, S, V] = svd (A);
Décomposition de Cholesky
La décomposition de Cholesky est une méthode pour décomposer une matrice hermitienne définie positive en une matrice triangulaire supérieure et sa transposition. Il peut être utilisé pour résoudre des systèmes d'équations linéaires et est environ deux fois plus rapide que la décomposition LU.
A = [4 12 -16
12 37 -43
-16 -43 98];
R = chol(A);
Cela renvoie la matrice triangulaire supérieure. Le plus bas est obtenu par transposition.
L = R';
Nous pouvons enfin vérifier si la décomposition était correcte.
b = (A == L*R);
Décomposition QR
Cette méthode décomposera une matrice en une matrice triangulaire supérieure et une matrice orthogonale.
A = [4 12 -16
12 37 -43
-16 -43 98];
R = qr(A);
Cela retournera la matrice triangulaire supérieure tandis que les suivantes renverront les deux matrices.
[Q,R] = qr(A);
Le tracé suivant affichera le temps d'exécution de qr
dépendant de la racine carrée des éléments de la matrice.
Décomposition LU
Ici, une matrice sera décomposée en une matrice triangulaire supérieure et une matrice triangulaire inférieure. Souvent, il sera utilisé pour augmenter la performance et la stabilité (si cela est fait avec la permutation) de l'élimination de Gauß.
Cependant, très souvent cette méthode ne fonctionne pas ou mal car elle n'est pas stable. Par exemple
A = [8 1 6
3 5 7
4 9 2];
[L,U] = lu(A);
Il suffit d'ajouter une matrice de permutation telle que PA = LU:
[L,U,P]=lu(A);
Dans ce qui suit, nous allons maintenant tracer le runtime de `lu 'dépendant de la racine carrée des éléments de la matrice.
Décomposition de schur
Si A est une matrice complexe et quadratique, il existe un Q unitaire tel que Q * AQ = T = D + N avec D étant la matrice diagonale composée des valeurs propres et N étant strictement tridiagonal supérieur.
A = [3 6 1
23 13 1
0 3 4];
T = schur(A);
Nous schur
également le temps d'exécution de schur
dépendant de la racine carrée des éléments de la matrice:
Décomposition en valeur singulière
Étant donné un m fois n matrice A avec n plus grand que m. La décomposition en valeurs singulières
[U,S,V] = svd(A);
calcule les matrices U, S, V.
La matrice U est constituée des vecteurs propres singuliers de gauche qui sont les vecteurs propres de A*A.'
tandis que V est constitué des valeurs propres singulières droites qui sont les vecteurs propres de A.'*A
La matrice S
a les racines carrées des valeurs propres de A*A.'
et A.'*A
sur sa diagonale.
Si m est plus grand que n on peut utiliser
[U,S,V] = svd(A,'econ');
effectuer une décomposition en valeur singulière économique.