2012-06-27 2 views
2

고유 함수와 고유 벡터를 계산하기 위해 C로 작성된 함수가 있지만이 함수를 다른 알고리즘의 일부로 여러 번 호출하므로 많은 CPU 시간이 필요합니다. Apple에 따르면 Accelerate framework은 BLAS 및 LAPACK을 사용하여 매우 빠른 매트릭스에서 고유 값을 찾는 데 사용할 수 있습니다.Accelerate 프레임 워크를 사용하여 행렬에서 고유 값과 고유 벡터를 찾는 방법은 무엇입니까?

Accelerate 프레임 워크를 처음 접했을 때 정사각형 매트릭스의 고유 값과 고유 벡터를 찾기 위해 어떤 함수를 사용해야합니까?

답변

3

분해 할 매트릭스의 문자에 따라 조금씩 다릅니다. Lapack에는 대칭/Hermitian 행렬, banded 대각 행렬 또는 일반 행렬에 대한 루틴이 있습니다. 일반적인 행렬 (특정 구조가없는)이있는 경우 일반화 된 Schur 분해 루틴을 사용해야합니다. 이 루틴은 단정도와 배정도로 나뉘며 실수 또는 복잡한 요소가있는 행렬로 나뉩니다. Lapack도 마찬가지입니다.

일반적인 고유 - 문제 솔버 루틴이 명명되어 SGEEV CGEEV DGEEV ZGEEV을 여기서 S = 단정 실제 C = 단정 복잡 D = 배정도 실제 Z = 배정도 착체.

IBM은 lapack에 대한 좋은 온라인 참조 (here's)에 위의 루틴을 설명하는 링크가 있습니다.

행운을 빈다.

+2

이것은 좋은 대답입니다. 필자는 Accelerate 프레임 워크의 LAPACK 함수가 (C에서 일반적인 것처럼) 행 우선 순위가 아닌 ** 열 - 주요 ** 순서 (Fortran에서와 같이)의 데이터를 기대한다고 강조합니다. 이것은 신규 이민자에게 가장 큰 혼란과 오류의 원인입니다. – warrenm

+0

매우 좋은 점 warrenm - 그 위로 쌓이는 것은 두통 일 수 있습니다. – Paul

+0

답변을 주셔서 대단히 감사합니다. – pradeepa

관련 문제