행렬(matrix)과 벡터(vector)는 많은 양의 데이터와 함수 등을 간결하고 체계적으로 표현해 주는 수학적 도구다.
행렬은 함수나 숫자를 직사각형 형태로 배치하고 대괄호(또는 소괄호)로 묶은 배열로 정의한다. 다음은 행렬의 예다.
\[ \begin{align} & \begin{bmatrix} 1 & 2 \\ -3.1 & 5 \\ 0 & -0.5 \end{bmatrix} , \ \ \ \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} , \\ \\ & \begin{bmatrix} e^x & x^2 & 2x \\ 4 & 0 & \sin(x) \end{bmatrix} , \ \ \ \begin{bmatrix} 3 \\ 2 \\ 1 \end{bmatrix} , \ \ \ \begin{bmatrix} 4 & 3 \end{bmatrix} \tag{1} \end{align} \]
행렬을 구성하는 있는 숫자 또는 함수를 행렬의 성분(element)라고 한다. 행렬의 가로 줄을 행(row), 세로 줄을 열(column)이라고 한다. 식 (1)의 첫 번째 행렬은 행이 3개, 열이 2개로 된 행렬이다. 두 번째 행렬은 행과 열이 각각 2개다.
행렬에서 특정 성분의 위치는 행과 열을 이용해서 표시할 수 있다. 예를 들면 식 (1)의 첫 번째 행렬에서 성분 5는 2행2열에 위치한다. 식 (1)의 세 번째 행렬에서 2행3열에 위치한 성분은 \( \sin (x) \)이다. 행과 열의 개수가 같은 행렬을 정방 행렬(square matrix)이라고 한다. 식 (1)의 두번째 행렬이 정방 행렬에 해당한다.
행이 1개 또는 열이 1개인 행렬을 벡터(vector)라고 한다. 행이 1개인 벡터를 행 벡터(row vector)라고 하고, 열이 1개인 벡터를 열 벡터(column vector)라고 한다. 식 (1)에서 네 번째 행렬은 열 벡터이고, 다섯 번째 행렬은 행 벡터다.
행의 개수가 \( m \)개, 열의 개수가 \( n \)개인 행렬의 사이즈는 \( m \times n \) 으로 표시한다.
행렬은 일반적으로 대문자로 표시한다. 예를 들면 다음과 같다.
\[ B= \begin{bmatrix} 1 & 2 \\ -3.1 & 5 \\ 0 & -0.5 \end{bmatrix} , \ \ \ A= \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \tag{2} \]
벡터는 일반적으로 고딕체 소문자로 표시한다. 예를 들면 다음과 같다.
\[ \mathbf{c} = \begin{bmatrix} 3 \\ 2 \\ 1 \end{bmatrix} , \ \ \ \mathbf{d} = \begin{bmatrix} 4 & 3 \end{bmatrix} \tag{3} \]
임의의 행렬 \( A \)는 행렬의 구성 성분을 이용하여 다음과 같이 표시하기도 한다.
\[ A = [ a_{ij} ] \tag{4} \]
여기서 아래 첨자 \( i \)는 \( i \)번째 행, \( j \)는 \( j \)번째 열을 나타낸다.
행렬의 성분이 모두 실수(real number)로 된 행렬을 실수 행렬이라고 한다. 사이즈가 \( m \times n \) 실수 행렬은 \( \mathbb{R}^{m \times n} \)으로 표시한다. 식 (2)에서 행렬 \( A \)는 사이즈는 \( 3 \times 2 \) 인 실수 행렬이므로 \( A \in \mathbb{R}^{m \times n } \)로 표시한다. 행렬의 성분 중에 복소수(complex number)가 있다면 복소수 행렬이라고 한다. 사이즈가 \( m \times n \) 복소수 행렬은 \( \mathbb{C}^{m \times n} \)으로 표시한다.
행렬은 데이터를 저장하고 처리하는데 매우 편리한 데이터 표현 방식이다. 예를 들어보자.
사진 또는 이미지 데이터는 행렬로 처리된다. 이미지 행렬의 성분은 각 픽셀의 세기(intensity)를 나타낸다. 숫자가 커질수록 픽셀의 밝기가 커진다.
칼라 이미지도 빨간색(Red), 녹색(Green), 파란색(Blue)의 픽셀 세기를 표시하는 세 개의 행렬로 표현한다.
테이블 형태로 주어지는 많은 일상적인 또는 전문적인 데이터도 행렬로 표현할 수 있다. 예를 들면 학생의 각 과목 성적을 행렬로 표현할 수 있다.
선형 연립 방정식도 행렬로 표시할 수 있다. 예를 들어서 다음과 같은 연립 방정식이 있을 때,
\[ \begin{align} & 2x_1+3x_2+x_3=9 \\ \\ & 5x_1-2x_2+7x_3=-3 \end{align} \]
관련된 행렬을 다음과 같이 설정할 수 있다.
\[ A =\begin{bmatrix} 2 & 3 & 1 \\ 5 & -2 & 7 \end{bmatrix} , \ \ \mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} , \ \ \mathbf{b} = \begin{bmatrix} 9 \\ -3 \end{bmatrix} \tag{5} \]
이렇듯 많은 분야에서 데이터를 행렬로 표시하고 처리할 수 있으므로 과학기술 전문 언어인 매트랩에서는 행렬을 기본 연산단위로 한다. 매트랩(matlab)이라는 이름도 MATrix LABoratory에서 유래된 것이다. 딥러닝 패키지인 텐서플로와 파이토치 등도 텐서라고 불리는 행렬로 데이터를 표현하고 처리한다.
'AI 수학 > 선형대수' 카테고리의 다른 글
정정(positive-definite) 행렬의 고유값 (0) | 2020.07.21 |
---|---|
정정(positive-definite) 행렬이란 (0) | 2020.07.20 |
실수 대칭행렬의 고유값과 고유벡터 (0) | 2020.07.18 |
고유값과 고유벡터의 정의 (0) | 2020.07.17 |
행렬의 덧셈과 곱셈 (0) | 2020.07.17 |
댓글