2장 행렬 대수

Posted by 쏘엔
2019. 3. 13. 16:33 DirectX 12/기초 수학

이 포스팅의 내용은 DirectX 12를 이용한 3D 게임 프로그래밍 입문 (프랭크 D. 루나 저) 책과 인터넷을 참고하여 간단히 정리하였다.


  • 행렬의 정의
 m x n 행렬(matrix) M은 m개의 행(row)과 n개의 열(column)로 이루어진 실수들의 정사각 배열이다. 행들의 개수와 열들 개수의 곱(이를테면 4 x 4)을 행렬의 차원이라고 부른다. 행렬을 구성하는 수들을 성분(entry) 또는 원소(element)라고 부른다.
행렬의 한 성분을 나타낼 때는  이런 형태로 표기한다. 아래 첨자 첫 번째는 행이고 두 번째는 열이다. (i가 행, j가 열)


예)


행렬 A는 4 x 4 행렬이고, 4행 3열 즉, 은 를 의미한다. 특히, 행과 열의 갯수가 같은 행렬을 정방행렬(square matrix)라고 한다.



  • 행렬의 상등, 덧셈, 스칼라 곱셈, 뺄셈의 연산
1. 두 행렬이 같은 조건은 두 행렬의 행과 열의 갯수가 같아야 하며(즉, 두 행렬의 차원이 같아야 한다.) 대응되는 성분들이 모두 같아야만 두 행렬은 같다고 한다.

2. 두 행렬을 더할 때는 대응되는 성분들을 더한다. 따라서 차원이 같은 행렬들만 더할 수 있다.

3. 행렬에 하나의 스칼라를 곱할 때는 행렬의 모든 성분에 그 스칼라를 곱한다.

4. 행렬의 뺄셈은 스칼라 곱셈과 행렬 덧셈으로 정의한다. 즉, A - B = A + (-1 · B) = A +(-B) 이다.

예)

위와 같은 행렬이 있을 때


1. A + B = 


2. A = C


3. 3D = 


4. A - B = 


행렬 덧셈과 스칼라 곱셈은 성분별로 이루어지므로, 행렬 덧셈과 스칼라 곱셈도 실수의 덧셈 및 곱셈의 다음과 같은 성질들을 만족한다.

1. A + B = B + A                    덧셈의 교환법칙

2. (A + B) + C = A + (B + C)     덧셈의 결합법칙

3. r(A + B) = rA + rB               행렬들에 대한 스칼라의 분배법칙

4. (r+s)A = rA +sA                  스칼라들에 대한 행렬의 분배법칙


  • 행렬의 곱셈
A가 m x n 행렬이고, B가 n x p 행렬이면 둘의 곱 AB가 정의된다. 곱 AB는 하나의 m x p 행렬이다. 두 행렬의 곱을 C라고 할 때, C의 ij번째 성분은 A의 i번째 행벡터와 B의 j번째 열벡터의 내적이다.

즉, 이다.

행렬 곱 AB가 정의되려면 A 행렬의 열의 개수B 행렬의 행의 개수가 일치해야 한다. 차원이 일치하지 않으면 두 곱은 정의되지 않는다.


예)

이 두 행렬이 있을 때 A의 열의 개수는 2이고, B의  행의 갯수는 3이므로 곱셈이 정의되지 않는다.


이 두 행렬이 있을 때 A의 열의 개수는 3이고, B의 행의 갯수는 3이므로 두 행렬의 곱셈이 정의된다.

주의할 점은 곱 BA는 정의되지 않는다. 왜냐하면 B의 열 개수는 3이지만, A의 행 개수는 2이기 때문이다. 이렇듯 행렬의 곱셈은 일반적으로 교환법칙이 성립하지 않는다.



  • 분배법칙과 결합법칙
행렬 곱셈에는 몇 가지 대수적 성질이 존재하는데, 우선 행렬 곱셈은 덧셈에 대한 분배법칙을 만족한다.
즉, A(B + C) = AB + AC이다.
또, 결합법칙을 만족하기 때문에 행렬을 곱하는 순서를 적절히 선택할 수 있다.
(AB)C = A(BC)


  • 전치행렬(transpose matrix)

행렬의 전치(transpose), 즉 전치행렬은 행렬의 행들과 열들을 맞바꾼 것이다. 따라서 m x n 행렬의 전치는 n x m 행렬이다. 행렬 M의 전치행렬을 로 표기한다.

예)

이 행렬의 전치행렬을 구하면

이렇게 된다.


전치행렬의 유용한 성질

1. 

2. 

3. 

4. 

5. 


  • 단위행렬(identity Matrix)
단위행렬은 정방행렬(열 개수와 행 개수가 같은 행렬)에서 좌상에서 우하로의 대각선에 있는 성분(이를 주대각(main diagonal) 성분이라 한다.)들을 1로 채운 행렬을 말한다.
즉, 단위행렬은 좌상에서 우하로의 대각선 성분들만 1이고 나머지는 0인 정방행렬이다.
예)

2 x 2, 3 x 3, 4 x 4의 단위행렬이다.


단위행렬은 곱셈의 항등원 역할을 한다.

A가 m x n 행렬이고, B가 n x p 행렬, I가 n x n의 단위행렬이면 반드시

AI = A이고 IB = B이다.

다른 말로 하면, 어떤 행렬에 단위행렬을 곱해도 그 행렬은 변하지 않는다.

특히, M이 정방행렬일 때 단위행렬과의 곱셈은 교환법칙이 성립한다.

IM = MI = M


  • 행렬식(determinant)
행렬식의 정의는 '정방행렬을 입력받아서 실숫값을 출력하는 특별한 함수'이다. 정방행렬 A의 행렬식은    det A    로 표기한다.
행렬식은 행렬의 역을 구할 때 사용된다. 또한 다음과 같은 정리가 있다.
정방행렬 A는 만일 이면 그 때에만 역행렬이 존재한다. (가역행렬이라고도 한다)

행렬식을 정의하기 전에 소행렬이라는 개념부터 알고 가는 게 좋을 것 같다.


  • 소행렬(minor matrix)

n x n 행렬 A가 주어졌을 때, 그 소행렬 는 A의 i번째 행과 j번째 열을 삭제해서 나온 (n - 1) x (n - 1) 행렬이다.


예)

이런 행렬이 있을 때, 각각의 소행렬은 다음과 같다.


  • 행렬식의 정의
행렬의 행렬식은 재귀적으로 정의된다. 예를 들어 4 x 4 행렬의 행렬식은 3 x 3 행렬의 행렬식들로 정의되고, 3 x 3 행렬의 행렬식은 2 x 2 행렬의 행렬식들로 정의된다.

공식)
A가 n x n 행렬이고, n > 1일 때, A의 행렬식은

예)

이 행렬의 행렬식을 구하라

2 x 2 행렬의 행렬식을 계산할 때는 ad - bc를 해주면 된다.



  • 딸림행렬(adjoint matrix)

A가 n x n 행렬이라고 할 때, 곱 를 의 여인수(cofactor)라고 부른다.

A의 각 성분에 여인수 를 계산해서 해당 번째 위치에 넣은 행렬을 여인수 행렬(cofactor matrix)이라고 부른다.

↑여인수 행렬


그리고 이 여인수 행렬의 전치행렬을 딸림행렬이라고 부르고 다음과 같이 표기한다.

딸림행렬을 이용하면 행렬의 역을 계산하는 공식을 이용할 수 있다.


  • 역행렬(inverse matrix)
행렬 대수에서 곱셈의 역원을 행렬의 역(inverse) 또는 역행렬이라고 부른다.

다음은 역행렬의 주요 정보이다.
1. 역행렬은 정방행렬에만 있다. 따라서 역행렬이라 하면 정방행렬이라는 의미가 내포되어있는 것과 같다.

2. n x n 행렬 M의 역은 n x n 행렬이며, 로 표기한다.

3. 모든 정방행렬에 역행렬이 있는 것이 아니며, 역행렬이 있는 행렬을 가역행렬(invertible matrix)이라고 부르고, 역행렬이 없는 행렬을 특이행렬(singular matrix)이라고 부른다.

4. 역행렬이 존재하는 경우 그 역행렬은 고유하다.

5. 행렬에 그 역행렬을 곱하면 단위행렬이 나온다. 즉, 이다. 행렬과 그 역행렬의 곱셈은 행렬의 곱셈에서 교환법칙이 성립하는 특이한 경우다.


지금까지 소행렬과 행렬식, 딸림행렬을 공부한 이유는 역행렬의 공식을 사용하기 위함인데, 역행렬의 공식은 다음과 같다.

역행렬 공식)

참고로 4 x 4 행렬 이하의 경우 딸림행렬을 이용한 계산법이 효율적이지만, 그 이상의 행렬을 처리할 때에는 가우스 소거법 같은 방법이 쓰인다.


마지막으로, A와 B가 같은 차원의 가역 정방행렬이라 할 때 다음 성질이 성립한다.


증명)


'DirectX 12 > 기초 수학' 카테고리의 다른 글

3장 변환  (0) 2019.03.24
1장 벡터 대수  (0) 2019.03.13