양의 명확한 대칭 행렬에 대한 역행렬 및 행렬식을 계산하는 가장 빠른 알고리즘은 무엇입니까?


10

양의 명확한 대칭 행렬이 주어지면 역행렬과 행렬식을 계산하는 가장 빠른 알고리즘은 무엇입니까? 관심있는 문제의 경우 행렬 크기는 30 이하입니다.

  1. 높은 정확도와 속도가 실제로 필요합니다. (수백만 개의 행렬이 수행됨)
  2. 각 결정에서 i 행 행렬의 한 요소 만 필요합니다. 감사!

그러한 수백만 개의 행렬을 뒤집어 야합니까? 그렇지 않으면 속도는 문제가되지 않습니다.
Wolfgang Bangerth

명확성을 위해 제목과 질문을 편집했습니다. 내가 잘못했다면 알려주십시오.
제프 옥스 베리

@Wolfgang Bangerth 예, 속도를 고려해야합니다.
주문 :

1
역행렬의 어떤 요소가 필요한지 알고 있습니까? 아니면 무작위로 입력 할 수 있습니까?
Memming

2
@Orders 귀하의 의견과 편집 내용이 모순되는 것 같습니다 : 역의 요소 중 하나 또는 전부 가 필요합니까?
Federico Poloni 2016 년

답변:


12

관심있는 문제의 경우 행렬 크기는 30 이하입니다.

WolfgangBangerth에 따르면, 이러한 행렬 (수백만, 수십억)이 많지 않으면 행렬 반전 성능은 일반적으로 문제가되지 않습니다.

양의 명확한 대칭 행렬이 주어지면 역행렬과 행렬식을 계산하는 가장 빠른 알고리즘은 무엇입니까?

속도가 문제인 경우 다음 질문에 대답해야합니다.

  • 당신은 정말로 전체 역수가 필요합니까? (많은 응용 프로그램은 명시 적 역수를 형성 할 필요가 없습니다.)
  • 정말로 결정자가 필요합니까? (결정자는 드문 일이지만 계산 과학에서는 들어 본 적이 없습니다.)
  • 높은 정확도가 필요합니까? 정확도가 낮은 알고리즘은 더 빠른 경향이 있습니다.
  • 확률 적 근사치만으로 충분합니까? 확률 알고리즘은 더 빠른 경향이 있습니다.

작고 양의 명확한 행렬을 반전시키고 행렬식을 계산하는 문제에 대한 표준 응답은 Cholesky 분해입니다. 만약A=LLT그런 다음 det(A)=i=1nlii2및 입니다.det(A1)=i=1nlii2

가정하면 이고 에 의해 , 촐레 스키 분해는 주변에서 산출 될 수있는 LU 분해 비용의 절반에 대해 인 퍼. 그러나 이러한 알고리즘은 "빠른"것으로 간주되지 않습니다. 무작위 LU 분해Annn3/3(1) 실제로 많은 수의 행렬을 인수 분해해야하는 경우, (2) 인수 분해가 실제로 애플리케이션에서 제한적인 단계이며, (3) 무작위 알고리즘을 사용하여 발생한 오류가 허용됩니다. 행렬이 희소 알고리즘에 비해 가치가 적을 수 있으므로 더 빠른 알고리즘을 사용하려면 다른 매트릭스 구조 (예 : 밴딩) 또는 문제 구조를 활용해야합니다 (예 : 알고리즘을 영리하게 재구성하여 더 이상 역행렬 또는 행렬식을 계산해야합니다). 효율적인 결정 알고리즘은 대략 선형 시스템을 일정한 요소 내에서 해결하는 비용이므로 선형 시스템에 사용되는 것과 동일한 인수가 결정 요인 계산에도 적용됩니다.


다만 짧은 참고 : 만약 , 단일 소자 계산할 하나만을 계산한다 의 열째 . hole 레 스키 인수 분해가 계산되면, 이것은 모든 0의 rhs 벡터에 대해 순방향 및 역 치환 으로 행 에서 하나의 단일 벡터로 수행됩니다 . 계산은 다음과 같이 중단 될 수 있기 때문에 자마자 계산되어, 최상의 경우가있다 에 대한 최악 중 하나는 전체를 다시 계산해야하고 순방향 대체. B=A1bijjB제이나는제이=211
Stefano M

@StefanoM 더 좋은 점은 계산을 시작하기 전에 행렬을 퍼뮤 테이션하여 항상 최상의 상태를 유지할 수 있다는 것입니다.
Federico Poloni 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.