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

행렬, Matrix - 1, 연립1차방정식, 가우스 소거법 [게임수학]

게임이 더 좋아 2021. 3. 11. 19:49
반응형
728x170

 

라떼는.. 수1이라는 고교과정에서 배웠는데.. ㅋㅋㅋㅋ

지금은 없어졌다 하대?

아무튼 어차피 그 행렬은 행렬도 아니었다.

 

왜 벡터 이후에 행렬을 공부하냐?

벡터가 행렬에 적용되는 것을 보면 그런 말 안나온다.

 

다시 백지부터 시작해보자

 


 

행렬은 row, column 으로 이루어져 있고 가로 세로로 나누어져 있다.

**무엇이 가로이고 세로인지 모를 땐 (가로 횡) 한자를 기억하자.

가로가 행, column 이다. 세로가 렬, row 이고

 

기본적으로 행렬은 연립 1차 방정식을 풀기 위해 나타낸 개념이다.

실제로 우리가 2차 행렬을 배울 때만해도 이게 다인 줄 알았다.

 

그렇게 행렬은 이어져 내려오다가 어떤 수학자에 의해 선형 변환들의 조합을 연구하다 행렬 곱셈의 정의를 이끌어 냈다고 한다.

그래서 벡터와 선형 변환을 행렬로 표현하게 되는 것이다. (이게 기벡에서 배운 1차 변환이라고 할 수 있다)

 


 

행렬이 어떻게 생긴지 부터 알아보자

 

일반적으로 행을 m 개 가지고 열을 n개 가지는 행렬을 m x n 행렬이라고 한다.

위키백과

 

- m = n 일 때, 우리는 이를 정방행렬(square matrix)라고 부른다.

- 행렬의 모든 요소가 0일 때는 영 행렬(zero matrix)라고 한다.

** 0은 어디서나 중요하다.ㅎ

 


 

그 행렬 가지고 무슨 연산이 가능한데??

 

기본적인 연산으로는

행렬의 합과 스칼라와 행렬의 곱이다.

 

 

행렬의 합은 두 행렬의 각각 대응되는 요소들을 더해서 새로운 행렬을 만드는 것을 의미하는데

**대응된다는 것은 피연산되는 것들이 행렬의 행의 개수와 열의 개수가 같음을 의미한다.

 

 

 

 

 

스칼라와 행렬의 곱은 단순히 행렬의 각 요소에 스칼라 곱을 곱해주면 끝이다.

 

 

 

기본 행렬의 모습과 기본 연산을 알았으니

응용으로 넘어가야겠지??

 


 

응용된 행렬의 모습에는 무엇이 있을까?

 

행 벡터와 열 벡터라는 것이 있다.

하나의 행만 존재하거나 하나의 열만 존재하는 행렬을 의미한다.

 

행 벡터
열 벡터

 

** 행렬과 벡터와의 관계를 알았으니 이제 행렬을 벡터라고 불러도 이상하지 않을 것이다.

 

또한 전치 행렬, Transpose matrix 란 것이 있다.

 

 

근데 만약 전치 행렬한 행렬이 원래 자신의 행렬과 같다면 그것을 대칭 행렬, Symmetric matrix라고 부른다.

 

 

그리고 행과 열의 번째수가 같은 성분, 즉 n번째 행의 n 번째 열 성분들을 주대각 성분(main diagonal) 이라고 한다.

++ 꼭 정방행렬에만 있는 것은 아니다. 위의 조건만 만족하면 주대각 성분은 어디든 존재한다.

 


이제는 응용 연산을 알아보자.

 

바로 행렬의 곱이다.

정의는

 

보면 알다시피 k가 중복된다.?

즉 두 행렬을 곱하는 것이 성립하려면

앞 행렬의 열의 개수와 뒤 행렬의 행의 개수가 일치해야 함이 곱이 되는 조건임을 알 수 있다.

 

앞 행렬의 열 개수 3

뒤 행렬의 행 개수 3

-> 행렬 곱 가능

 

어?? 이렇게 까다로우면 ... 교환법칙은 안되겠는걸?

정답 교환법칙은 일반적으로는 성립하지 않는다

**다만 특수한 경우에 교환법칙이 성립한다.


++ 다만 행렬 곱에서 전치행렬은 약간 여집합같은 느낌의 관계를 보인다.

신기하다고 생각하고 재밌어진다면 특이 케이스

 

 

또한 항등원이 존재한다.

영행렬이 덧셈에 항등원이라면

행렬 곱의 항등원은 항등 행렬, identitiy matrix 가 존재한다. 대문자 I를 쓴다. unit matrix라고 단위 행렬이라고도 한다.

주대각성분이 1이고 나머진 0인 것을 알 수 있다.

 

반대로 항등원이 나왔으면 역원이 나올 차례이다.

행렬 곱에서 역원은 역행렬, inverse matrix 이라고 한다.

 

곱의 결과가 단위 행렬이 나오는 것이다.

아까 일반적으로 행렬 곱에서는 교환법칙이 성립하지 않는다고 했다.

 

 

근데 결과를 보니까? 교환법칙이 성립한다. 

-> 역행렬이 있다면 교환법칙이 성립할 수 있다

 

역행렬의 성질은 여러가지가 있다.

 

다만 모든 행렬이 역행렬을 가지는 것은 아니다.

때문에 행렬은 다시 2가지로 나눌 수 있는데

역행렬이 없는 특이 행렬, singular matrix

역행렬이 있는 가역 행렬, invertible matrix 또는 반특이 행렬, non-singular matrix

라고한다.

 

행렬의 곱이 핵심이다.

또한 역행렬은 그에 따라서 중요해진다.

 

 

 


 

다시 돌아가보면, 행렬은 연립 1차 방정식의 해를 구하기 위해 쓰였다고 했다.

그럼 어떻게 해를 구했을까?

** 왜 행렬로 푸냐?  -> 시간 절약, 편리

 

 

우선 연립 선형 방정식이라는 것이 있다.

**산형 방정식이란 1차식들로만 구성됨을 뜻한다. (system of linear equations)라고도 한다.

 

이러한 식들을

 

 행렬로 나타낸 후

계수 행렬 따로, 미지수 행렬 따로, 상수행렬 따로 이렇게 나누어놨다.

 

-전진 소거법, forward elimination

-후진 대입법, backward substitution

의 방법을 적용하여 푸는 것이다.

 


 

먼저 전진 소거법부터 알아보자

 

전진 소거법을 위해서는 위의 행렬을 확대 행렬, augmented matrix로 바꿔야 한다.

++확대행렬이란 두 행렬의 열 성분들을 붙여서 만들어진 행렬을 말한다.

여기서는 계수 행렬과 상수 행렬을 붙여서 만드는데 이용한다.

 

 

이런 확장행렬들을 기본 행 연산을 이용해서 행 사다리꼴 형, row echelon form으로 만드는 것이 전진 소거법이다.

-> 이게 곧 가우스 소거법이다.

 

기본 행 연산이 무엇이냐? 3가지 종류가 있다.

** 이러한 행 연산을 한다고 해서 해가 달라지지는 않으므로 이용해도 좋다.

 

3가지나 있다.

 

잠깐 생각해봐도 3가지를 한다고 해서 해가 바뀌지 않는 것은 당연하다.

 

다만 이는 왜 하는지가 중요하다.

바로 사다리꼴 형태로 만들기 위함인데..?

이는 아래 같은 것을 말한다.

 

 

 

1이 대각선으로 이루어지면서 마치 사다리꼴 의 대각선 방향의 변의 모양이 되어간다.

여기서 이렇게 변화시키기 위해 중요한 것이있다.

 

여기서 가우스 요르단 소거법의 조건이 나오는데 이렇게 되면 사다리꼴도

행 사다리꼴이지만 기약 행 사다리꼴, reduced row echelon form 이 나온다.

 

밑에 조건들이 가우스 요르단 소거법의 원리다.

 

1. 그 행에서 가장 첫번째로 나타나는 수를 1로 만들고  그 열은 나머지는 0이 되게 한다.

**가장 처음 등장하는 계수를 leading coefficient 또는 pivot이라고 한다.

 

2. 가장 첫번째로 나타나는 1에 대해서 이전의 1 위치보다 한칸 이상 뒤로 가게 한다.

 

3. 영 행렬은 가장 밑으로 내린다.

 

 

-> 사다리꼴 완성!

 

 

즉, 행 연산을 사용해서 위 조건을 만족하는 사다리꼴을 만드는 것이다.

** 행 사다리꼴 형이란 주대각성분들을 모두 1로 만드는 작업이라고 생각하면 쉽다.

 

예를 들어서 

행연산 3가지를 각각 E1, E2, E3라고 해보자

 

 

이러한 식으로 사다리꼴 형태로 만든다.

 

**뭐 얘는 기약 행 사다리꼴 형태는 아니다.

 

?? 그래서 뭐?

 

아.. 그렇게 정리 잘하면 해가 잘 구해진다. ㅎㅎㅎ

 

벌써 z=-1인걸 구했네? 굿굿

-> 2. 가장 첫번째로 나타나는 1에 대해서 이전의 1 위치보다 한칸 이상 뒤로 가게 한다.

이 규칙에 의해 하나는 구해지는 것이다 ㅎ

 


 

이제 나머지는 후진 대입법에 맡기자.

후진 대입법이란. 전진 소거법을 거쳐서 나온 식들을 대입해서 푸는 것이다.

++이걸 법이라고 굳이 해야하냐? 라고 하지만 악법도 법이듯이 대입법도 법이다.

 

z = -1인거 알았고

 

 

 

연립 1차 방정식 해 구하기 끝!

 

 


 

가우스 소거법 + 가우스 요르단 소거법을 중간 중간에 설명해봤다.

뭐 아직까진 기초의 내용이지만 결국 위의 소거법 역시 연립 일차 방정식의 해를 구하기 위해 하는 것이다.

 

사실 중요한 것은 가우스 - 요르단 소거법을 역행렬을 구하는 데 사용하는 것인데이는 다음 글에서 배워보자.

 

 

 


참고링크

수학으로 시작하는 3D 게임 개발

ko.wikipedia.org/wiki/%ED%96%89%EB%A0%AC

728x90
반응형
그리드형