행렬의 덧셈

행렬의 덧셈은 두 행렬의 크기가 같을 때에만 정의된다. 즉, 두 행렬이 모두 m \times n 크기를 가지고 있을 때만 덧셈이 가능하다. 이때 두 행렬 \mathbf{A}\mathbf{B}의 덧셈은 대응하는 성분끼리 더하는 방식으로 이루어진다.

\mathbf{A} = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix} , \quad \mathbf{B} = \begin{pmatrix} b_{11} & b_{12} & \cdots & b_{1n} \\ b_{21} & b_{22} & \cdots & b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ b_{m1} & b_{m2} & \cdots & b_{mn} \end{pmatrix}

이때, 행렬의 덧셈 \mathbf{C} = \mathbf{A} + \mathbf{B}는 다음과 같이 성분별로 계산된다.

\mathbf{C} = \begin{pmatrix} a_{11} + b_{11} & a_{12} + b_{12} & \cdots & a_{1n} + b_{1n} \\ a_{21} + b_{21} & a_{22} + b_{22} & \cdots & a_{2n} + b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} + b_{m1} & a_{m2} + b_{m2} & \cdots & a_{mn} + b_{mn} \end{pmatrix}

즉, \mathbf{C}의 각 성분은 다음과 같이 정의된다.

c_{ij} = a_{ij} + b_{ij} \quad \text{(for all $i, j$)}

이와 같은 방식으로 행렬의 덧셈은 매우 간단하게 계산된다.

행렬의 곱셈

행렬의 곱셈은 행렬의 덧셈과 달리 정의가 좀 더 복잡하며, 행렬의 곱셈이 정의되기 위해서는 두 행렬의 크기가 특정한 조건을 만족해야 한다. 두 행렬 \mathbf{A}\mathbf{B}의 곱셈이 가능하려면, \mathbf{A}의 열의 개수가 \mathbf{B}의 행의 개수와 같아야 한다.

즉, \mathbf{A}m \times n 행렬이고, \mathbf{B}n \times p 행렬일 때, 두 행렬의 곱셈 \mathbf{C} = \mathbf{A} \mathbf{B}m \times p 행렬로 정의된다. 이때 \mathbf{C}의 각 성분은 다음과 같이 계산된다.

c_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj}

즉, 행렬의 곱셈은 다음과 같이 성분별로 계산된다.

\mathbf{C} = \begin{pmatrix} c_{11} & c_{12} & \cdots & c_{1p} \\ c_{21} & c_{22} & \cdots & c_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ c_{m1} & c_{m2} & \cdots & c_{mp} \end{pmatrix}

여기서 c_{ij}\mathbf{A}i-번째 행과 \mathbf{B}j-번째 열의 내적을 나타낸다.

행렬 곱셈의 성질

행렬의 곱셈은 덧셈과 달리 일반적으로 교환법칙을 따르지 않는다. 즉, 두 행렬 \mathbf{A}\mathbf{B}에 대해 \mathbf{A} \mathbf{B} \neq \mathbf{B} \mathbf{A}일 수 있다. 이는 행렬 곱셈이 성분별로 정의되지 않고, 행과 열의 내적으로 정의되기 때문이다. 그러나 행렬 곱셈은 결합법칙과 분배법칙을 만족한다.

결합법칙

행렬의 곱셈은 결합법칙을 따른다. 즉, 세 개의 행렬 \mathbf{A}, \mathbf{B}, \mathbf{C}가 각각 곱셈이 가능할 때 다음이 성립한다.

(\mathbf{A} \mathbf{B}) \mathbf{C} = \mathbf{A} (\mathbf{B} \mathbf{C})

이는 행렬의 곱셈 순서를 바꾸는 것이 아니라, 괄호를 적용하는 방식에 따라 순서를 조정하는 것을 의미한다.

분배법칙

행렬의 곱셈은 분배법칙을 따른다. 즉, 두 행렬의 덧셈과 곱셈이 모두 가능할 때 다음이 성립한다.

\mathbf{A} (\mathbf{B} + \mathbf{C}) = \mathbf{A} \mathbf{B} + \mathbf{A} \mathbf{C}
(\mathbf{A} + \mathbf{B}) \mathbf{C} = \mathbf{A} \mathbf{C} + \mathbf{B} \mathbf{C}

이 성질은 스칼라 곱셈의 분배법칙과 유사하게, 행렬 곱셈에서도 분배가 가능함을 나타낸다.

단위 행렬과 행렬 곱셈

단위 행렬 \mathbf{I}는 행렬 곱셈에서 항등원 역할을 한다. 단위 행렬은 크기가 n \times n인 정사각행렬로, 대각선 성분이 모두 1이고 나머지 성분이 모두 0인 행렬을 의미한다.

\mathbf{I} = \begin{pmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{pmatrix}

임의의 n \times n 행렬 \mathbf{A}에 대해, 단위 행렬과의 곱셈은 다음과 같은 항등식을 만족한다.

\mathbf{A} \mathbf{I} = \mathbf{I} \mathbf{A} = \mathbf{A}

이는 행렬 \mathbf{A}가 단위 행렬과 곱해지면 그 값이 변하지 않음을 나타낸다.

영행렬과 행렬 곱셈

영행렬 \mathbf{0}는 모든 성분이 0인 행렬을 말하며, 행렬 곱셈에서 소거 역할을 한다. 즉, m \times n 행렬 \mathbf{A}n \times p 행렬 \mathbf{B}에 대해 영행렬과의 곱셈은 다음과 같다.

\mathbf{A} \mathbf{0} = \mathbf{0}, \quad \mathbf{0} \mathbf{B} = \mathbf{0}

이때 \mathbf{0}는 그 크기가 상황에 따라 달라질 수 있으며, \mathbf{A} \mathbf{0}의 결과는 m \times p 크기의 영행렬이다.

스칼라와 행렬의 곱셈

스칼라와 행렬의 곱셈은 스칼라 \alpha와 임의의 m \times n 행렬 \mathbf{A}가 주어졌을 때 정의된다. 이 경우 스칼라 곱셈은 행렬의 각 성분에 스칼라를 곱하는 방식으로 이루어진다.

\alpha \mathbf{A} = \alpha \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix} = \begin{pmatrix} \alpha a_{11} & \alpha a_{12} & \cdots & \alpha a_{1n} \\ \alpha a_{21} & \alpha a_{22} & \cdots & \alpha a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ \alpha a_{m1} & \alpha a_{m2} & \cdots & \alpha a_{mn} \end{pmatrix}

따라서 스칼라 \alpha와 행렬 \mathbf{A}의 곱셈은 각 성분별로 곱셈을 수행하는 방식으로, 행렬의 크기는 변하지 않고 단순히 성분 값만 변하게 된다.

행렬 곱셈의 해석

행렬 곱셈은 여러 방식으로 해석될 수 있으며, 특히 선형 변환과 관계가 깊다. 행렬은 벡터 공간에서의 선형 변환을 나타내며, 두 행렬의 곱셈은 연속적인 두 선형 변환을 하나의 변환으로 합성하는 것과 같다.

임의의 행렬 \mathbf{A}\mathbf{B}에 대해, 곱셈 결과 \mathbf{C} = \mathbf{A} \mathbf{B}는 벡터 공간에서 \mathbf{B}에 의한 변환 후에 \mathbf{A}에 의한 변환을 수행하는 것과 동일하다. 이를 기하학적으로 표현하면, 행렬의 곱셈은 벡터의 변형을 반복적으로 수행하는 과정을 나타낸다고 볼 수 있다.

열 벡터와 행렬 곱셈

행렬의 곱셈은 열 벡터와 행렬의 곱셈으로도 해석될 수 있다. n \times p 행렬 \mathbf{B}p \times 1 열 벡터 \mathbf{x}가 주어졌을 때, 행렬 곱셈 \mathbf{B} \mathbf{x}는 열 벡터의 선형 결합을 의미한다.

\mathbf{B} = \begin{pmatrix} b_{11} & b_{12} & \cdots & b_{1p} \\ b_{21} & b_{22} & \cdots & b_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ b_{n1} & b_{n2} & \cdots & b_{np} \end{pmatrix} , \quad \mathbf{x} = \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_p \end{pmatrix}

이때, 행렬과 벡터의 곱은 다음과 같이 계산된다.

\mathbf{B} \mathbf{x} = \begin{pmatrix} b_{11} x_1 + b_{12} x_2 + \cdots + b_{1p} x_p \\ b_{21} x_1 + b_{22} x_2 + \cdots + b_{2p} x_p \\ \vdots \\ b_{n1} x_1 + b_{n2} x_2 + \cdots + b_{np} x_p \end{pmatrix}

이 결과는 열 벡터 \mathbf{x}의 각 성분이 \mathbf{B}의 열 벡터와 곱해진 후 더해지는 방식으로 계산된다.

행 벡터와 행렬 곱셈

열 벡터와의 곱셈과 마찬가지로, 행 벡터와 행렬의 곱셈도 중요한 해석을 제공한다. 1 \times m 크기의 행 벡터 \mathbf{y}m \times n 크기의 행렬 \mathbf{A}가 주어졌을 때, 행 벡터와 행렬의 곱 \mathbf{y} \mathbf{A}는 다음과 같이 정의된다.

\mathbf{y} = \begin{pmatrix} y_1 & y_2 & \cdots & y_m \end{pmatrix} , \quad \mathbf{A} = \begin{pmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{pmatrix}

이때 행 벡터와 행렬의 곱은 행 벡터의 각 성분과 행렬의 각 열의 성분이 곱해져 더해진다.

\mathbf{y} \mathbf{A} = \begin{pmatrix} y_1 a_{11} + y_2 a_{21} + \cdots + y_m a_{m1} & y_1 a_{12} + y_2 a_{22} + \cdots + y_m a_{m2} & \cdots & y_1 a_{1n} + y_2 a_{2n} + \cdots + y_m a_{mn} \end{pmatrix}

이 결과는 1 \times n 크기의 행 벡터로, 행 벡터 \mathbf{y}와 행렬 \mathbf{A}의 각 열 벡터의 내적을 계산하는 방식으로 해석할 수 있다.

차원에 따른 행렬 곱셈의 제약

행렬 곱셈이 정의되기 위해서는 행렬의 크기가 반드시 특정 조건을 만족해야 한다. 구체적으로, \mathbf{A}m \times n 크기의 행렬이고, \mathbf{B}n \times p 크기의 행렬일 때, 두 행렬의 곱 \mathbf{A} \mathbf{B}m \times p 크기의 행렬로 정의된다. 이 조건을 만족하지 않으면 곱셈 자체가 정의되지 않는다.

\mathbf{A} \text{는 } m \times n, \quad \mathbf{B} \text{는 } n \times p \quad \Rightarrow \quad \mathbf{A} \mathbf{B} \text{는 } m \times p

이처럼, 행렬 곱셈의 차원은 곱셈이 정의되기 위해 중요한 역할을 하며, 각 행렬의 크기가 상호 호환 가능해야 한다.

행렬 곱셈의 계산 복잡도

행렬 곱셈의 계산 복잡도는 행렬의 크기에 따라 달라지며, 곱셈은 각 성분을 계산하는 데 상당한 계산 비용이 소요된다. m \times n 행렬 \mathbf{A}n \times p 행렬 \mathbf{B}의 곱셈을 계산하는 데 필요한 총 곱셈 연산의 수는 다음과 같다.

\text{총 곱셈 연산의 수} = m \times n \times p

즉, \mathbf{A} \mathbf{B}를 계산하려면 m \times n \times p번의 곱셈과 더불어 동일한 수의 덧셈 연산이 필요하다. 이로 인해 행렬의 크기가 커질수록 곱셈의 계산 비용이 크게 증가한다.

행렬 곱셈의 예

예를 들어, 다음과 같은 두 행렬 \mathbf{A}\mathbf{B}가 있다고 가정하자.

\mathbf{A} = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ \end{pmatrix} , \quad \mathbf{B} = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}

두 행렬의 곱 \mathbf{C} = \mathbf{A} \mathbf{B}는 다음과 같이 계산된다.

\mathbf{C} = \begin{pmatrix} (1 \times 5 + 2 \times 7) & (1 \times 6 + 2 \times 8) \\ (3 \times 5 + 4 \times 7) & (3 \times 6 + 4 \times 8) \end{pmatrix} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix}

따라서 두 행렬 \mathbf{A}\mathbf{B}의 곱셈 결과는 다음과 같다.

\mathbf{C} = \begin{pmatrix} 19 & 22 \\ 43 & 50 \end{pmatrix}

이 예제에서 볼 수 있듯이, 행렬 곱셈은 각 성분에 대해 행렬의 성분별 곱과 덧셈을 반복하여 계산된다.