2011-09-16 1 views
1

저는 컴퓨터 그래픽에서 충돌 과정을 밟고 있으며 2D 변환을 다루었으며 강사는 행렬의 역행렬을 계산하는 것이 계산적으로 더 집중적이라고 지적했습니다. 왜냐하면 직교 행렬은 계산에 유용하기 때문입니다 (직교 행렬의 전치는 역이기 때문에). 시간 제약과 수업의 성격 때문에 그는 왜 이런 일이 일어 났는지에 대한 세부 사항을 언급하지 않았으며 여기있는 사람이 그렇게 할 수 있을지 궁금해하고있었습니다.행렬 전치의 계산 강도와 역수 계산

저는 각 프로세스에 관련된 CPU/GPU 명령의 차이점에 대해 특히 관심이 있습니다. 또는 잘못 입력 한 경우 병목 현상이 발생하는 스택에서 가장 낮은 수준입니다. 나는 또한 모든 종류의 자원, 책, 웹 사이트 등의 학습에 관심이 있으며, 이러한 종류의 실수/병목 현상에 대해 더 많이 배울 수 있습니다.

답변

2

는 최악의 오 (N 2) 동작은 일반적인 정칙 N에서의 X N 행렬의 역행렬을 계산, 반면 O (N 3) 연산 인되는 N × N 행렬 전치하면된다. 이것은 이러한 일을하는 데 드는 비용입니다.

제쳐두고, 대부분의 응용 프로그램은 역 시스템을 찾지 않고 선형 시스템 Ax = b를 해결하기 때문에 행렬 역산을 계산하지 않습니다. 분해와 삼각형 해결법을 사용하여이 문제를 해결하는 것이 더 빠르고 정확합니다 (예 : 일반적인 비의 법칙 행렬에 대해서는 LU decomposition 참조). 행렬 역함수는 Gauss-Jordan elimination을 사용하여 계산할 수 있습니다 (다른 방법과 마찬가지로).

사용할 수있는 루틴은 LU 분해 (아마도 행렬 역변환)를 계산하는 데 사용할 수있는 LAPACK 구현을 찾을 수 있습니다.

1

행렬 행렬은 단순히 행렬의 원소 쌍을 교환하는 것과 관련이 있습니다. 즉 데이터 이동과 계산이 필요하지 않습니다. 행렬 역함수 OTOH는 많은 양의 계산이 필요합니다.