Chapter3. 행렬과 행렬대수1

장원준·2022년 11월 7일
0

선형대수학

목록 보기
3/9

네이버 부스트캠프 AI Tech 4기 선형대수학 스터디 2회차

선형대수학 이상구 저 Chapter3


3.1 행렬연산

정의 [행렬의 상등]

  • 두 행렬 A=[aij]m×n,B=[bij]m×nA = [a_{ij}]_{m \times n}, B = [b_{ij}]_{m \times n}가 모든 i, ji,\ j에 대해 aij=bija_{ij} = b_{ij}를 만족하면 서로 같다(equal).
    A=BA = B
  • 그냥 대응하는 성분이 모두 같아야 같다고 하는 것

정의 [행렬의 덧셈과 스칼라배]

  • 두 행렬 A=[aij]m×n,B=[bij]m×nA = [a_{ij}]_{m \times n}, B = [b_{ij}]_{m \times n}와 실수 kk에 대해 A, BA,\ B의 합(sum) A+BA + BAA의 스칼라배(scalar multiple) kAkA를 아래와 같이 정의
    A+B=[aij+bij]m×n,     kA=[kaij]m×nA + B = [a_{ij} + b_{ij}]_{m \times n},\ \ \ \ \ kA = [ka_{ij}]_{m \times n}
  • 행렬 덧셈을 정의하려면 두 행렬의 크기가 같아서 대응하는 성분의 합을 구할 수 있어야 함

정의 [행렬의 곱셈]

  • 두 행렬 A=[aij]m×p,B=[bij]p×nA = [a_{ij}]_{m \times p}, B = [b_{ij}]_{p \times n}에 대해 A, BA,\ B의 곱(product) ABAB를 아래와 같이 정의
    AB=[cij]m×nAB = [c_{ij}]_{m \times n}
  • 여기서 cij=ai1b1j+ai2b2j++aipbpjc_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \dots + a_{ip}b_{pj}
  • 앞 행렬 AA의 행벡터와 뒤 행렬 BB의 열벡터의 내적(inner product)을 계산하는 방식
  • m×p, p×nm \times p,\ p \times n과 같이 사이의 pp는 동일해야 함
  • 선형연립방정식은 벡터 형식으로 표현 가능
  • Ax=bA\mathrm{x} = \mathrm{b}
    • A=[aij]m×n, x=[x1x2xn], b=[b1b2bn]A = [a_{ij}]_{m \times n},\ \mathrm{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix},\ b = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix}

  • 행렬 A, B, CA,\ B,\ C와 스칼라 a, ba,\ b에 대해 아래의 정리가 성립
    • A+B=B+AA + B = B + A 교환법칙
    • A+(B+C)=(A+B)+CA + (B + C) = (A + B) +C 결합법칙
    • A(BC)=(AB)CA(BC) = (AB)C 결합법칙
    • A(B+C)=AB+ACA(B + C) = AB + AC 분배법칙
    • (B+C)A=BA+CA(B+C)A = BA + CA 분배법칙
    • a(B+C)=aB+aCa(B+C) = aB + aC
    • (a+b)C=aC+bC(a+b)C = aC + bC
    • (ab)C=a(bC)(ab)C = a(bC)
    • a(BC)=(aB)C=B(aC)a(BC) = (aB)C = B(aC)
    • 1A=A1A = A
  • 실수의 연산 성질과 비슷하지만 행렬 연산에서는 일반적으로 ABBAAB \neq BA라는 것 주의
  • ABAB는 정의되지만 BABA는 정의되지 않을 수도 있음

정의 [영행렬]

  • 영행렬(zero matrix)은 성분이 모두 0인 행렬로 OO 또는 Om×nO_{m \times n}로 표현
  • 영벡터와 마찬가지로 영행렬도 존재
  • 연산은 실수의 연산에서 0을 더하고 0을 곱하는 것과 같음
    • A+O=O+A=AA + O = O + A = A
    • AA=OA - A = O
    • OA=AO - A = -A
    • AO=OA=OAO = OA = O
  • AB=OAB = O라고 해도 AABB 모두 OO가 아닐 수 있음 주의
  • AB=AC, AOAB = AC,\ A \neq O이지만 BCB \neq C일 수 있음 주의

정의 [단위행렬]

  • 주대각성분이 모두 1, 나머지 성분이 모두 0인 nn차 정사각행렬을 단위행렬(identity matrix)라고 함. InI_n
  • In=[100010001]I_n = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}
  • AAm×nm \times n 행렬일 때, ImA=A=AInI_mA = A = AI_n

정의 [행렬의 거듭제곱]

  • AAnn차의 정사각행렬, AA의 거듭제곱은 아래와 같이 정의
  • A0=In, Ak=AAAA^0 = I_n,\ A^k = AA \cdots A(kk개)
    • n0=1n^0 = 1이듯이 행렬의 0제곱은 단위행렬이다.
  • AA가 정사각행렬이고 r, sr,\ s가 음이 아닌 정수이면 다음이 성립
    ArAs=Ar+s,   (Ar)s=ArsA^rA^s = A^{r + s},\ \ \ (A^r)^s = A^{rs}
  • AB=BAAB = BA일 경우에만, 실수와 같이 (A+B)2=A2+2AB+B2(A + B)^2 = A^2 +2AB + B^2성립

정의 [전치행렬]

  • 행렬 A=[aij]m×nA = [a_{ij}]_{m \times n}에 대해 AA의 전치행렬(transpose)을 ATA^T로 나타냄
    AT=[aij]n×m,  aij=ajiA^T = [{a_{ij}}']_{n \times m},\ \ {a_{ij}}' = a_{ji}
  • 원래 행렬의 행과 열을 바꾸어 얻은 행렬
  • 그냥 대각선 기준으로 거울처럼 뒤집었다고 생각
  • 두 행렬 A, BA,\ B와 임의의 스칼라 kk에 대해 다음이 성립
    • (AT)T=A(A^T)^T = A
    • (A+B)T=AT+BT(A + B)^T = A^T + B^T
    • (AB)T=BTAT(AB)^T = B^TA^T 순서가 바뀌는구나!
    • (kA)T=kAT(kA)^T = kA^T 실수는 그대로 나오네

정의 [대각합]

  • 행렬 A=[aij]m×nA = [a_{ij}]_{m \times n}대각합(trace)은 tr(AA) = a11+a22++ann=i=1naiia_{11} + a_{22} + \cdots + a_{nn} = \sum^n_{i = 1}a_{ii}
  • A, BA,\ B가 같은 크기의 정사각행렬이고, cc가 실수이면 다음이 성립
    • tr(ATA^T) = tr(AA) 전치는 대각 기준으로 뒤집은 거니 동일하겠지
    • tr(cAcA) = cc tr(AA)
    • tr(A+BA + B) = tr(AA) ++ tr(BB)
    • tr(ABA - B) = tr(AA) - tr(BB)
    • tr(ABAB) = tr(BABA)

3.2 역행렬

정의 [가역행렬과 역행렬]

  • nn차의 정사각행렬 AA에 대해 아래를 만족하는 행렬 BB가 존재하면 AA가역(invertible, nonsingular)이라고 함
    AB=In=BAAB = I_n = BA
  • 이때 BBAA역행렬(inverse matrix)이라고 하며, BB가 존재하지 않으면 AA비가역(noninvertible, singular)
  • 곱하는 순서를 바꿔도 성립할 뿐만 아니라 단위행렬이 되어야 역행렬이구나
  • nn차의 정사각행렬 AA가 가역이면 AA의 역행렬은 유일
  • 역행렬을 구하는 쉬운 방식이 있음
  • 행렬 A=[abcd]A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}가 가역일 필요충분조건은 adbc0ad - bc \neq 0 이 경우 아래를 만족

Figure1Figure 1
  • 함수에서 역함수를 표현하는 것과 비슷하게 1^{-1}을 사용
  • nn차의 정사각행렬 A, BA,\ B가 가역이고 kk는 0이 아닌 스칼라일 때, 아래의 정리가 성립
    • A1A^{-1}은 가역이고, (A1)1=A(A^{-1})^{-1} = A
    • ABAB는 가역이고, (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}
    • kAkA는 가역이고, (kA)1=1kA1(kA)^{-1} = {1 \over k}A^{-1}
    • AnA^n은 가역이고, (An)1=An=(A1)n(A^n)^{-1} = A^{-n} = (A^{-1})^n
  • AA가 가역행렬이면 아래의 정리가 성립
    • ATA^T는 가역이고, (AT)1=(A1)T(A^T)^{-1} = (A^{-1})^T

3.3 기본행렬

정의 [기본행렬과 치환행렬]

  • InI_n기본행연산(elementary row operation, ERO)을 한 번 적용해 얻은 행렬을 기본행렬(elementary matrices), 치환(permutation)행렬InI_n의 행들을 교환하여 얻어진 행렬
  • 대각 성분이 1로 채워진 행렬에서 아래 기본행연산(ERO)을 한 번 시행한 행렬을 기본행렬
    • 두 행을 교환
    • 한 행에 상수배를 하여 다른 행에 연산
    • 한 행에 0이 아닌 상수배

근데... 이 기본행렬을 어디다 쓸까?

  • 임의의 행렬 AA의 왼쪽에 기본행렬을 곱한다면, 그것은 기본행렬에 했던 기본행연산을 주어진 행렬 AA에 시행한 결과와 같음
  • 기본행렬은 기본행연산을 머금고 있구나!

  • 이는 단위행렬에 기본행연산을 대신 적용해 곱하면서 기존 행렬에 연산을 적용한 것처럼 쓸 수 있다는 의미
  • 참고로 기본행렬에 기본행연산을 더 적용하여 얻은 행렬도 위와 같은 성질을 가짐
    • 꼭 기본행연산을 한 번 적용한 기본행렬만 기존 행렬의 연산을 대신할 수 있는 게 아니라는 뜻
    • 단위행렬에 기본행연산을 적용해 만든 행렬은 그 기본행연산을 머금고 있다가 기존의 행렬에 전해줌!
  • 기본행렬의 역행렬은 기본행렬이다. 다만, 자기 자신을 역행렬로 가질 수 있고 그렇지 않을 수도 있다. 어쨌든 기본행렬이란 것이다.

그럼 이 성질을 역행렬에 적용해보자.

  • 임의의 nn차 정사각행렬 AA에 대해 아래 명제는 동치
    • AA는 가역(invertible)행렬
      • 곱했을 때 AA를 단위행렬로 만드는 역행렬이 존재한다는 의미
    • AAInI_n과 행동치(row equivalent)이다. 즉, RREF(AA) = InI_n
      • 행동치라는 것은 기본행연산을 가해 도출할 수 있는 행렬과의 관계였음
      • AA를 반복적인 기본행연산(RREF)을 통해 단위행렬로 만들 수 있단 의미
      • 그 기본행연산을 단위행렬 InI_n에 가해 만든 행렬을 곱하면 AA가 단위행렬이 되니까, 이는 역행렬
    • AA는 기본행렬(elementary matrix)들의 곱으로 쓸 수 있다.
      • 위의 명제처럼 반복적인 기본행연산(RREF)을 InI_n에 적용해 AA에 곱하는 게 가능할 것
      • 여러 개의 기본행렬이 각각 연산을 머금고 곱해진다면 AAInI_n으로 만드는 게 가능
      • 따라서 역행렬이 존재
    • Ax=0A\mathrm{x} = 0은 유일한 해(trivial solution) 0\mathrm{0}을 가진다.
      • 앞선 명제에 따라 AA에 RREF를 하면 단위행렬이 될 것인데, 이는 모든 변수가 0이 되어야 한다는 의미
    • Ax=bA\mathrm{x} = \mathrm{b}는 모든 bRn\mathrm{b} \in \mathbb{R}^n에 대해 유일해를 가짐
      • 바로 위 명제와 비슷한 꼴이지만, 각 변수의 값은 b\mathrm{b}의 개별 요소 값을 가질 것 즉, 유일해를 가짐
  • 이들을 한 문장으로 정리하면?
    만약 AA의 역행렬이 존재한다면 Ax=0A\mathrm{x} = 0이라는 식에서 x=0\mathrm{x} = 0인 자명한 해를 갖게 된다. 그러므로 행렬 AA는 ERO를 유한히 반복함으로써 단위행렬로 만들 수 있다. AA가 단위행렬과 행동치이므로 AA에 취하는 유한번의 ERO에 해당하는 유한개의 기본행렬이 존재하게 된다.

근데 RREF는 기약 행 사다리꼴로, Gauss-Jordan 소거법을 통해 만드는 것이었음(Chapter 2 참조)... Gauss-Jordan 소거법과 역행렬의 관계는 뭐지?

  • 이는 다시말해 아래와 같은 Gauss-Jordan 소거법을 기본행렬의 곱으로 표현할 수 있다는 것이고, 이들은 가역행렬인 AA를 단위행렬로 만들테니, 역행렬이라고 볼 수 있다는 것. Gauss-Jordan 소거법으로 역행렬을 구할 수 있다.
    AEROREF(A)ERORREF(A)A \xrightarrow{\text{ERO}} \mathrm{REF}(A) \xrightarrow{\text{ERO}} \mathrm{RREF}(A)
  • 그럼 구체적으로 어떻게?
    • 1 단계: 주어진 행렬 AA에 단위행렬 InI_n을 첨가해 n×2nn \times 2n 행렬 [A:In][A : I_n]을 제작
    • 2 단계: 1 단계에서 만든 행렬 [A:In][A : I_n]의 RREF를 구함
    • 3 단계: 2 단계에서 얻은 RREF를 [C    D][ C \ \ \vdots \ \ D]라고 하면 다음이 성립
      • C=InC = I_n이면 D=A1D = A^{-1}
      • CInC \neq I_n이면 AA는 비가역이고 A1A^{-1}(AA의 역행렬)은 존재하지 않음

역행렬을 구하고 싶은 행렬 AA의 오른쪽에 냅다 단위행렬을 붙이고, Gauss-Jordan 소거법(RREF 연산)을 해서 AA가 단위행렬이 된다면, 그 오른쪽에 있는 행렬(단위행렬이 변한 것이겠지)이 역행렬이구나!

  • 결론적으로 역행렬을 구하는 두 가지 방식을 배웠음
    • Figure1Figure 1에서처럼 행렬 요소끼리의 연산으로 구하는 법(22차 정사각행렬)
    • 단위행렬 첨가 및 Gauss-Jordan 소거법으로 구하는 법 (nn차 정사각행렬)
  • 2×22 \times 2인 2차 정사각행렬이라면 아무 방식이나 상관없음
  
profile
장원준

0개의 댓글