Suche…


Syntax

  1. R = Chol (A);
  2. [L, U] = lu (A);
  3. R = qr (A);
  4. T = schur (A);
  5. [U, S, V] = svd (A);

Cholesky-Zersetzung

Die Cholesky-Zerlegung ist eine Methode, um eine hermitische, positiv definite Matrix in eine obere Dreiecksmatrix und ihre Transponierung zu zerlegen. Es kann zum Lösen linearer Gleichungssysteme verwendet werden und ist etwa doppelt so schnell wie die LU-Zerlegung.

A = [4 12 -16
    12 37 -43
    -16 -43 98];
R = chol(A);

Dies gibt die obere Dreiecksmatrix zurück. Die untere wird durch Transposition erhalten.

L = R';

Endlich können wir überprüfen, ob die Zersetzung korrekt war.

b = (A == L*R);

QR-Zerlegung

Diese Methode zerlegt eine Matrix in eine obere dreieckige und eine orthogonale Matrix.

A = [4 12 -16
    12 37 -43
    -16 -43 98];
R = qr(A);

Dadurch wird die obere dreieckige Matrix zurückgegeben, während im Folgenden beide Matrizen zurückgegeben werden.

[Q,R] = qr(A);

Das folgende Diagramm zeigt die Laufzeit von qr Abhängigkeit von der Quadratwurzel der Elemente der Matrix. qr-Laufzeit

LU-Zersetzung

Hierbei wird eine Matrix in eine obere Dreiecks- und eine untere Dreiecksmatrix zerlegt. Oft wird es verwendet, um die Leistung und Stabilität der Gauß-Eliminierung zu erhöhen (wenn es mit Permutation geschieht).

Diese Methode funktioniert jedoch häufig nicht oder schlecht, da sie nicht stabil ist. Zum Beispiel

A = [8 1 6
    3 5 7
    4 9 2];
[L,U] = lu(A);

Es reicht aus, eine Permutationsmatrix hinzuzufügen, so dass PA = LU:

[L,U,P]=lu(A);

Im Folgenden werden wir die Laufzeit von 'lu' in Abhängigkeit von der Quadratwurzel der Elemente der Matrix darstellen. lu-Laufzeit

Schur-Zersetzung

Wenn A eine komplexe und quadratische Matrix ist, gibt es ein einheitliches Q, so dass Q * AQ = T = D + N ist, wobei D die Diagonalmatrix ist, die aus den Eigenwerten besteht und N streng obere Tridiagonale ist.

A = [3 6 1
    23 13 1
    0 3 4];
T = schur(A);

Wir zeigen auch die Laufzeit von schur Abhängigkeit von der Quadratwurzel von Matrixelementen: schur-Laufzeit

Einzelwertzerlegung

Eine m mal n Matrix A mit n größer als m gegeben. Die Singularwertzerlegung

[U,S,V] = svd(A);

berechnet die Matrizen U, S, V.

Die Matrix U besteht aus den linken singulären Eigenvektoren, die die Eigenvektoren von A*A.' während V aus den rechten singulären Eigenwerten besteht, die die Eigenvektoren von A.'*A Die Matrix S hat die Quadratwurzeln der Eigenwerte von A*A.' und A.'*A auf seiner Diagonale.

Wenn m größer als n ist, können Sie verwenden

[U,S,V] = svd(A,'econ');

Einzelne Wertzerlegung in Wirtschaftgröße durchführen.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow