큰 블록 대각선 스파 스 행렬의 역함수를 계산하고 싶습니다. 행과 열의 수가 50,000을 약간 넘습니다. 블록은 12 x 12이며 스파 스 (27 개의 0이 아닌 요소)입니다.큰 블록 대각선 희소 행렬의 역함수가
전체 행렬의 역함수를 계산하려고했습니다 (solve를 사용). 이것은 가능하지 않았고 전체 매트릭스가 너무 큽니다.
그 후, for-loop를 사용합니다. 각각의 반복 안에서, 나는 하나의 블록을 꺼내서 역산을 계산하고 그것을 다시 놓습니다.
그 방법은 효과가 있지만 약 5 분이 걸립니다. 더 빠른 방법이 있는지 궁금합니다.
미리 감사드립니다.
[scicomp.SE] (http://scicomp.stackexchange.com/)에서 질문하는 것이 좋을지 모르지만 큰 매트릭스를 뒤집 지 말라고 말할 것입니다. 왜 반대가 필요합니까? 너무 느린 이유는 블록을 제거하고 다시 넣는 것이 느리다는 것입니다. 수학은 매우 빠르게 할 수 있습니다. – Emmet
당신은 이미'Matrix' 패키지의 스파 스 매트릭스와 메소드를 사용하고 있습니까? 그것은 당신의 질문에서 분명하지 않다. –
네, 맞습니다. dgCMatrix – user3499209