Recherche…


Syntaxe

  1. R = chol (A);
  2. [L, U] = lu (A);
  3. R = qr (A);
  4. T = schur (A);
  5. [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. qr-runtime

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. lu-runtime

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: schur-runtime

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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow