답변:
hole 레 스키 인수 분해 은 상위 삼각 행렬 을 사용하여 역 의 hole 레 스키와 같은 인수 분해를 유도합니다 .C − 1 = S S T S = R − 1
실제로는 역 인수를 유지하는 것이 가장 좋습니다. 이 드문 경우 , 두 개의 삼각 시스템 및 를 해결하여 행렬-벡터 곱 를 계산할 수 있으므로 일반적으로 암시 적 으로 유지하는 것이 훨씬 좋습니다 .S y = C - 1 x R T z = x R y = z
공분산 행렬은 양의 반정의 대칭 행렬이므로 공분산 행렬로 작업 할 때 Cholesky 인수 분해는 최상의 안정성과 속도에 가장 적합합니다. hole 레 스키는 자연 스럽습니다. 그러나...
Cholesky 인수 분해를 계산하려는 경우 공분산 행렬을 계산하기 전에 선호하십시오. 행렬의 QR 분해를 계산하여 문제를 최대한 안정적으로 만듭니다. (QR도 빠릅니다.) 즉, 공분산 행렬을 다음과 같이 계산하면
여기서 제거 컬럼 수단을 갖고, 그 형성하면 볼 , 그 사각형 조건 번호. hole 레 스키 분해를 명시 적으로 계산하는 것보다 의 QR 요인을 형성 것이 좋습니다 .C A A T A
Q는 직교이기 때문에
따라서 의 형식으로 QR 분해에서 Cholesky 계수를 직접 얻습니다 . 경우 - 덜 QR 인수 분해가 가능하며,이 더 필요하지 않기 때문에 짝수 . 이후 - 덜 QR은 컴퓨팅 빠르고 일 생성되지 않습니다. 그것은 단지 가계 변환의 순서가됩니다. (피벗 을 선택하기위한 추가 작업이 필요하지만 열이 피봇 팅 된 less QR은 논리적으로 훨씬 안정적입니다.)
QR을 사용하는 것의 큰 장점은 불쾌한 문제에 대해 수치 적으로 안정적이라는 것입니다. 다시, 이것은 Cholesky factor를 계산하기 위해 공분산 행렬을 직접 형성 할 필요가 없었기 때문입니다. 곱 를 형성하자마자 행렬의 조건 번호를 제곱합니다. 실제로 처음에는 정보가 거의없는 매트릭스 부분에서 정보가 손실됩니다.
마지막으로, 다른 응답에서 알 수 있듯이 역을 계산하고 저장할 필요는 없지만 삼각 시스템의 역 솔버 형태로 암시 적으로 사용하십시오.
최근에 mathSE의 제안을 사용하여 처음 으로이 작업을 수행했습니다.
SVD는 내가 생각하는 대부분의 사람들에게 권장되었지만 Cholesky의 단순성을 선택했습니다.
행렬 이면 Cholesky를 사용하여 과 같이 을 삼각 행렬 분해 합니다. I는 반전으로 (상부 또는 하부 삼각형이되도록 I L을 선택하는지에 따라) 또는 backsubstitution forwardsubstitution를 사용 I를 갖도록, . 이를 통해 빠르게 계산할 수 있습니다 .
로 시작 :
. 여기서 은 알려져 있고 내재적으로 대칭이며 양의 한정입니다.
hole 레 스키 인수 분해 :
, 여기서 은 정사각형이며 비단 수
역 치환 :
, 아마도 을 뒤집는 가장 빠른 방법 일 것 입니다 (그렇지만 인용하지 마십시오)
곱셈:
사용 된 표기법 : 하위 인덱스는 행이고 상위 인덱스는 열이며 은 의 전치입니다.
내 hole 레 스키 알고리즘 (아마도 수치 레시피 또는 위키 백과)
이것은 거의 제자리에서 수행 할 수 있습니다 (대각선 요소, 누산기 및 일부 정수 반복자에 대한 임시 저장소 만 필요합니다).
내 대체 알고리즘 (Numerical Recipes에서 LaTeX 마크 업으로 실수했을 수 있으므로 버전을 확인하십시오)
식에 가 표시되므로 행렬을 반복하는 순서가 중요합니다 (결과 행렬의 일부 부분은 미리 계산해야하는 다른 부분에 따라 다름). 코드의 전체 예제는 Numerical Recipes 코드를 확인하십시오. [편집] : 사실, Numerical Recipes 예제를 확인하십시오. 도트 제품을 사용하여 너무 단순화했습니다. 위의 방정식은 반복 순서에 관계없이 순환 종속성을 갖습니다 ...