MATLAB Language
Rozkłady macierzy
Szukaj…
Składnia
- R = chol (A);
- [L, U] = lu (A);
- R = qr (A);
- T = schur (A);
- [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.
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.
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:
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.