CG를 사용하여


11

켤레 구배 (CG) 방법을 사용하여 거대한 희소 양의 한정 행렬 대해 를 풀고 있습니다. 해결 중에 생성 된 정보를 사용하여 의 결정 요인을 계산할 수 있습니까?A AAx=bAA


왜 결정자를 계산하고 싶습니까? 이러한 결과는 어쨌든 거대한 매트릭스의 언더 플로 또는 오버플로 일 것입니다. 조건 번호를 계산하도록 요청했지만 더 많은 결정을 내리는 데 시간을 낭비하지 마십시오.

아마 이미 알고 있지만 공역 그라디언트 프로세스 중 Ritz 값은 행렬의 고유 값으로 수렴되며 이로부터 결정 요인에 대한 간단한 추정값을 도출 할 수 있습니다.
shuhalo

답변:


10

희소 행렬의 결정 요인을 계산하는 것은 일반적으로 직접 해결만큼 비싸며 CG가이를 계산하는 데 많은 도움이 될 것이라고 회의적입니다. 을 위해 CG를 실행할 수있을 것 (반복 인 의 전체 스펙트럼에 대한 정보를 생성하기 위해) 한 다음에 고유의 제품과 결정을 계산하지만,이 두 느린 것 수치 적으로 불안정하다.A n × n AnAn×nA

행렬의 희소 한 직접 Cholesky 인수 분해를 계산하는 것이 좋습니다 (예 ). 여기서 은 낮은 삼각형입니다. 그런 다음 여기서 는 삼각 행렬 의 고유 값이 대각선을 따라 위치하기 때문에 하위 삼각 행렬 의 대각선 항목의 곱입니다 . L det ( A ) = det ( L ) det ( L H ) = | 데트 ( L ) | 2 , 데트 ( L ) LA=LLHL

det(A)=det(L)det(LH)=|det(L)|2,
det(L)L

일반 비단 일 행렬의 경우 와 같이 피봇 팅 된 LU 분해를 사용해야합니다 . 여기서 P 는 순열 행렬이므로 det ( A ) = det ( P - 1 ) det ( L ) det ( U ) . 이후 순열 행렬이다 구성에 의해, 및, 통상적으로 의미하는 모든 것들의 대각선을 가질 것이다PA=LUP

det(A)=det(P1)det(L)det(U).
det ( P ) = ± 1 L det ( L ) = 1 det ( A ) ± det ( U )Pdet(P)=±1Ldet(L)=1. 따라서 를 하고 삼각 행렬의 행렬식이 단순히 대각선 항목의 곱임을 인식 할 수 있습니다. 따라서 결정자를 계산하는 비용은 본질적으로 인수 분해의 비용입니다.det(A)±det(U)

A106x106

@ManuelSchmidt 유한 요소 형 이산화에 기인 한 그 크기의 희소 행렬은 일반적으로 (예를 들어) 다중 정면 방법으로 쉽게 인수 분해 할 수 있습니다. 매트릭스가 HPD 인 경우 Cholesky 인수 분해를 사용해야한다는 것에 동의합니다 (그리고 위의 주장을 일반화하는 것이 명백합니다).
Jack Poulson

빠른 답변 및 답변 주셔서 감사합니다. 불행히도이 행렬에는 특별한 구조가 없기 때문에 쉽게 분해 할 수 있습니다.
Manuel Schmidt

2
왜 행렬의 행렬식을 계산해야하는지 궁금합니다. 최고 값과 최저값이 충분하지 않습니까?
Jack Poulson

정규화 상수뿐만 아니라 복잡한 확률 분포 함수의 일부입니다. 나는 분포가 고려 될 수 있다는 것을 알고 있지만 (현재 우리가하고있는 일) 모델링 할 데이터가 많으며 각 요인이 커집니다.
Manuel Schmidt

6

ABdimAdimBdimB=

BABABdetAdetBAB

detA=j=1dimAλi(A)j=1dimAλi(B)j=dimA+1dimBλi(B)
BAdimB=detAdetB

크기 결정 요인의 계산을 포함하는 진정으로 아름답고 실용적인 알고리즘이 있습니다. 확인 www-m3.ma.tum.de/foswiki/pub/M3/Allgemeines/...
매트 Knepley

2

결정자가 악한 이유와 방법에 대해 다시 생각하지 않고 연산자를 쉽게 인수 분해 할 수 없거나 단순히 행렬로 사용할 수 없으며 실제로 결정자를 추정해야 한다고 가정 해 봅시다 .

AA

이 책의 섹션 6.7.3을 자세히 따라 CG의 표준 구현에서이 결정 요인이 어떻게 나타나는지 리버스 엔지니어링 할 수 있습니다.


2

det(A)=i=1nαk1,
αk=rkTrkpkTApkrk0k=1,,nRrkPpk
pk=rk+i=1k1γiri.
det(P)=(1)ndet(R)rkpkA
k=1nαk=k=1nrkTrkpkTApk=det(RTR)det(PTAP)=det(RTR)det(A)det(PTP)=(det(A))1.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.