본문 바로가기
C/C++/물리

행렬 [ matrix, 行列 ]

by 꿀꿀이냐옹이 2009. 10. 8.
반응형

행렬이란 수를 네모꼴로 배열한 것이다. 예를 들어

\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}

는 행렬이다. 행렬을 표시하기 위한 괄호는 위에서와 같이 주로 대괄호 []나 소괄호 ()를 사용하며, 행렬을 나타내는 기호는 특별히 수와 구별하기 위해 굵은 글씨체를 자주 사용한다. 행렬에서는 가로줄을 이라고 하고, 세로줄을 이라고 한다. 또한 행 또는 열들을 분리하여 각각 하나의 행렬로 쓴 것을 행벡터(row vector) 또는 열벡터(column vector)라 한다. 예를 들어 위의 행렬에서는

\begin{bmatrix} 1 & 2 & 3 \end{bmatrix}, \begin{bmatrix}4 & 5 & 6 \end{bmatrix}

가 행벡터,

\begin{bmatrix} 1 \\ 4 \end{bmatrix}, \begin{bmatrix} 2 \\ 5 \end{bmatrix}, \begin{bmatrix} 3 \\ 6 \end{bmatrix}

가 열벡터가 된다.

위의 예에선 행렬이 두 개의 행과 세 개의 열로 이루어져 있음을 볼 수 있는데 행과 열의 수를 특별히 강조하여 나타낼 때는 2×3 행렬이라고 부른다. 일반적으로, 어떤 행렬이 m개의 행과 n개의 열로 구성되어 있으면 m×n 행렬이라고 부른다. 그리고 행렬의 i번째 행, j번째 열에 있는 수를 행렬의 (i,j) 성분 또는 (i,j) 항((i,j) entry)이라 한다. 이를 적용하면 행벡터는 1×n 행렬, 열벡터는 m×1 행렬이라고 할 수 있다.

특별히, 행과 열의 수가 같은 행렬을 정사각행렬(square matrix)이라고 한다. 행과 열의 수를 강조할 때는 n차 정사각행렬이라고 부르기도 한다.

표시법

행렬은 스칼라와 구별하기 위해 주로 굵은 글씨체의 영문 대문자를 사용하여 나타낸다. 소문자는 행렬의 성분을 나타낼 때 쓰인다. 즉, 행렬 A의 (i,j) 성분은 aij로 나타낸다. 다른 표시법으로 함수처럼 이를 나타내는 A[i,j], 그냥 단순히 아래 첨자를 추가하는 Aij, 소문자 대신 굵지 않은 글씨체를 사용하는 Aij도 있다. 행렬에서 특별히 성분을 강조하여 나타낼 때는

\mathbf{A} = ( a_{ij} ) _{i=1,\, \cdots,\, m\,,\,j=1 ,\, \cdots,\, n}
\mathbf{A} = ( a_{ij} ) _{m\times n}
\mathbf{A} = ( a_{ij} )

같은 표기가 자주 쓰인다.

기본 연산

상등

두 행렬이 같다는 것은 행렬의 크기가 같고, 각각의 서로 대응되는 성분들이 같은것을 말한다. 즉, 두 a×b 행렬 A, m×n 행렬 B에 대해서,

  • a = m, b = n
  • Aij = Bij

이면 두 행렬이 같다고 하고, A = B라고 쓴다. 이 관계는

이 성립하므로 동등관계이다.

덧셈과 뺄셈

주어진 두 m×n 행렬 AB에 대해 덧셈 A+B는 다음과 같이 각 성분의 합으로 정의한다.

(\mathbf{A}+\mathbf{B})_{ij} = \mathbf{A}_{ij} + \mathbf{B}_{ij}\

마찬가지로 주어진 두 m×n 행렬 AB에 대해 뺄셈 A-B는 다음과 같이 각 성분의 합으로 정의한다.

(\mathbf{A}+\mathbf{B})_{ij} = \mathbf{A}_{ij} - \mathbf{B}_{ij}\

예를 들어,


  \begin{bmatrix}
    1 & 3 & 7 \\
    1 & 0 & 0 \\
    1 & 2 & 2
  \end{bmatrix}
+
  \begin{bmatrix}
    0 & 0 & 5 \\
    7 & 5 & 0 \\
    2 & 1 & 1
  \end{bmatrix}
=
  \begin{bmatrix}
    1+0 & 3+0 & 7+5 \\
    1+7 & 0+5 & 0+0 \\
    1+2 & 2+1 & 2+1
  \end{bmatrix}
=
  \begin{bmatrix}
    1 & 3 & 12 \\
    8 & 5 & 0 \\
    3 & 3 & 3
  \end{bmatrix}
.

스칼라배

주어진 m×n행렬 A스칼라 k를 곱하는 것 kA는 다음과 같이 A의 각 성분에 스칼라 k를 곱하는 것으로 정의한다.

 (k \mathbf{A})_{ij} = k \mathbf{A}_{ij}\

예를 들어,

2
  \begin{bmatrix}
    1 & 8 & -3 \\
    4 & -2 & 5
  \end{bmatrix}
=
  \begin{bmatrix}
    2\cdot 1 & 2\cdot 8 & 2\cdot -3 \\
    2\cdot 4 & 2\cdot -2 & 2\cdot 5
  \end{bmatrix}
=
  \begin{bmatrix}
    2 & 16 & -6 \\
    8 & -4 & 10
  \end{bmatrix}
.

덧셈과 스칼라곱의 성질

ab를 스칼라, A, B, C를 크기가 같은 행렬이라 하자. 이때 다음이 성립한다.

  • A + B = B + A
  • A + (B + C) = (A + B) + C
  • (ab)A = a(bA)
  • (a + b)A = aA + bA
  • (a - b)A = aA - bA
  • a(A + B) = aA + aB
  • a(A - B) = aA - aB

곱셈

행렬 AB를 곱하여 행렬 AB를 얻는것을 나타내는 그림.

행렬 간의 곱은 모든 경우에 대해서 정의되는것이 아니라 다음과 같은 특수한 경우에만 정의한다. 주어진 m×k행렬 A, k×n행렬 B의 곱은 m×n행렬이 되고 각 성분은 다음과 같이 A의 행벡터와 B의 열벡터의 내적으로 정의한다.

(\mathbf{AB})_{ij} = \sum_{l=1}^{k} \mathbf{A}_{il} \mathbf{B}_{lj} 이다.

예를 들어,


  \begin{bmatrix}
    1 & 0 & 2 \\
    -1 & 3 & 1 \\
  \end{bmatrix}
\cdot
  \begin{bmatrix}
    3 & 1 \\
    2 & 1 \\
    1 & 0
  \end{bmatrix}
=
  \begin{bmatrix}
     (1 \cdot 3  +  0 \cdot 2  +  2 \cdot 1) & (1 \cdot 1   +   0 \cdot 1   +   2 \cdot 0) \\
    (-1 \cdot 3  +  3 \cdot 2  +  1 \cdot 1) & (-1 \cdot 1   +   3 \cdot 1   +   1 \cdot 0) \\
  \end{bmatrix}
=
  \begin{bmatrix}
    5 & 1 \\
    4 & 2 \\
  \end{bmatrix}
.

곱셈의 성질

a를 스칼라, A, B, C를 크기가 같은 행렬이라 하자. 이때 다음이 성립한다.

  • A(BC) = (AB)C
  • A(B + C) = AB + AC
  • (B + C)A = BA + CA
  • A(B - C) = AB - AC
  • (B - C)A = BA - CA
  • a(BC) = (aB)C = B(aC)

또한, 행렬의 곱은 교환법칙이 성립하지 않는 비가환 곱이다. ABBA가 모두 정의된다고 해도, 이 두 결과는 같지 않을 수 있다.

ABBA

전치

이 부분의 본문은 전치행렬입니다.

행렬의 전치란 행과 열을 바꾸는 것으로, 행렬 A의 전치는 AT로 나타낸다. 즉 주어진 m×n행렬 A의 전치는 다음과 같이 정의한다.

 (\mathbf{A}^T)_{ij} = \mathbf{A}_{ji}\

여기서 ATm×n행렬이 아니라 n×m행렬임에 유의하자.

예를 들어,


  \begin{bmatrix}
    9 & 8 & 7 \\
    -1 & 3 & 4
  \end{bmatrix}^T
=
  \begin{bmatrix}
    9 & -1 \\
     8 & 3 \\
    7 & 4
  \end{bmatrix}
.

전치의 성질

a를 스칼라, A, B를 크기가 같은 행렬이라 하자. 이때 다음이 성립한다.

  1. (AT)T = A
  2. (A + B)T = AT + BT
  3. (A - B)T = AT - BT
  4. (aA)T = aAT
  5. (AB)T = BTAT

 

정사각행렬의 연산

대각합

이 부분의 본문은 대각합입니다.

대각합(trace)이란 정사각행렬의 대각항들의 원소를 전부 더하는 것을 말한다. 즉, 어떤 n차 정사각행렬 A의 대각합은 다음과 같다.

\mathrm{tr}(\mathbf{A}) = \sum_{i=1}^n {\mathbf{A}_{ii}}

대각합의 성질

c를 스칼라, A, B를 크기가 같은 정사각행렬이라 하자. 이때 다음이 성립한다.

  1. tr(AT) = tr(A)
  2. tr(cA) = c tr(A)
  3. tr(A + B) = tr(A) + tr(B)
  4. tr(A - B) = tr(A) - tr(B)
  5. tr(AB) = tr(BA)

행렬식

이 부분의 본문은 행렬식입니다.

행렬식(determinant)det(A) 또는 | A | 로 표시하며 선형 행렬 A의 크기를 나타낸다. 행렬 2x2 행렬 A가

A=\begin{bmatrix}a&b\\
c&d\end{bmatrix}

와 같이 주어진다면, det(A)는

det(A) = adbc

와 같이 정의된다.

특수한 행렬

영행렬이란 행렬의 모든 원소의 값이 0인 행렬을 말한다. 영행렬은 덧셈에 대한 항등원이다.

 \begin{bmatrix}
    0 & 0 & 0 \\
    0 & 0 & 0 \\
    0 & 0 & 0 \\
  \end{bmatrix}

단위행렬은 정사각행렬 중에서 행 번호와 열 번호가 같은 위치의 값은 1이고, 나머지는 0을 가지는 행렬을 말한다. 이 행렬은 곱셈에 대한 항등원이다.

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

역행렬이란 어떤 행렬의 곱셈에 대한 역원이다

반응형

'C/C++ > 물리' 카테고리의 다른 글

질점 [質點, material point]  (0) 2009.10.08
벡터의 내적과 외적  (0) 2009.10.08
유클리드공간 [Euclidean space]  (0) 2009.10.08
피타고라스의 정리 [Pythagorean theorem]  (0) 2009.10.07
좌표계  (0) 2009.10.07

댓글