decomposition
선형 시스템을 풀기 위한 행렬 분해
설명
decomposition은 재사용 가능한 행렬 분해(LU, LDL, 촐레스키, QR 등)를 만드는데, 이것을 사용하면 선형 시스템(Ax = b 또는 xA = b)을 더 효율적으로 풀 수 있습니다. 예를 들어, dA = decomposition(A)를 계산하면 호출 dA\b가 A\b와 동일한 벡터를 반환하는데 일반적으로 훨씬 더 빠릅니다. decomposition 객체를 사용하면 계수 행렬 분해를 여러 번 수행할 필요가 없으므로, 반복적으로 해를 구해야 하는 문제를 풀 때 적합합니다.
원래 계수 행렬 A에 사용할 수 있는 많은 연산자를 decomposition 객체 dA에도 사용할 수 있습니다.
켤레 복소수 전치(Complex Conjugate Transpose)
dA'부정
-dAc*dA나dA/c처럼 스칼라로 곱하거나 나누기.x = dA\b를 사용하여 선형 시스템 Ax = b 풀기.x = b/dA를 사용하여 선형 시스템 xA = b 풀기.
생성
구문
설명
는 선형 시스템을 더 효율적으로 푸는 데 사용할 수 있도록 행렬 dA = decomposition(A)A의 분해를 반환합니다. 분해 유형은 입력 행렬의 속성에 기반하여 자동으로 선택됩니다.
는 dA = decomposition(A,type,triangularFlag)A의 상부 또는 하부 삼각 부분만 분해에 사용됨을 지정합니다. triangularFlag는 'upper' 또는 'lower'일 수 있습니다. 이 구문에서 분해 유형은 'ldl', 'chol' 또는 'triangular'이어야 합니다.
는 위에 열거된 구문에 dA = decomposition(___,Name,Value)Name,Value 쌍 인수를 하나 이상 추가 옵션으로 지정합니다. 예를 들어, dA = decomposition(A,'CheckCondition',false)는 dA\b를 푸는 동안 A의 조건을 기준으로 경고를 발생하지 않도록 지정합니다.
입력 인수
이름-값 인수
속성
객체 함수
decomposition 객체에 사용할 수 있는 주 함수와 연산자는 선형 연립방정식 풀이와 관계가 있습니다. 분해 유형이 'qr'이면 A'\B 또는 B/A를 풀 수 없습니다. 대신 이러한 형식으로 구성된 문제에는 'cod'를 사용하십시오.
ctranspose | 켤레 복소수 전치(Complex Conjugate Transpose) |
mldivide | x에 대한 선형 연립방정식 Ax = B의 해 구하기 |
mrdivide | x에 대한 선형 연립방정식 xA = B의 해 구하기 |
isIllConditioned | 행렬의 조건이 나쁜지 여부 판별 |
또한 decomposition 객체로 구성된 기본 행렬의 조건수 또는 랭크를 확인할 수 있습니다. 다른 알고리즘이 사용되므로, decomposition 객체에 아래와 같은 함수를 사용하여 얻는 결과가 계수 행렬에 직접 그 함수를 사용하여 얻는 결과와 다를 수 있습니다.
예제
참고 문헌
[1] Davis, Timothy A. “Algorithm 930: FACTORIZE: An Object-Oriented Linear System Solver for MATLAB.” ACM Transactions on Mathematical Software 39, no. 4 (July 2013): 1–18. https://doi.org/10.1145/2491491.2491498.
확장 기능
버전 내역
R2017b에 개발됨