LAPACK이 사용하는 이유는 무엇입니까


9

LAPACK의 QR 루틴은 Q를 가정용 반사기로 저장합니다. 반사 벡터의 크기를 조정합니다V1/V1결과의 첫 번째 요소는 1저장하지 않아도됩니다. 그리고 별도 저장τ필요한 스케일 팩터를 포함하는 벡터. 리플렉터 매트릭스는 다음과 같습니다.

H=나는τVV,

어디 V정규화되지 않았습니다. 교과서에서 반사기 매트릭스는

H=나는2VV,

여기서 는 정규화됩니다.V

LAPACK 이 정규화하는 대신 를 스케일하는 이유는 무엇 입니까?V1/V1

필요한 스토리지 (대신 동일한 , 저장되어야한다), 그 후, 적용 곱하기 할 필요가 없기 때문에, 더 빠르게 수행 될 수 로 (승산 최적화 될 수있는 교과서 버전은 단순 정규화 대신에 는 로 스케일됩니다 .τV1Hτ2V2/V

(제 질문의 이유는 QR 및 SVD 루틴을 작성 중이며, 따라야하는지 여부에 따라이 결정의 이유를 알고 싶습니다.)

답변:


7

이 디자인을 주도하는 것은 가정용 QR의 차단 된 변형입니다. Golub과 Van Loan의 저서 (Ch 5.2 정도)에서 개별 반사기를 형식의 랭크 -k 반사기로 누적함으로써 알고리즘의 k 반복이 어떻게 차단 될 수 있는지에 대해 이야기합니다. (여기서 와 는 모두 크기가 "키가 큰"행렬입니다 . 이 알고리즘은 gemm () 호출이 풍부하기 때문에 더 많은 작업을 수행하지만 실제로는 더 빠릅니다. 불행하게도 와 독립적 으로 나타내야하기 때문에 저장에 낭비가됩니다 .I+WYT와이×케이와이

이후의 논문 (아래 인용)에서 Van Loan은보다 효율적인 "기호화 된"데이터 구조, 즉 형식의 블록 리플렉터를 설명합니다 . 여기서 는 여전히 이지만, 를 형성하기위한 플롭 / 스토리지 요구 사항 은 작은 상부 삼각 행렬 인 를 도입함으로써 제거되었습니다 . 를 곱할 필요가 있지만 적은 양의 추가 작업이 발생하지만 이므로 일반적으로 순 이득 입니다.나는+와이와이와이×케이케이×케이케이<<

LAPACK 내에서, 비 차단 알고리즘은 실제로 블록 알고리즘의 제한적인 사례이며, 기호 선택에 이르기까지 ( 의 작은 버전 인 이어진다) 삼각형).케이1τ1×1

인용 : Schreiber, Robert 및 Charles Van Loan. "가계 변환 제품에 대한 스토리지 효율적인 WY 표현." 과학 및 통계 컴퓨팅에 관한 SIAM 저널 10.1 (1989) : 53-57.


답변 해주셔서 감사합니다! 나는 가 단지 크기 라는 것을 알지 못한다 . 인용 된 논문에서 알고리즘 5에서 는 이고 는 -2입니다. 따라서 LAPACK 버전이 아닌 교과서 버전으로 끝납니다. 내가 뭔가를 그리워합니까? τ1×1와이V
geza

2

당신은 저장할 필요가 없습니다 τ, 나머지 벡터에서 다시 계산할 수 있습니다. (당신은 다시 계산할 수 있습니다v1 정규화 된 버전의 다른 항목에서도 해당 뺄셈으로 인해 계산이 불안정합니다.)

실제로, 당신은 아래 삼각형의 일부를 재사용 할 수 있습니다 R 저장 v2,...v인수 분해가 전체 제자리에서 계산되도록합니다. Lapack은 이러한 인플레 이스 버전의 알고리즘에 많은 관심을 기울입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.