decomposition
선형 시스템을 풀기 위한 행렬 분해
설명
decomposition
은 재사용 가능한 행렬 분해(LU, LDL, 촐레스키, QR 등)를 만드는데, 이것을 사용하면 선형 시스템(Ax = b 또는 xA = b)을 더 효율적으로 풀 수 있습니다. 예를 들어, dA = decomposition(A)
를 계산하면 호출 dA\b
가 A\b
와 동일한 벡터를 반환하는데 일반적으로 훨씬 더 빠릅니다. decomposition
객체를 사용하면 계수 행렬 분해를 여러 번 수행할 필요가 없으므로, 반복적으로 해를 구해야 하는 문제를 풀 때 적합합니다.
원래 계수 행렬 A
에 사용할 수 있는 많은 연산자를 decomposition
객체 dA
에도 사용할 수 있습니다.
켤레 복소수 전치(Complex Conjugate Transpose)
dA'
부정
-dA
c*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에 개발됨