역행렬의 요소를 하나만 원하면 빠른 알고리즘이 있습니까?


9

Mathematica를 사용하여 문제를 해결합니다. 행렬 역에 대한 질문이 있습니다.

역행렬의 한 요소 만 원한다면 Inverse전체 역행렬을 계산하고 원하는 요소를 추출하는 데 사용 하는 것보다 빠른 알고리즘이 있습니까?


논문의 초록은 에서 역행렬의 대각선을 계산할 수 있다고 말하지만 임의의 항목에 대한 것이 있는지는 모르겠습니다. O(n32)
G. Bach

여기서 근본적인 문제 는 컴퓨터 과학 이상의 수학 에 관한 것일 수 있습니다 .
Bernhard Barker

1
다음 은 희소 행렬에 대한 대각선 이상의 것입니다. 여기 에는 구조적 희소 행렬의 병렬 알고리즘에 대한 것이 있습니다.
G. Bach

@ G.Bach 귀하의 정보에 감사드립니다
user15964

2
@ G.Bach 저의 많은 대답은 저렇습니다. Google을 효과적으로 사용하는 것은 쉽지 않습니다. 정보가 유용하면 질문에 대답합니다.
Yuval Filmus

답변:


1

나는 Mathematica에서 이것을 정확하게 보지 못했지만 하나의 미지의 방정식 세트를 해결할 수 있다고 생각할 수 있습니다.

직접적인 방법은 물론 역행렬 알고리즘을 구현하고 특정 요소가 결정될 때 중지하도록하는 것입니다. 하나의 요소 만 얻는 것이 목표라면 각 알고리즘에 대해 어떤 최적화를 가질 수 있는지 보는 것이 흥미로울 것입니다.

그러나 첫 번째 단락에 따르면 방정식 시스템에서 행렬을 미지수로 역으로 표현한 다음 필요한 미지수에 대해서만 해결을 시도하는 것이 좋습니다 (단 하나의 미지수에 대한 방정식 세트를 지원해야하기 때문에). 더 나은 메모리와 CPU 성능을 얻으면 Mathematica가 실제로 전체 방정식을 풀지 못하고 미지의 것만을 결정하기 위해 최적화를했다고 말하는 것이 안전 할 수 있습니다. 역 알고리즘을 직접 사용하지 않기 때문에 성능이 저하 될 수 있습니다. 당신이 그것이 작동하는지 알려면!

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