MATLAB Language
행렬 분해
수색…
통사론
- R = 콜 (A);
- [L, U] = lu (A);
- R = qr (A);
- T = schur (A);
- [U, S, V] = svd (A);
콜레 스키 분해
콜레 스키 분해법은 헤르미 탄, 확실한 행렬을 상 삼각 행렬과 그 전치 행렬로 분해하는 방법입니다. 선형 방정식을 풀 때 사용할 수 있으며, LU 분해에 비해 약 2 배 빠릅니다.
A = [4 12 -16
12 37 -43
-16 -43 98];
R = chol(A);
위 삼각형 행렬을 반환합니다. 낮은 쪽은 전위에 의해 얻어진다.
L = R';
마지막으로 분해가 올바른지 확인할 수 있습니다.
b = (A == L*R);
QR 분해
이 방법은 행렬을 위쪽 삼각형과 직교 행렬로 분해합니다.
A = [4 12 -16
12 37 -43
-16 -43 98];
R = qr(A);
다음은 위의 두 행렬을 반환하는 반면 위쪽 삼각 행렬을 반환합니다.
[Q,R] = qr(A);
다음 플롯은 행렬 요소의 제곱근에 따라 qr
의 런타임을 표시합니다.
LU 분해
이로써 행렬은 상부의 삼각형 행렬과 하부의 삼각 행렬로 분해 될 것입니다. 종종 Gauß 제거의 성능과 안정성을 향상시키는 데 사용됩니다 (퍼뮤 테이션으로 끝난 경우).
그러나이 방법은 안정적이지 않으므로 작동하지 않거나 잘못 작동합니다. 예를 들어
A = [8 1 6
3 5 7
4 9 2];
[L,U] = lu(A);
PA = LU와 같은 순열 행렬을 추가하는 것으로 충분합니다.
[L,U,P]=lu(A);
다음은 우리가 행렬 요소의 제곱근에 종속적 인`lu '런타임을 플로팅 할 것입니다.
Schur 분해
A가 복소 2 차 행렬이면, Q * AQ = T = D + N과 같은 단일 Q가 존재하며, D는 고유 값으로 구성된 대각 행렬이고 N은 엄격하게 상위 3 중 대각선이다.
A = [3 6 1
23 13 1
0 3 4];
T = schur(A);
우리는 또한 행렬 요소의 제곱근에 의존하는 schur
의 런타임을 표시합니다 :
단일 값 분해
m보다 큰 n 행렬 A가 주어진다. 특이 값 분해
[U,S,V] = svd(A);
행렬 U, S, V를 계산합니다.
행렬 U는 A*A.'
의 고유 벡터 인 왼쪽 특이 고유 벡터로 구성된다 A*A.'
V는 A.'*A
의 고유 벡터 인 올바른 특이 고유치로 구성됩니다 A.'*A
행렬 S
는 A*A.'
의 고유 값의 제곱근을가 A*A.'
및 A.'*A
대각선에 A.'*A
m이 n보다 큰 경우,
[U,S,V] = svd(A,'econ');
경제 규모의 특이 값 분해를 수행한다.