Game Development, 게임개발/게임 수학,물리

행렬, Matrix - 2, 가우스 요르단 소거법, 역행렬, 행렬식, Determinant [게임수학]

게임이 더 좋아 2021. 3. 12. 00:14
반응형
728x170

지난 번에는 연립 1차 방정식을 어떻게 행렬로 푸는지를 알아봤다.

 

하지만.. 연립 일차 방정식을 구하는 데 그치지 않았으니

 

역행렬까지 건드려버린 것이었다.

 

** 역행렬은 왜 정방행렬(정사각행렬) 밖에 없어요?? 라고 할 수 있다.

따지고 역으로 역행렬이 있는 행렬들을 보면 교환이 가능하다.

근데 만약 정방행렬이 아니라면 교환을 해도 과연.. 연산이 가능할까? 를 생각해보자.

 


 

가우스-요르단 소거법을 역행렬을 구하는 데 사용했다는 것인데

 

우선 주어진 행렬과 같은 크기의 항등행렬을 붙여서 확대 행렬을 만들고

원래 주어진 행렬을 기본 행 연산을 사용해서 기약 행 사다리꼴 형,으로 만든다.

이 과정에서 원래의 항등행렬의 성분들도 똑같은 기본 행 연산들에 의해 바뀌게 되는데

그것이 바로 주어진 행렬의 역행렬이 된다는 것이다.

 

??? 엥 그렇게 역행렬을 어떻게 구해???

 

원래 글로 봐서는 아무것도 모른다 예를 들어서 보자

 

 

확대 행렬을 만든다

 

E1, E2, E3는 이전 글의 기본 행 연산의 종류를 말한다.

 

기본 행 연산을 적용한다. -> 사다리꼴이 만들어짐

 

최종적으로 기약 행 사다리꼴까지 완벽해진다.

 

이렇게 역행렬이 나온다.

 

맞다. 

 


 

와.. 저렇게도 역행렬을 구할 수 있구나??

라고 생각하지만 생각 외로 더 많은 역행렬을 구하는 방법이 있다.

 

일전에 역행렬은 주어진 행렬과 곱해서 단위 행렬이 나오게 해주는 행렬이라고 했다. 

 

그에 따라서 많은 사람들의 연구가 있었고 역행렬을 구할 수 있는 공식이 나와버렸다.

 

2명의 수학자가 나오는데 한 명은 우리를 괴롭히지만 편하게 해주는 라플라스, 다른 한명은 크레이머가 있다.

한글로 하면 이름 선택의 여지가 많으니 본명도 같이 알아보자

크레이머, 크라메르, 크래머 막 이름이 많아서... 라플라스는 한 개인데 이 분은 여러 개라서 ㅎ

 

 

Laplace & Cramer

 

 

*** 3x3 4x4를 자주 사용하는 게임 개발쪽에서는 크레이머의 공식을 자주 쓴다고 한다.

-> 우리가 배워야 하는 이유.. 2차 3차 4차정도 까지는 크레이머가 더 빠르단다.

 


라플라스의 방법부터 알아보자

 

라플라스는 소행렬식(minor) 전개를 통해서 행렬식을 구할 수 있는 라플란스 전개(Laplace's expansion)을 만들었다.

++ 라플라스 전개는 혁신이었지.. 공대생들에겐???ㅋㅋㅋ

 

우선 2 by 2 행렬로 행렬식을 구해보자.

 

우리가 아는 행렬식이다.

 

행렬식은 행렬을 하나의 값으로 만드는 과정이라고도 볼 수 있다.

근데 우린 2차 행렬의 행렬식 밖에 모른다..

3차는 어떻게 하지..?

 

 

2개로 박살내서 조사한다. 

4차는? 박살내서 조사한다.

역시나 어떠한 행렬이라도 2by2로 박살낼 때까지 계산하고 그후 값을 return 하는 재귀함수 같은 느낌적인 느낌

일반화하면 ? 아래와 같은 수식이 나온다.

 

 

왜 2개가 나오느냐? 행을 기준으로 할 것인지 열을 기준으로 할 것인지가 달라서 2개다.

결국 같다.

 

??? Mij는 안알려줬는데?? 저게 뭐지??

쟤는 cofactor라고 해서 우리말로 여인수라는 뜻이다. (정확히는 Cij가 여인수)

즉, M11이라면? 행렬에서 1행과 1열을 제외하고 남은 행렬부분을 뜻한다.

거기다 행과 열에 따라 부호도 바뀐다.

 

 

 

궁금하면 해보자.. 아무거나 예로 잡아서 해보면 이해된다.

 

 


 

그런데 여기서?? 크레이머가 무엇인가를 발견했다.

 

라플라스 전개를 여인수의 관점에서 다시 생각해보자

 

각각의 행렬 성분에 대응하는 여인수들로 행렬 L을 만들어보자

 

 

그 후 원래 행렬과 L의 전치행렬을 곱해준다.

 

 

 

?? 뭐하는거지???

 

짠!

요리완료

 

주대각성분들이 행렬식이 되었다. 이는 곱셈의 결과가 라플라스 전개와 같기 때문에 나온 것이다.

반대로 다른 성분들이 0인 이유는 i행의 성분들로 전개한 여인수들을 i와 다른 행의 성분들과 곱하면 반드시 0으로 나와서 그렇다.

 

그래서 우리가 만든 L의 전치행렬을 따로 부르는 이름이 있다.

수반행렬, adjugate matrix 라고 부른다.

그래서 앞글자를 따서 adj(A)가 바로 여인수로 이루어진 행렬의 전치행렬이 된다.

 

아 행렬식을 이런식으로도 구하는구나? 를 넘어서 역행렬까지 구하는 것이어서 그 의미가 있다.

 

 

역행렬을 구하는 방법이 됐다.

아.. 그냥 끼워맞춘거라고??? 라고 생각할 수 있다.

 

하지만 나에겐 100일을 주더라도 발견못할 것 같다.

그만큼 수학에 대해 깊이 생각해보지 않으면 끼워맞출 수도 없다.

 


 

크레이머가 얼마나 간단한 것인지 다시 한 번 강조하자면

 

 

이러한 행렬 곱의 연산, 즉 행렬식을 이용해서 해를 바로 구할 수 있다는 것이다.

 

 

하지만 0으로 나누는 것은 수학에서 금기시 되어 있기 때문에

행렬식의 값이 0으로 나오는 것을 주의해야 한다.

 

하.. 2차,3차,4차 행렬은 이 너굴맨이 맡을테니 걱정말라구!

 

얘도 크레이머 방법 쓴단다.

 

 


참고링크

 

ko.wikipedia.org/wiki/%EB%9D%BC%ED%94%8C%EB%9D%BC%EC%8A%A4_%EC%A0%84%EA%B0%9C

 

728x90
반응형
그리드형