[선형대수] 행렬연산

행렬연산

들어가며

행렬의 종류를 구조화 다음 다음 그림과 같다.

행렬

행렬

행렬

행렬에서 가로줄을 행(row), 세로줄을 열(column)이라 한다. m개의 행과 n개의 열이 있는 다음과 같은 행렬을 $m\times n$ 행렬, m행 n열의 행렬, 또는 m by n 행렬이라 한다.

\[\begin{bmatrix} 3 &1\\ 1&-2\\ 2 &-4\\ \end{bmatrix}\]

다음과 같이 하나의 행 혹은 하나의 열을 가지는 특별한 행렬을 생각할 수 있따. 이들을 각가 행백터(row vector), 열벡터(column vector) 라 한다.

\[\begin{bmatrix} 2 &1& 0& -3 \end{bmatrix} \ \begin{bmatrix} 1\\ 3 \end{bmatrix}\]

극단적으로 $1\times 1$ 행렬을 생각할 수 있는데, 이는 스칼라(scalar)와 같다.

주대각 성분 (main diagonal entry)

행과 열의 번호가 같은 성분인 $a_{11} a_{22}, …, a_{nn}$ 을 주대각 성분이라고 한다.

image-20210427182435635

단위행렬(unit matrix)

모든 주대각(main diagonal entry) 성분이 1이고, 나머지 entry가 0인 정방 행렬을 단위 행렬(unit matrix) 또는 항등행렬(identity matrix) 라고 한다.

\[I = \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ \end{bmatrix}\]

벡터 표기법

벡터는 아래의 x와 같이 볼드체 소문자로 표기한다.

\[x = \begin{bmatrix} x_1\\ x_2\\ \vdots \\ x_n \end{bmatrix}\]
주요 표기법

참고 - 스칼라와 벡터의 유래

스칼라 sealar

스칼라는 크기의 비율을 나타내는 라틴어 스칼라리스(scalaris)에서 유래한 단어로 실수 나 복소수 등의 수를 나타낸댜 스칼라는 ‘‘곱해져서 크기를 줄이거나 키우는 것’이라는 의미를 갖는댜 선형대수학에서 스칼라는 행렬이나 벡터가 아닌 수를 가리킨다.

벡터vector

벡터는 운반하거나 전달하는 사람 또는 개체를 나타내는 라틴어 벡토르(vector)에서 유래한 단어이댜

행렬의 곱

\[\left[\begin{array}{cccc} & A_{m \times r} & \\ * & * & \cdots & * \\ \vdots & \vdots & & \vdots \\ a_{i 1} & a_{i 2} & \cdots & a_{i r} \\ \vdots & \vdots & & \vdots \\ * & * & \cdots & * \end{array}\right]\left[\begin{array}{ccccc} * & \cdots & b_{1 j} & \cdots & * \\ * & \cdots & b_{2 j} & \cdots & * \\ \vdots & & \vdots & & \vdots \\ * & \cdots & b_{r j} & \cdots & * \end{array}\right]=\left[\begin{array}{ccccc} * & & C_{m \times n} & & \\ \vdots & & \vdots & & \vdots \\ * & \cdots & c_{i j} & \cdots & * \\ \vdots & & \vdots & & \vdots \\ * & \cdots & * & \cdots & * \end{array}\right]\]

행렬 $C$의 각 요소(Entry) $C_{ij}$는 ‘곱의 왼쪽 행렬 $A$의 $i$번째 행벡터’ 와 ‘곱의 오른쪽 행렬 $B$의 $i$번째 열벡터의’ 내적(inner product)이다.

스칼라, 벡터, 행렬 그리고 텐서

스칼라

스칼라는 크기의 비율을 나타내는 라틴어 스칼라리스(scalaris)에서 유래한 단어로 실수 나 복소수 등의 수를 나타낸댜 스칼라는 ‘‘곱해져서 크기를 줄이거나 키우는 것’이라는 의미를 갖는댜 선형대수학에서 스칼라는 행렬이나 벡터가 아닌 수를 가리킨다. 스칼라는 숫자 하나로 구성되어 있다.

스칼라를 벡터로 표현

이 스칼라를 벡터로 표현 하면 다음과 같다.

\[[7]\]

스칼라를 행렬로 표현

이를 더 확장하여 행렬로 표현하면 다음과 같다.

\[[7]_{1 \times 1}\]

벡터

벡터는 여러 숫자가 일열로 늘어선 구조이다. 일반적으로, 열벡터를 가르킨다.

\[x = \begin{bmatrix} x_1\\ x_2\\ \vdots \\ x_n \end{bmatrix}\]

벡터를 행렬로 표현

다음과 같이 여러 모양의 행렬로 표현 할 수 있다. 즉, 표현하고자 하는 행렬의 모양은 응용문제에 따라 결정 된다.

\[\left[\begin{array}{l} 1 \\ 2 \\ 3 \\ 4 \end{array}\right]_{4 \times 1}\left[\begin{array}{ll} 1 & 2 \\ 3 & 4 \end{array}\right]_{2 \times 2}\left[\begin{array}{ll} 1 & 3 \\ 2 & 4 \end{array}\right]_{2 \times 2} \quad\left[\begin{array}{llll} 1 & 2 & 3 & 4 \end{array}\right]_{1 \times 4}\]

행렬

행렬은 사각형 구조에 여러 숫자가 행과 열로 늘어선 구조이다.

\[\begin{bmatrix} 3 &1\\ 1&-2\\ 2 &-4\\ \end{bmatrix}\]

행렬을 벡터로 표현

위 행렬은 다음과 같이 6-벡터로 표현 할 수 있다. 즉, 행렬을 벡터로 변환할때, 행부터 혹은 열부터 읽은 것인지 응용문제에 따라 달라진다.

\[\begin{bmatrix} 3\\ 1\\ 2\\ 3\\ 4\\ 4 \end{bmatrix} \ \begin{bmatrix} 3\\ 1\\ 2\\ 3\\ 4\\ 4 \end{bmatrix}\]

텐서(tensor)

텐서는 스칼라, 벡터, 행렬을 아우르는 개념이다. 숫자가 늘어설 수 있는 방향이 $k$개 이면 $k$-텐서로 부른다.

분할 행렬(Partitioned Matrix)

행렬을 조각(partition) 단위로 분할 하여 생각해도 무방하다. 이런 관점에서 본다면, 행렬은 부분 행렬(submatrix)로 이루어진 직사각형 구조로 확장해서 생각해 볼 수 있다. 이렇게 행렬을 구조족으로 보는 방법을 분할 행렬(partitioned matrix) 또는 블록 행렬(block matrix)라고 한다.

블록 행렬(Block matrix)

행렬의 특정 행과 열 사이를 경계로 나누어 부분행렬로 표현한 것을 블록행렬 또는 구획행렬이라고 한다.

다음은 행렬 $A$를 부분행렬로 나누어 표현한 것이다. 여기서는 2행과 3행 사이, 3열과 4열 사이, 5열과 6열 사이를 분할한 것이다.

image-20210427203305266

블록 행렬은 다음과 같이 분할된 각 부분행렬로 행렬 A를 표현한다.

image-20210427203405066

이때 각 부분행렬은 다음과 같다.

image-20210427203523966

분할행렬로 행렬 곱 이해하기

분할 행렬을 사용해서 마치 분배법칙을 사용하듯이 연산이 가능해진다.

image-20210427203858363

\[AB = \begin{bmatrix} a_1\\ a_2\\ \vdots\\ a_m \end{bmatrix} \times B= \begin{bmatrix} a_1B\\ a_2B\\ \vdots\\ a_mB \end{bmatrix} = C\]

​ 이는 다음과 같이 구조적으로 해석 할 수 있다.

image-20210427204453891

위 예시를 정리하면 다음과 같다.

열벡터와 행벡터의 곱에 의한 행렬 곱의 표현

$m \times n$ 행렬 $A$와 $n \times p$ 행령 B의 곱은 $A$의 열벡터(column vector) $a_i$와 $B$의 행백터(row vector) $b_j^T$ 의 곱으로 다음과 같이 표현 할 수 있다.

\(AB = a_ab_1^T + a_2b_2^T + \dots + a_nb_n^T\) 여기서 행렬 A와 B는 다음과 같이 각각 열벡터와 행벡터로 분할 하여 표현한 것이다.

\[A = \begin{bmatrix} a_1 & a_2 & \dots & a_n \end{bmatrix} , \begin{bmatrix} b_1^T \\ b_2^T \\ \vdots\\ b_n^T \end{bmatrix}\]