Szukaj…


Składnia

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

Rozkład Choleskiego

Rozkład Choleskiego jest metodą rozkładu hermitańskiej, pozytywnej określonej macierzy na górną trójkątną matrycę i jej transpozycję. Może być stosowany do rozwiązywania układów równań liniowych i jest około dwa razy szybszy niż rozkład LU.

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

Zwraca górną trójkątną macierz. Dolny otrzymuje się przez transpozycję.

L = R';

W końcu możemy sprawdzić, czy rozkład był prawidłowy.

b = (A == L*R);

Rozkład QR

Ta metoda rozkłada matrycę na górną trójkątną i ortogonalną.

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

To zwróci górną trójkątną macierz, podczas gdy następujące zwróci obie macierze.

[Q,R] = qr(A);

Poniższy wykres wyświetli środowisko wykonawcze qr zależne od pierwiastka kwadratowego elementów macierzy. qr-runtime

Rozkład LU

W ten sposób matryca zostanie rozłożona na górną trójkątną i dolną trójkątną. Często będzie on używany do zwiększenia wydajności i stabilności (jeśli jest to zrobione z permutacją) eliminacji Gaußa.

Jednak dość często ta metoda nie działa lub źle działa, ponieważ nie jest stabilna. Na przykład

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

Wystarczy dodać macierz permutacji, aby PA = LU:

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

Poniżej przedstawimy teraz środowisko uruchomieniowe „lu” zależne od pierwiastka kwadratowego elementów macierzy. lu-runtime

Rozkład Schura

Jeśli A jest złożoną i kwadratową macierzą, istnieje jednostkowy Q taki, że Q * AQ = T = D + N, gdzie D jest macierzą diagonalną składającą się z wartości własnych, a N jest ściśle górną trójkątną.

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

Wyświetlamy również środowisko wykonawcze schur zależności od pierwiastka kwadratowego elementów macierzy: schur-runtime

Rozkład według wartości osobliwych

Biorąc pod uwagę m razy n macierzy A z n większą niż m. Rozkład wartości osobliwych

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

oblicza macierze U, S, V.

Macierz U składa się z lewych pojedynczych wektorów własnych, które są wektorami własnymi A*A.' podczas gdy V składa się z właściwych pojedynczych wartości własnych, które są wektorami własnymi A.'*A Macierz S ma pierwiastki kwadratowe wartości własnych A*A.' i A.'*A na przekątnej.

Jeśli m jest większe niż n, można użyć

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

do przeprowadzenia ekonomicznego rozkładu wartości pojedynczej.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow