제곱 행렬의 거듭 제곱을 계산하는 방법은 무엇입니까?


16

행렬 이 주어지고 m N 0 이라고하자 . 그 행렬 의 전력 A m 을 얼마나 빨리 계산할 수 있습니까?ARN×NmN0Am

제품 계산과 비교하여 다음으로 가장 좋은 것은 O ( log m ) 매트릭스 제품 을 필요로하는 빠른 지수를 이용하는 것 입니다.mO(logm)

대각선 화 가능한 행렬의 경우 고유 값 분해를 사용할 수 있습니다. 자연 분해, 요르단 분해는 삽관시 불안정하므로 계산에 포함되지 않습니다 (afaik).

일반적인 경우에 행렬 지수를 계산할 수 있습니까?

빠른 지수는이 질문의 변형이 유용하다는 것을 암시합니다.

알려진 행렬 곱셈 알고리즘보다 일반 행렬 의 제곱을 더 빠르게 계산할 수 있습니까?A


섭동에서 안정성에 관심이 있다면 빠른 지수화도 안전하지 않습니다.
MCH

음, 나는 그것이 스칼라 지수만큼 안전한 반복 곱셈보다 안전하지 않다고 가정합니까?
shuhalo

답변:


20

참고로, 계산은 N × N 행렬 에서 행렬 곱셈에 대한 연산 수의 O ( log m )에 수행 할 수 있습니다 . 두 번째 질문에 대한 답은 적어도 점근 적 복잡성에 대한 답은 아닙니다. 매트릭스 스쿠 어링과 행렬 곱셈은 동일한 시간 / 산술 복잡성 (상수 요인까지)을 갖습니다. 제곱을 행렬 곱셈으로 줄이는 것은 분명합니다. 제곱에 대한 곱셈을 줄이기 위해 AB 의 곱을 계산한다고 가정 합니다. 형태 2 N × 2 n 개의 행렬 C 블록 구조를 :AmO(logm)N×NAB2n×2nC

[0  A]

[B  0]

즉, 는 왼쪽 위 사분면과 오른쪽 아래 사분면에 n × n의 모든 영점 행렬을가집니다. 참고 C 2 포함 B를 상부 왼쪽 사분면.Cn×nC2AB


나는 최근 cs.SE 에서 m = O ( n ) 인 특별한 경우에 A m 계산의 복잡성에 대해 질문 했습니다 . O ( M ( n ) log ( n ) ) 상한 을 제공하는 것은 쉽지만 내가 줄 수있는 가장 낮은 하한은 Ω ( M ( n ) ) 입니다. 이 문제에 대한 의견이 있습니까? 많은 흥미로운 문제가이 특별한 경우로 줄어든다고 생각합니다. AmO(n)O(M(n)log(n))Ω(M(n))
Shitikanth
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.