[알고리즘]

행렬 제곱 계산 방법

Neo Park 2012. 10. 25. 09:44

 

행렬에서는 그 특유의 성질로 인해 실수에서의 지수법칙, 교환법칙 등이 성립하지 않습니다.
그래서 행렬의 n제곱을 구할 때에는 노가다로 성분끼리 곱하여 더해 제곱한 행렬을 구하는 경우가 많습니다.
하지만 일반 제곱식을 구할 경우, 수1에서 배울 수 있는 [케일리-해밀턴의 정리]를 활용하여 실수배와 덧셈 뺄셈만으로도 제곱한 행렬을 구할 수 있습니다!!
행렬 A를 다음과 같은 이차정사각행렬으로 둡시다.
더블클릭을 하시면 이미지를 수정할 수 있습니다
케일러-해밀턴의 정리에서 유도한 행렬식 A^2=(a+d)A-(ad-bc)E로 제곱된 값을 구할 수 있습니다.
즉,
예를 들어 행렬 더블클릭을 하시면 이미지를 수정할 수 있습니다의 제곱을 위의 케일리-해밀턴의 정리를 사용해 구하면
더블클릭을 하시면 이미지를 수정할 수 있습니다
이렇게 행렬의 곱셈같이 복잡한 방법을 이용하지 않고도, 행렬의 실수배와 행렬간의 덧셈만으로 행렬의 제곱을 구했습니다.
알고 계신 분도 많았겠지만, 복잡한 행렬의 제곱을 간단하게 구하고 싶으시다고 하실 분께 유용한 팁이 되었으면 좋겠습니다.

 

 

참조 : http://comgay.tistory.com/entry/%EC%88%981-%ED%96%89%EB%A0%AC%EC%9D%98-%EC%A0%9C%EA%B3%B1%EC%9D%84-%ED%96%89%EB%A0%AC%EC%9D%98-%EC%8B%A4%EC%88%98%EB%B0%B0%EC%99%80-%EB%8D%A7%EC%85%88%EB%A7%8C%EC%9C%BC%EB%A1%9C-%EA%B5%AC%ED%95%B4%EB%B3%B4%EC%9E%90