아두이노프로세싱 프로그래밍

MINVERSE 와 MMULT엑셀명령을 사용한 매트릭스 연산:

coding art 2019. 2. 10. 16:07
728x90

이미 아두이노 C/C++을 사용하여 매트릭스 연산을 위한 어레이를 설정하고 매트릭스 요소 값들을 입력한 후 매트릭스 연산 룰에 따라 코딩하여 실행 후 결과를 출력하여 보았다. 이번에는 보다 HIGH LEVEL  언어라 할 수 있는 엑셀 명령을 사용하여 매트릭스 곱하기 연산을 해보자. 엑셀이 머신 러닝과 얼마나 깊은 관계를 맺고 있을지는 모르겠으나 머신 러닝이 워낙 매트릭스 연산을 바탕으로 하고 있으므로 쉽게 배울 수 있는 엑셀을 사용하여 매트릭스 연산 수학에 대한 감을 가져가지 위한 작업으로 생각하자.

매트릭스 곱하기
엑셀 스프레드쉬트에서 2x3 매트릭스 A 와 3x2 매트릭스 B를 정의 후 ‘=MMULT’ 명령을 사용하여 AxB 하여 2x2 매트릭스 C를 얻어보자. 매트릭스 결과가 2x2 로 얻어지므로 C  매트릭스 해당 영역을 클릭하여 활성화 시킨 후 입력 창에서 ‘=MMULT(’ 를 입력 후 A 매트릭스 해당 영역을 클릭하여 활성화 시키면 B5:D6 로 표기된다. ‘,’ 를 입력 후 B 매트릭스 해당 영역을 클릭하여 활성화시키면 F5:G7 이 입력된다. 이 시점에서 Cntr+Shift+Enter 하면 C 매트릭스 영역에 값들이 채워진다. 이놈의 엑셀 얼마나 많은 단축 키들을 사용했으면 Cntr+Shift+Enter 키 밖에 더 남은 단축 키는 없는 듯.



해보니 엑셀의 매트릭스 곱셈 기능은 아주 마음에 들 정도로 산뜻하군요.


선형 방정식의 매트릭스 표현 및 매트릭스 인버스에 의한 해법

그렇다면 한발 더 나아가 선형 방정식(Systems of Linear Equations)을 매트릭스 형태로 표현 후 매트릭스이 인버스를 사용하여 선형 방정식의 해를 구해 보자.



매트릭스 표현 AX = B 의 해 X는 A 매트릭스의 역(Inverse)을 구해서 곱해주면   얻어진다. A 매트릭스의 역(Inverse)과 A를 곱해주면즉 대각선 성분이 1.0 인  단위 매트릭스 I 가 얻어지며 IX = X 가 된다.
마지막으로 A 매트릭스의 역(Inverse)이 엑셀 명령 MINVERSE 에 의해서 구해지면 B 매트릭스와 곱셈에 의해서 해인 X 매트릭스가 얻어지게 된다.




A 매트릭스의 역(Inverse)이 얻어지면 B 매트릭스와의 곱셈에 의해서 X 값이 얻어질 수 있다.



한가지 확인해봐야 할 점은 A 매트릭스와 A의 인버스 매트릭스를 곱해서 단위 매트릭스가 얻어지는가 하는 점이다. 다음의 결과를 참조하자.