작성자: admin 작성일시: 2016-05-17 11:37:04 조회수: 1088 다운로드: 41
카테고리: 기초 수학 태그목록:

행렬의 연산과 성질

행렬에는 곱셈, 전치 이외에도 지수 함수 등의 다양한 연산을 정의할 수 있다. 각각의 정의와 성질을 알아보자.

행렬의 부호

행렬은 복수의 실수 값을 가지고 있으므로 행렬 전체의 부호는 정의할 수 없다. 하지만 행렬에서도 실수의 부호 정의와 유사한 기능을 가지는 정의가 존재한다. 바로 행렬의 양-한정(positive definite) 특성이다.

모든 실수 공간 $\mathbb{R}^n$ 의 0벡터가 아닌 벡터 $x \in \mathbb{R}^n$ 에 대해 다음 부등식이 성립하면 행렬 $A$ 가 양-한정(positive definite)이라고 한다.

$$ x^T A x > 0 $$

만약 이 식이 등호를 포함한다면 양-반한정(positive semi-definite)이라고 한다.

$$ x^T A x \geq 0 $$

예를 들어 단위 행렬은 양-한정이다.

$$ x^TI x = xT \begin{bmatrix} 1&0&\cdots&0\\ 0&1&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\cdots&1\\ \end{bmatrix} x = x_1^2 + x_2^2 + \cdots + x_n^2 > 0 $$

다음과 같은 행렬도 양-한정이다.

$$ M = \begin{bmatrix} 2&-1&0\\-1&2&-1\\0&-1&2 \end{bmatrix} $$
$$ \begin{align} x^{\mathrm{T}}M x &= \begin{bmatrix} (2x_1-x_2)&(-x_1+2x_2-x_3)&(-x_2+2x_3) \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} \\ &= 2{x_1}^2 - 2x_1x_2 + 2{x_2}^2 - 2x_2x_3 + 2{x_3}^2 \\ &= {x_1}^2+(x_1 - x_2)^{2} + (x_2 - x_3)^{2}+{x_3}^2 \geq 0 \end{align} $$

연습 문제 1

다음 행렬을 양-한정, 양-반한정 혹은 아무것도 해당되지 않는지 판단하라.

$$ \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} $$

행렬의 크기

행렬에는 크기 개념과 유사하게 하나의 행렬에 대해 하나의 실수를 대응시키는 norm, 대각 성분(trace), 행렬식(determinant)에 대한 정의가 존재한다.

행렬 Norm

행렬의 norm 정의는 다양하지만 그 중 많이 쓰이는 induced p-norm 정의는 다음과 같다.

$$ \Vert A \Vert_p = \left( \sum_{i=1}^m \sum_{j=1}^n |a_{ij}|^p \right)^{1/p} $$

이 중 $p=2$인 경우는 특별히 Frobenius norm 이라고 불리며 다음과 같이 표시한다.

$$ \Vert A \Vert_F = \sqrt{\sum_{i=1}^m \sum_{j=1}^n a_{ij}^2} $$

NumPy에서는 linalg 서브패키지의 norm 명령으로 Frobenius norm을 계산할 수 있다.

In [5]:
A = (np.arange(9) - 4).reshape((3, 3))
A
Out[5]:
array([[-4, -3, -2],
       [-1,  0,  1],
       [ 2,  3,  4]])
In [6]:
np.linalg.norm(A)
Out[6]:
7.745966692414834

대각 성분

대각 성분(trace)은 행렬의 크기를 결정하는 숫자 중 하나로 정방 행렬(square matrix)에 대해서만 정의되며 다음과 같이 대각 원소(diaginal)들의 합으로 계산된다.

$$ \operatorname{tr}(A) = a_{11} + a_{22} + \dots + a_{nn}=\sum_{i=1}^{n} a_{ii} $$

대각 성분은 다음과 같은 성질을 지닌다.

$$ \text{tr} (cA) = c\text{tr} (A) $$$$ \text{tr} (A^T) = \text{tr} (A) $$$$ \text{tr} (A + B) = \text{tr} (A) + \text{tr} (B)$$$$ \text{tr} (AB) = \text{tr} (BA) $$$$ \text{tr} (ABC) = \text{tr} (BCA) = \text{tr} (CAB) $$

특히 마지막 성질은 trace trick이라고 하여 이차 형식(quadratic form)의 미분을 구하는데 유용하게 사용된다.

$$ x^TAx = \text{tr}(x^TAx) = \text{tr}(Axx^T) = \text{tr}(xx^TA) $$

NumPy에서는 linalg 서브패키지의 trace 명령으로 trace를 계산할 수 있다.

In [7]:
np.trace(np.eye(3))
Out[7]:
3.0

행렬식

정방 행렬 $A$의 행렬식(determinant)은 $\text{det}(A)$라는 기호 또는 $|A|$라는 기호로 표기한다.

행렬식은 수학적으로 Laplace expansion 또는 cofactor expansion 이라고 불리는 재귀적인 방법으로 정의된다.

이 식에서 $a_{i,j}$는 $A$의 $i$행, $j$열 원소이고 $M_{i,j}$은 마이너(minor)라고 하며 정방 행렬 $A$ 에서 $i$행과 $j$열을 지워서 얻어진 행렬의 행렬식이다. 마이너에 $(-1)^{i+j}$를 곱한 값을 코팩터(cofactor)라고 한다. 이 식에서 행이나 열은 임의의 것을 선택해도 된다.

$$ \det(A) = \sum_{i=1}^n (-1)^{i+j} a_{i,j} M_{i,j} = \sum_{j=1}^n (-1)^{i+j} a_{i,j} M_{i,j} $$

위의 정의를 사용하면 크기가 1, 2, 3인 정방 행렬의 행렬식은 다음과 같아진다.

  • 1×1 행렬의 행렬식
$$\det\begin{bmatrix}a\end{bmatrix}=a$$
  • 2×2 행렬의 행렬식 $$\det\begin{bmatrix}a&b\\c&d\end{bmatrix}=ad-bc$$

  • 3×3 행렬의 행렬식 $$\det\begin{bmatrix}a&b&c\\d&e&f\\g&h&i\end{bmatrix}=aei+bfg+cdh-ceg-bdi-afh$$

행렬식은 다음과 같은 성질을 만족한다.

$$\det(I) = 1$$
$$\det(A^{T}) = \det(A)$$
$$\det(A^{-1}) = \frac{1}{\det(A)}=\det(A)^{-1}$$
$$\det(AB) = \det(A)\det(B)$$
$$A \in \mathbf{R}^n \;\;\; \rightarrow \;\;\; \det(cA) = c^n\det(A)$$

또한 역행렬은 행렬식과 다음과 같은 관계를 가진다. 이 식에서 마이너로 이루어진 행렬 $M$을 matrix of cofactors, 또는 cofactor matrix, comatrix 라고 하기도 한다. 또한 matrix of cofactors의 전치 행렬 $M^T$를 adjugate matrix 또는 adjoint matrix 이라고 하며 $\text{adj}A$로 표기하기도 한다.

$$ A^{-1} = \dfrac{1}{\det A} M^T = \dfrac{1}{\det A} \begin{bmatrix} M_{1,1}&\cdots&M_{n, 1}\\ \vdots&\ddots&\vdots\\ M_{1,n}&\cdots&M_{n,n}\\ \end{bmatrix} $$

NumPy에서는 linalg 서브패키지의 det 명령으로 행렬식을 계산할 수 있다.

In [8]:
A = np.array([[1, 2], [3, 4]])
A
Out[8]:
array([[1, 2],
       [3, 4]])
In [9]:
np.linalg.det(A)
Out[9]:
-2.0000000000000004

전치 행렬과 대칭 행렬

만약 전치 연산을 통해서 얻어진 전치 행렬과 원래의 행렬이 같으면 대칭 행렬(symmetric matrix)이라고 한다.

$$ A^\mathrm{T} = A $$

전치 연산은 다음과 같은 성질을 만족한다.

$$ ( A^\mathrm{T} ) ^\mathrm{T} = A $$$$ (A+B) ^\mathrm{T} = A^\mathrm{T} + B^\mathrm{T} $$$$ \left( A B \right) ^\mathrm{T} = B^\mathrm{T} A^\mathrm{T} $$$$ \det(A^\mathrm{T}) = \det(A) $$$$ (A^\mathrm{T})^{-1} = (A^{-1})^\mathrm{T} $$

질문/덧글

pos. difinite 질문입니다 ngmt*** 2016년 5월 18일 1:49 오전

pos. difinite 의 예시를 설명하는 부분의 3x3 행렬 (x^T * M * x) 을 풀어 쓴 식에서 b와 c가 있는데, 이 두 변수는 어디에서 온 변수인가요?

답변 pos. difinite 질문입니다 관리자 2016년 5월 18일 9:11 오전

오타입니다. 수정하도록 하겠습니다.