2014-02-15 7 views
1

PCA를 프로그래밍 할 예정이지만,이를 위해 고유 벡터와 고유 값을 계산해야합니다.PCA에서 결정 인자를 계산하는 방법은 무엇입니까?

내 질문은 모든 (대각선 값 - lamda) 행렬의 행렬식을 계산해야하는 고유 값을 계산하는 것입니다.

이 경우 우리는 매트릭스 차원에 따라 lamda의 수를 고려할 수 있습니다.

나는 대각선이 람다에 의해 빼기 전에 matriks에 대해 수동으로 프로그래밍 할 수 있습니다.

그러나 대각선을 람다에 의해 뺄셈 한 후에 어떻게 계산합니까 ??

결국 우리는 lamda (x1, x2, .., xn)를 얻기 위해 factorisation을 수행해야하기 때문에.

 Matriks =[ 3 5 6 
       5 7 4 
       3 8 9] 

그렇다면 우리는 그것을 knoen를 havent 때문에,이 경우, 고유 값 대각 값을 빼지 위해, 우리는 X로 고려할 것이다 : 여기

는 예이다.

 Matrix_New=[ 3-x 5 6 
        5 7-x 4 
        3 8 9-x] 

그리고 행렬식 (3-X) (X-7) (X-9).

이미 곱하려고했지만 matlab에 오류가 있습니다. 계산 방법 (3-x)을 알고 계십니까? (7-x) (9-x) ??

나는 matlab 함수가 있다는 것을 알고 있지만 그것을 사용하는 것은 허용되지 않는다 !!

은 정말 당신이있는 경우는, 상징적 인 도구 상자를 사용할 수 있습니다 도움 :

답변

0

을 appriciate.

http://www.mathworks.com/help/symbolic/mupad_ref/linalg-det.html

그런 다음 당신은 다항식의 뿌리를 찾을 수있다.

기호 도구 상자가 없다면 직접 프로그램을 만들어야한다고 생각합니다. 한 가지 옵션은 부 확장을 사용하는 것입니다.

추신 : 그렇지만 결정자의 가치는 정확하게 평가되지 않습니다.

+0

질문에 "나는 matlab 함수가 있다는 것을 알고 있지만 그것을 사용하는 것이 허용되지 않습니다!" [sic] –

+0

@ user3303896 업데이트보기! – DanielTheRocketMan

+0

이 예제가 있습니다. A = sym ('[w 1; 2 w]'); solve (det (A), 'w') ... 하지만 B = sym ('[e 1; 2 r]'); 해결 (det (B), 'e', ​​'r') 오류가 발생합니다. 'e'는 첫 번째 대각선 값을 나타내며 'r'은 두 번째 대각선 값을 나타냅니다. -x – user3303896