본문 바로가기
다른 공부들/수학

[Kreyszig 공업수학][선형대수] 7장 (1) 행렬의 기본연산, 종류에 대해

by 생각사람 2023. 9. 3.
 

Kreyszig 공업수학(상) | Erwin Kreyszig - 교보문고

Kreyszig 공업수학(상) | 『공업수학』 상권. 이 책은 반세기 동안 전 세계적으로 가장 널리, 그리고 가장 많이 채택되어 사용되고 있는 Erwin Kreyszig교수가 저술한 Advanced Engineering Mathematics, 10th Edition

product.kyobobook.co.kr

위의 공업수학 교재에 나오는 내용을 공부하기 위해 정리한 요약노트입니다.

By File:Matrix multiplication diagram.svg:User:BilouSee below. - This file was derived from: Matrix multiplication diagram.svg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=15175268

 

 

목차

    가벼운 출발: 행렬의 정의와 왜 선형대수학을 하는지?

    행렬(Matrix)은 교육과정이 바뀌면서 요즘 중/고등학생이라면 배우지 않는 것으로 알고 있습니다. 그래서 아예 모르는 분들도 있을 수 있기 때문에, 간단히만 정의하고 넘어갈 겸, 선형대수학을 왜 쓰는 지 진짜 진짜 간단하게만 언급하고 넘어갈 거에요. 

     

    그리고 영어교과서를 기준으로 보고 있기도 하고, 많은 전공서적들에서 영어표현을 많이 사용하기 때문에, 한글용어를 일부러 찾아서 소개는 해볼 생각이지만 용어소개가 끝나면 주요 용어들은 영어로 나오게 될 예정인 점 양해 부탁드립니다.

    행렬은 행 + 열의 모임입니다. 행(row)은 가로, 열(column)은 세로 이렇게 이해해도 좋겠네요. 직역하면 줄과 기둥이죠? 다음과 같이 나타납니다.

    $$A = (a_{jk}) = \pmatrix{ a_{11} & a_{12} & \ldots & a_{1n} \cr a_{21} & a_{22} & \ldots & a_{2n} \cr \vdots & \vdots & \ddots & \vdots \cr a_{m1} & a_{m2} & \ldots & a_{mn} }$$ 가로줄 \(m\)개, 세로줄 \(n\)개짜리 행렬입니다. 이걸 \(m\times n\) 행렬이라고 합니다. 그리고 안에 들어 있는 \(a_{11}\)과 같은 것들을 성분이라고 합니다. 그러면 성분은 \(mn\)개가 있겠어요.

     

    추가적인 용어 정의를 몇 개 해봅니다. 다음과 같은 미지수 3개의 연립방정식이 있다고 해봐요.

    $$ \begin{matrix} 4x_{1} & +6x_{2} & +9x_{3} & = 6 \cr 6x_{1} & & +9x_{3} & =20 \cr 5x_{1} & -8x_{2} & + x_{3} & =10 \end{matrix} $$ 여기서 \(x_{i}\)의 계수만 따서 만든 행렬 $$ A = \pmatrix{4 & 6 & 9 \\ 6 & 0 & -2 \\ 5 & -8 & 1}$$를 계수행렬(coefficient matrix)이라고 하고, 여기에 = 뒤에 있는 수까지 합쳐준 행렬 $$\tilde{A} = \left( \begin{array}{rrr|r} 4 & 6 & 9 & 6\\ 6 & 0 & -2 & 20\\ 5 & -8 & 1 & 10 \end{array} \right)$$ 를 첨가행렬(augmented matrix)이라고 합니다. 그리고 \(a_{jk}\) 중 \(j=k\)인 성분들, 즉 \(a_{11},\;a_{22},\;\cdots,\;a_{nn}\)을 주대각성분(main diagonal)이라고 합니다.

     

    이런 걸 뭐하러 정의하고 귀찮게 하는 걸까요? 대단한 것도 없어보이는데. 행렬은 많은 양의 데이터와 함수를 효과적으로 다루기 위해 사용한다고 실용적으로 이해할 수 있습니다. 수학에서 사용하는 표의 일종이라고 이해해도 좋을 것 같아요. 그리고 다변수 선형방정식(일차방정식)을 푸는 데에도 효과적이며 이런 선형방정식이 모인 연립방정식을 푸는 데에도 효과적입니다. 게다가 선형변환(linear transformation)을 이해하고 잘 다루는 데에도 도움이 됩니다.

     

    뭐, 목적 따위 다 무시하고 넘어가도 아무 상관 없긴 합니다.

    행렬의 곱셈

    벡터 곱을 연상하여 행렬 곱셈을 정의하는 것은 짚고 넘어갈 필요가 있어 보여요. 우선 일반적인 행렬의 곱셈은 다음과 같은 모양을 만족할 때에 정의할 수 있어요.

    $$\underbrace{C}_{m\times p} = \underbrace{A}_{m\times n}\times \underbrace{B}_{n\times p}$$

    이렇게 행렬의 형태가 잡혀 있다면, 다음과 같은 곱셈 정의가 가능해요.

    $$C_{jk} = \sum_{l=1}^{n} a_{jl} b_{lk},\;j = 1,\;\cdots,\;m,\;k = 1,\;\cdots,\;p$$

    그런데 이건 \(A\)의 \(j\)번째 행과 \(B\)의 \(k\)번째 열의 성분별 곱과 같아요. 이걸 벡터처럼 표시한다면,

    $$C_{jk} = \vec{a_{j}} \cdot \vec{b_{k}}$$

    가 됩니다.

    곱셈은 왜 이 따위로 정의가 될까요?

    그런데 왜 이런 식으로 정의를 하는 걸까요?  다음과 같은 연립방정식 두 세트가 있다고 생각해봐요.

    $$ \begin{cases} y_{1} = a_{11}x_{1} + a_{12}x_{2} \\ y_{2} = a_{21}x_{1} + a_{22}x_{2} \end{cases}$$

    $$ \begin{cases} x_{1} = b_{11}w_{1} + b_{12}w_{2} \\ x_{2} = b_{21}w_{1} + b_{22}w_{2} \end{cases}$$

    그러고 나서 \(A,\;B\)를 각각 위와 아래의 coefficient matrix라고 생각하고,

    $$\vec{x} = \pmatrix{x_{1} \\ x_{2}},\;\vec{w} = \pmatrix{w_{1} \\ w_{2}},\; \vec{y} = \pmatrix{y_{1} \\ y_{2}}$$

    라고 둔다면, 

    $$\vec{y} = AB\vec{w}$$가 되며 계산을 해보면 위에서 했던 정의처럼 나오게 됩니다. 그래서 정의를 그렇게 하는 거에요. 분량 관계상 결과는 생략할게요. 더 큰 행렬의 곱도 이런 식으로 확장해나가면 됩니다. 정 찝찝하면 수학적 귀납법 쓰시면 되겠어요.

     

    그런데 아까 위에서처럼 벡터 곱의 형태로 곱셈을 이해하면 컴퓨터 계산에서 유리하다고 해요. 컴퓨터는 한번에 유사한 계산을 여러개 때려넣어서 병렬식으로 하는 계산에 특출난데, 행렬의 곱을 병렬처리하여 계산할 수 있기 때문이라고 하는데요. 이해해봅시다. \(C = AB\)에 대해 다시 생각해본다면, 편의상 \(A\)의 벡터는 행벡터, \(B\)의 벡터는 열벡터라고 한다면,

    $$\eqalign{AB &= \pmatrix{\vec{a_{1}}\cdot\vec{b_{1}} & \vec{a_{1}}\cdot\vec{b_{2}} & \cdots & \vec{a_{1}}\cdot\vec{b_{n}} \\ \vec{a_{2}}\cdot\vec{b_{1}} &\vec{a_{2}}\cdot\vec{b_{2}} & \cdots &\vec{a_{2}}\cdot\vec{b_{n}} \\ \vdots & \vdots & \ddots & \vdots \\ \vec{a_{m}}\cdot\vec{b_{1}} &\vec{a_{m}}\cdot\vec{b_{2}} & \cdots & \vec{a_{m}}\cdot\vec{b_{n}} } \\ &= A[\vec{b_1} \; \vec{b_{2}} \; \cdots \; \vec{b_n}] }$$

    처럼 써볼 수 있어요. 이때 프로세서에 \(B\)의 \(n\)개의 열을 하나씩 때려놓고 순서대로 $$[A\vec{b_1}, \; A\vec{b_{2}}, \; \cdots , \; A\vec{b_n}]$$를 계산시킨 다음 합치면 하나씩 성분을 계산하는 것보다 더 빠르게 계산할 수 있는 이득을 볼 수 있다고 해요.

    독특한 형태의 행렬들

    앞으로 간간히 튀어나오는 행렬들에 대해 몇 개 알아보기로 해요

    전치행렬(Transpose matrix)

    전치행렬이란 행과 열의 역할을 바꾼 행렬을 말해요. 즉,

    $$B = A^{t} = (a_{ij})^{t} = (a_{ji})$$

    이렇게 두면 몇 가지 성질을 얻는데요!

    • \(m\times n\) 행렬의 transpose는 \(n\times m\) 행렬이 됩니다.
    • \((A^{t})^{t} = A\)
    • \((A+B)^{t} = A^{t} + B^{t} \)
    • \((cA)^{t} = cA^{t} \)
    • \((AB)^{t} = B^{t} A^{t} \) ★

    마지막 것은 행벡터와 열벡터의 곱으로 생각해보면 편해요! 우리가 행렬의 성분을 구할 때에 왼쪽에 곱해진 행렬 \(A\)의 행과 오른쪽에 곱해진 행렬 \(B\)의 열을 성분별로 곱해서 더해서 구했죠? (바로 위에서 했잖아요!!) 그것의 전치행렬은 \(B\)의 열을 행처럼 바꾸고, \(A\)의 행을 열처럼 바꾸어서 곱하는 것이 될 거에요. 이걸 식으로 쓰면,

    $$\eqalign{(AB)_{ji}^{t}&= (AB)_{ij} \\ &= \sum_{l}{a_{il}b_{lj}} \\ &= \vec{b_{j}}^{t} \cdot \vec{a_{i}}^{t} \\ &= (B^{t} A^{t})_{ji}}$$ 벡터도 transpose 취할 수 있을 테니... 이해가 되시려나요?

    대칭행렬/반대칭행렬(Symmetric/ skew-symmetric matrix)

    다음을 만족합니다. $$A^{t} = A,\;B^{t} = -B$$

    그러므로 정사각 행렬(square matrix)일 수밖에 없겠죠? 

    삼각 행렬(triangular matrix)

    주대각성분 위쪽으로만 0이 아닌 값(실수든 복소수든)이 있다면 상삼각 행렬(upper triangular matrix), 반대의 경우는 하삼각 행렬(lower triangular matrix)라고 합니다. 이어서 나올 선형연립방정식에서 쓰이는 행렬이니 당장 중요한 행렬이라고 해도 되겠어요.

    대각 행렬(diagonal matrix)

    main diagonal만 0이 아니고 나머지는 0인 경우에 해당합니다.

    멱영행렬(nilpotent matrix)

    어떤 자연수 \(n\)가 존재하여 \(B^{n} = O\), 즉 영행렬이 되는 경우를 말합니다.

    멱등행렬(idempotent matrix)

    \(A^2 = A\)를 만족하는 행렬입니다.


    글이 너무 길어질 것 같으니 연립방정식부터는 다음 글에서 다루도록 하겠습니다.

    댓글