-
행렬의 기초 - 행렬과 행렬의 곱셈수리물리 2023. 2. 12. 22:19반응형
이번 글에서는 벡터(vector)들의 연산을 효율적으로 표현하기 위해서 행렬(matrix)를 정의하고 그 성질을 살펴볼 예정이다.
먼저 행렬의 정의는 숫자나 함수(function), 연산자(operator)들의 2차원 배열(array)을 의미한다. 사각 격자에 원하는 대상을 집어넣으면 된다.
행렬을 맨처음 만들게 된 계기는 사실 연립 방정식(simultaneous equation)을 풀기위해서 였다. 다음과 같은 두 개의 연립 방정식을 생각해보자.
$$ a x + b y = m \tag{1}$$
$$ c x + d y = n \tag{2}$$
평범하게 연립 방정식을 푸는 방법은 두 식 중 원하는 식을 한 변수에 대한 식으로 고친 다음 나머지 식에 대입하는 방식을 이용한다. 하지만 변수의 개수가 많아지면 이 방법은 상당히 풀이가 복잡해진다.
하지만 이 식들을 다음과 같이 표현해보자.
$$ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} m \\ n \end{pmatrix} \tag{3}$$
식 (3)과 같이 연립 방정식을 표현하는 방식이 행렬과 벡터를 이용한 표현 방법인데 이 방법을 이용하면 연립 방정식에 대한 관점을 바꿀 수 있다.
식 (3) 형태는 \( x \)와 \( y \)를 성분으로 가지는 벡터가 어떤 행렬에 의해 \( m \)과 \( n \)을 성분으로 가지는 벡터로 변환(transform)된 것이다. 이제 우리는 변환 행렬(transformation matirx)의 성질을 이용해서 원래 벡터를 찾아낼 수 있다.
잠시 우리가 다루려는 행렬의 성분이 전부 실수(real number)인 경우를 생각해보자. 식 (3)에서와 같이 사각형 격자를 만들 수 있으며 크기는 얼마든지 더 크게 만들 수 있다.
따라서 세로로 \( m \)개 성분을 가로로 \( n \)개 성분을 가지는 행렬을 생각해보자. 이 행렬의 성분의 개수는 전부 \( m \times n\)개이며 우리는 \( m \times n\) 행렬이라고 부른다.
$$\begin{pmatrix} A_{11} & A_{12} & A_{13} & \cdots & A_{1n} \\ A_{21} & A_{22} & A_{23} & \cdots & A_{2n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ A_{m1} & A_{m2} & A_{m3} & \cdots & A_{mn} \end{pmatrix} \tag{4}$$
여기서 행렬의 특정 성분만 보고 싶을 수 있다. 몇 번째 가로줄과 몇 번째 세로줄에 있는지 알면 정확한 성분을 지칭할 수 있고 우리는 여기서 몇 번째 가로줄인가를 얘기할 때 행(row)이라고 하며 몇 번째 세로줄인가는 열(column)이라고 한다.
가령 식 (4)에서 \( A_{23} \)은 2행 3열에 있는 성분을 의미한다. 많은 경우 \( A \)라는 어떤 행렬의 \( \alpha \)행 \( \beta \)열 성분은 \( A_{\alpha \beta} \)로 표현한다.
또한 한 줄로만 이루어진 행렬을 생각해 볼 수 있는데 사실 이는 벡터와 전혀 다르지 않음을 알 수 있다. 이러한 종류에 대해선 나중에 텐서(Tensor)로 더 일반화 해서 생각할 수 있다.
근데 한 줄을 행으로 뽑는가 열로 뽑는가에 따라서 벡터의 모양은 좀 다를 수 있다. 그래서 행으로 뽑는 벡터를 행 벡터(row vector), 열로 뽑는 벡터를 열 벡터(column vector)라고 부르기도 한다.
여기서 잠시 식 (3)과 식 (1), (2)의 관계를 통해 행렬이 어떻게 벡터를 변환시키는지 그 연산 법칙을 유추해 볼 수 있다. 먼저 \( 3 \times 3\) 행렬의 경우 어떤 변환을 만드는지 생각해보자.
$$ \begin{pmatrix} A_{11} & A_{12} & A_{13} \\ A_{21} & A_{22} & A_{23} \\ A_{31} & A_{32} & A_{33} \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} A_{11} x + A_{12} y + A_{13} z \\ A_{21} x + A_{22} y + A_{23} z \\ A_{31} x + A_{32} y + A_{33} z \end{pmatrix} \tag{5}$$
여기서 주의해야 할 점은 변환 행렬의 열의 개수와 변환되는 백터의 행의 개수는 일치해야 한다. \( m \times n \) 행렬은 \( n \)차원 벡터만 변환이 가능하다. 다음과 같은 연산은 정의되지 않는다.
$$ \begin{pmatrix} A_{11} & A_{12} & A_{13} \\ A_{21} & A_{22} & A_{23} \\ A_{31} & A_{32} & A_{33} \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} \tag{6}$$
그렇다면 \( 1 \times n \) 행렬과 \( n \times 1\) 열 벡터의 연산도 생각해 볼 수 있으며 이는 사실 내적(inner product)과 동일함을 알 수 있다.
$$ \begin{pmatrix} a_1 & a_2 & a_3 & \cdots & a_n \end{pmatrix} \begin{pmatrix} b_1 \\ b_2 \\ b_3 \\ \vdots \\ b_n \end{pmatrix} = a_1 b_1 + a_2 b_2 + a_3 b_3 + \cdots + a_n b_n \tag{7}$$
알버트 아인슈타인 이번엔 \( m \times n \) 행렬이 \( n \)차원 벡터를 변환시키는 경우로 일반화 시켜보자.
$$\begin{pmatrix} A_{11} & A_{12} & A_{13} & \cdots & A_{1n} \\ A_{21} & A_{22} & A_{23} & \cdots & A_{2n} \\ A_{31} & A_{32} & A_{33} & \cdots & A_{3n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ A_{m1} & A_{m2} & A_{m3} & \cdots & A_{mn} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ x_3 \\ \vdots \\ x_n \end{pmatrix} = \begin{pmatrix} A_{11} x_1 + A_{12} x_2 + A_{13} x_3 + \cdots + A_{1n} x_n \\ A_{21} x_1 + A_{22} x_2 + A_{23} x_3 + \cdots + A_{2n} x_n \\ A_{31} x_1 + A_{32} x_2 + A_{33} x_3 + \cdots + A_{3n} x_n \\ \vdots \\ A_{m1} x_1 + A_{m2} x_2 + A_{m3} x_3 + \cdots + A_{mn} x_n \end{pmatrix} \tag{8}$$
그런데 매번 식 (8)과 같이 쓰기는 힘들 것이다. 특히 다루고자 하는 차원이 높아지면 높아질 수록 손으로 쓰기조차 버거워진다. 따라서 식 (8)의 우변의 결과 벡터를 다음과 같이 합 기호(summation)을 이용해서 간략화 해보자.
$$ \begin{pmatrix} A_{11} x_1 + A_{12} x_2 + A_{13} x_3 + \cdots + A_{1n} x_n \\ A_{21} x_1 + A_{22} x_2 + A_{23} x_3 + \cdots + A_{2n} x_n \\ A_{31} x_1 + A_{32} x_2 + A_{33} x_3 + \cdots + A_{3n} x_n \\ \vdots \\ A_{m1} x_1 + A_{m2} x_2 + A_{m3} x_3 + \cdots + A_{mn} x_n \end{pmatrix} = \begin{pmatrix} \sum_{i = 1}^n A_{1 i} x_i \\ \sum_{i = 1}^n A_{2 i} x_i \\ \sum_{i=1}^n A_{3i} x_i \\ \vdots \\ \sum_{i=1}^n A_{mi} x_i \end{pmatrix} \tag{9}$$
식 (8)에서 행렬을 \( A \), 변환되는 벡터를 \( x \), 변환된 행렬을 \( y \)라고 표현하면 다음과 같다.
$$ A x = y \tag{10}$$
이제 \( y \)의 \( j \)번째 성분을 식 (9)를 이용해서 표현하면 다음과 같다.
$$ y_j = \sum_{i=1}^n A_{ji} x_i \tag{11}$$
아인슈타인(Einstein)이 사용한 표현법에 의해 합 기호를 빼고 간단하게 \( y_j = A_{ji} x_i \)로 표현하기도 한다. 상대성 이론(relativistic theory)에서 많이 사용되는 표현법이며 한쪽 항에 문자가 2개 있다면 합 기호가 생략된 것으로 간주한다.
지금까지 행렬이 벡터를 변환하는 과정으로 봤다. 근데 벡터를 지금 행이나 열이 1개인 행렬로 봤었다. 따라서 이 과정은 행렬과 행렬의 곱셈으로 생각할 수 있다.
따라서 이번엔 이 과정을 일반화시켜서 행렬간의 곱셈을 만들어 볼 수 있다. 벡터의 연산에서와 마찬가지로 \( m \times n\) 행렬은 \( n \times l \) 형태의 행렬하고만 곱할 수있다. 따라서 앞에 있는 행렬의 열과 뒤에 있는 행렬의 행이 일치해야 한다.
행렬과 벡터의 연산을 응용해서 다음과 같이 행렬 \( A \)와 \( B \)의 곱을 만들자.
$$ \begin{matrix} \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} B_{11} & B_{12} & \cdots & B_{1l} \\ B_{21} & B_{22} & \cdots & B_{2l} \\ \vdots & \vdots & \ddots & \vdots \\ B_{n1} & B_{n2} & \cdots & B_{nl} \end{pmatrix} \\ = \begin{pmatrix} A_{11} B_{11} + \cdots + A_{1n} B_{n1} & A_{11} B_{12} + \cdots + A_{1n} B_{n2} & \cdots & A_{11} B_{1l} + \cdots + A_{1n} B_{nl} \\ A_{21} B_{11} + \cdots + A_{2n} B_{n1} & A_{21} B_{12} + \cdots + A_{2n} B_{n2} & \cdots & A_{21} B_{1l} + \cdots + A_{2n} B_{nl} \\ \vdots & \vdots & \ddots & \vdots \\ A_{m1} B_{11} + \cdots + A_{mn} B_{n1} & A_{m1} B_{12} + \cdots + A_{mn} B_{n2} & \cdots & A_{m1} B_{l1} + \cdots + A_{mn} B_{nl} \end{pmatrix} \\ = \begin{pmatrix} \sum_{j = 1}^n A_{1j}B_{j1} & \sum_{j=1}^n A_{1j} B_{j2} & \cdots & \sum_{j=1}^n A_{1j} B_{jl} \\ \sum_{j=1}^n A_{2j} B_{j1} & \sum_{j=1}^n A_{2j} B_{j2} & \cdots & \sum_{j=1}^n A_{2j} B_{jl} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{j=1}^n A_{mj} B_{j1} & \sum_{j=1}^n A_{mj} B_{j2} & \cdots & \sum_{j=1}^n A_{mj} B_{jl} \end{pmatrix} \end{matrix} \tag{12}$$
식 (12)에서 사용한 행렬 \( A \)와 \( B \)의 곱을 \( C \)라 하면 \( C \)는 \( m \times l \) 행렬이 되며 성분은 다음과 같이 일반화해서 표현할 수 있다.
$$ C_{ij} = (AB)_{ij} = \sum_{k} A_{ik} B_{kj} = A_{ik} B_{kj} \tag{13}$$
마지막 식은 아인슈타인 표기법을 따른 것이다.
반응형'수리물리' 카테고리의 다른 글
행렬의 기초 - 단위 행렬과 행렬식 (0) 2023.02.17 행렬의 기초 - 행렬의 연산, 교환자, 항등 행렬 (0) 2023.02.14 함수 급수와 균등 수렴 (0) 2023.02.08 조화 급수와 리만 제타 함수 (1) 2023.02.04 벡터, 정확히 알고 있나요? 벡터의 연산 (0) 2023.01.31