선형대수.1 - 연립방정식의 해

다시 공부 중...·2021년 11월 9일
0

연립일차방정식의 해

연립방정식의 행렬 표현

a11x1++a1nxn=b1am1x1++amnxn=bm    Ax=b\begin{matrix}a_{11}x_{1} + \cdots + a_{1n}x_{n} = b_{1} \\ \cdots \\ a_{m1}x_{1} + \cdots + a_{mn}x_{n} = b_{m} \end{matrix} \iff \boldsymbol{Ax}=\boldsymbol{b}

특수해 particular solution & 일반해 general solution

[108401212][x1x2x3x4]=[428]\begin{bmatrix} 1 & 0 & 8 & -4\\ 0 & 1 & 2 & 12\\ \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ x_3\\ x_4\\ \end{bmatrix}= \begin{bmatrix} 42 \\ 8 \end{bmatrix}

첫번째, 두번째 열이 1, 0으로 이루어져있어 해를 바로 구할 수 있다.

  • 특수해: 연립방정식을 만족하는 특정한 해
    [42800]\qquad\begin{bmatrix} 42\\ 8\\ 0\\ 0\\\end{bmatrix}

특수해에 Ax=0\boldsymbol{Ax}=\boldsymbol{0}을 만족시키는 해에 실수 λ\lambda를 곱해 더해도 Ax=b\boldsymbol{Ax}=\boldsymbol{b}를 만족한다.
A(xAx=b+λxAx=0)=AxAx=b+λAxAx=0=b+λ0=b\quad\boldsymbol{A}(\boldsymbol{x}_{\boldsymbol{Ax=b}} + \lambda\boldsymbol{x}_{\boldsymbol{Ax=0}})=\boldsymbol{A\boldsymbol{x}_{Ax=b}}+\lambda\boldsymbol{A\boldsymbol{x}_{Ax=0}} = \boldsymbol{b} + \lambda\boldsymbol{0} = \boldsymbol{b}

Ax=b\boldsymbol{Ax=b}를 만족하는 해는 첫번째, 두번째 열로 세번째, 네번째 열을 표현하여 구할 수 있다.
[8210][41201]\qquad\begin{bmatrix} 8\\ 2\\ -1\\ 0\\ \end{bmatrix} \quad\begin{bmatrix} -4\\ 12\\ 0\\ -1\\ \end{bmatrix}

  • 일반해: 연립방정식을 만족하는 해들의 집합
    x=[42800]+λ1[8210]+λ2[41201],λ1,λ2R\boldsymbol{x} = \begin{bmatrix} 42\\ 8\\ 0\\ 0\\ \end{bmatrix}+ \lambda_{1}\begin{bmatrix} 8\\ 2\\ -1\\ 0\\ \end{bmatrix}+ \lambda_{2}\begin{bmatrix} -4\\ 12\\ 0\\ -1\\ \end{bmatrix}, \quad\lambda_{1},\lambda_{2} \in \mathbb{R}

연립방정식의 일반해

  1. Ax=b\boldsymbol{Ax}=\boldsymbol{b}의 해 구하기
  2. Ax=0\boldsymbol{Ax}=\boldsymbol{0}의 해 구하기
  3. 과정2에서 구한 해에 임의의 스칼라를 곱해 과정1에서 구한 특수해에 더하기.

elementary transformation

위의 예제는 첫번째, 두번째 열이 0, 1로만 이루어져 풀기 쉬운 형태
다른 연립방정식을 위와 같이 풀기 쉬운 형태로 변환하는 방법이 elementary transformation.

elementary transformation

연립방정식을 풀기위해 미지수를 소거하는 작업을 행렬에서 수행한다.

  1. 두 방정식의 위치 교환 = 행렬에서 두 행간의 위치 교환
  2. 0이 아닌 실수를 방정식(행)에 곱하여 다른 방정식(행)에 더하기

elementary transformation을 수행하여 최종적으로 행렬을 사다리꼴행렬로 변환해야한다.

사다리꼴 행렬 row-echelon form matrix - 특수해 구하기

  • pivot: 행렬의 한 행에서 왼쪽에서부터 처음으로 0이 아닌 값. 항상 위의 행의 피벗보다 오른쪽에 있도록 elementary transformation을 수행한다. 피벗을 포함한 열은 피벗열.
    [pivotabc0pivotef00pivotg]\quad \begin{bmatrix} pivot & a & b & c \\ 0 & pivot & e & f \\ 0 & 0 & pivot & g \\ \end{bmatrix}
  • 사다리꼴 행렬:
    • 모든 값이 0인 행은 행렬의 가장 아랫열에 위치한다.
    • 임의의 행의 피벗은 항상 위의 행들의 피벗보다 오른쪽에 위치한다.
      [pivotabc0pivotef00pivotg][pivotab0pivote00pivot000][pivotabc0efg0pivothi0000]\begin{bmatrix} pivot & a & b & c \\ 0 & pivot & e & f \\ 0 & 0 & pivot & g \\ \end{bmatrix} \quad \begin{bmatrix} pivot & a & b \\ 0 & pivot & e \\ 0 & 0 & pivot \\ 0 & 0 & 0 \\ \end{bmatrix} \quad \begin{bmatrix} pivot & a & b & c \\ 0 & e & f & g \\ 0 & pivot & h & i \\ 0 & 0 & 0 & 0 \\ \end{bmatrix}
  • 기본변수 basic variables: 피벗을 포함한 열에 대응하는 변수
  • 자유변수 free variables: 피벗을 포함하지 않는 열에 대응하는 변수
  • Ax=b\boldsymbol{Ax}=\boldsymbol{b}의 특수해
    • Ax=b\boldsymbol{Ax}=\boldsymbol{b}를 확대행렬 augmented matrix
      [Ab][\boldsymbol{A}|\boldsymbol{b}]로 작성하고 elementary transformation을 통해 사다리꼴 행렬로 변환.
    • 사다리꼴에서 수직선 좌측의 피벗열을 조합해 수직선 우측의 변환된 b\boldsymbol{b}를 표현할 수 있는 기본변수의 값을 정하고 나머지 자유변수를 0으로 설정하면 그 값이 특수해.

2x1+4x22x3x4+4x5=34x18x2+3x33x4+x5=2x12x2+x3x4+x5=0x12x2+0x33x4+4x5=a    [24214348331212111012034a]\begin{matrix} -2x_1 + 4x_2 - 2x_3 - x_4 + 4x_5 = -3 \\ 4x_1 - 8x_2 + 3x_3 - 3x_4 + x_5 = 2 \\ x_1 - 2x_2 + x_3 - x_4 + x_5 = 0 \\ x_1 - 2x_2 + 0x_3 - 3x_4 + 4x_5 = a\\ \end{matrix} \iff \begin{bmatrix} -2 & 4 & -2 & -1 & 4 & | & -3 \\ 4& -8& 3& -3& 1& |& 2 \\ 1& -2& 1& -1& 1& |& 0 \\ 1& -2& 0& -3& 4& |& a \\ \end{bmatrix}

elementary transformation 수행
[12111000113200012100000a+1]    x12x2+x3x4+x5=0x3x4+3x5=2x42x5=10=a+1\rightsquigarrow \begin{bmatrix} 1& -2& 1& -1& 1& |& 0 \\ 0& 0& 1& -1& 3& |& -2 \\ 0& 0& 0& 1& -2& |& 1 \\ 0& 0& 0& 0& 0& |& a+1 \\ \end{bmatrix} \iff \begin{matrix} x_1& -2x_2& +x_3& -x_4& +x_5& = 0 \\ &&x_3& -x_4& +3x_5& = -2 \\ &&&x_4& -2x_5& = 1 \\ &&&&0& = a+1\\ \end{matrix}

a=1a=-1 이고
λ1[1000]+λ2[1100]+λ3[1110]=[0210],λ3=x4=1λ2=x3=1λ1=x1=2\lambda_1\begin{bmatrix} 1\\0\\0\\0\\\end{bmatrix}+ \lambda_2\begin{bmatrix} 1\\1\\0\\0\\\end{bmatrix}+ \lambda_3\begin{bmatrix} -1\\-1\\1\\0\\\end{bmatrix}= \begin{bmatrix} 0\\-2\\1\\0\\\end{bmatrix}, \qquad \begin{matrix} \lambda_3 = x_4 = 1\\ \lambda_2 = x_3 = -1\\ \lambda_1 = x_1 = 2 \\ \end{matrix}

자유변수는 모두 0으로 처리하면 특수해 x\boldsymbol{x}
x=[20110]\boldsymbol{x}=\begin{bmatrix}2\\0\\-1\\1\\0\end{bmatrix}

기약 사다리꼴 행렬 reduced row-echelon form matrix - 일반해 구하기

  • 기약 사다리꼴 행렬
    • 사다리꼴 행렬
    • 모든 피벗은 1
    • 피벗열에서 피벗을 제외한 성분은 모두 0
  • 가우시안 소거법 gaussian elimination: 연립방정식을 기약 사다리꼴 행렬로 만들기위한 elementary transformation 작업
  • Ax=0\boldsymbol{Ax}=\boldsymbol{0}의 해
    • 기약 사다리꼴 행렬
      A=[130030010900014]\boldsymbol{A}=\begin{bmatrix} 1&3&0&0&3\\ 0&0&1&0&9\\ 0&0&0&1&-4\\ \end{bmatrix}
    • 피벗열이 아닌 열을 그 열의 좌측에 위치한 피벗열들로 표현하면 쉽게 해를 구할 수 있다.
      x=λ1[31000]+λ2[30941],λ1,λ2R\boldsymbol{x}= \lambda_1\begin{bmatrix}3\\-1\\0\\0\\0\end{bmatrix}+ \lambda_2\begin{bmatrix}3\\0\\9\\-4\\-1\end{bmatrix}, \quad \lambda_1,\lambda_2 \in \mathbb{R}
    • minus-1 trick: 더 쉽게 해를 구하기 위한 트릭. 피벗열이 아닌 열이 값이 -1인 피벗을 가질 수 있도록 [010]\begin{bmatrix}0&\cdots&-1&\cdots&0\end{bmatrix}행을 추가. 피벗이 -1인 열 자체가 해가 된다.
      A~=[1300301000001090001400001]\boldsymbol{\tilde{A}}=\begin{bmatrix} 1&3&0&0&3\\ \color{red}0&\color{blue}-1&\color{red}0&\color{red}0&\color{red}0\\ 0&0&1&0&9\\ 0&0&0&1&-4\\ \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{blue}-1\\ \end{bmatrix}

역행렬 구하기

역행렬을 구하려는 행렬과 단위 행렬을 확대 행렬로 묶고 가우시안 소거법 수행, 기약 사다리꼴로 변환한다.
수직바 좌측의 A\boldsymbol{A}를 단위행렬로 변환했을 때, 수직바 우측이 A1\boldsymbol{A}^{-1}이 된다.

ARn×n\boldsymbol{A} \in \mathbb{R}^{n\times n}
[AIn][InA1][\boldsymbol{A}|\boldsymbol{I}_n] \rightsquigarrow \cdots \rightsquigarrow [\boldsymbol{I}_n|\boldsymbol{A}^{-1}]

왜?
b\boldsymbol{b}In\boldsymbol{I}_n의 각 열인 연립방정식을 생각해보면 다음과 같고
Ax(1)=[100],Ax(2)=[010],,Ax(n)=[001]\boldsymbol{Ax}^{(1)}=\begin{bmatrix}1\\0\\\vdots\\0\\\end{bmatrix}, \boldsymbol{Ax}^{(2)}=\begin{bmatrix}0\\1\\\vdots\\0\\\end{bmatrix}, \cdots, \boldsymbol{Ax}^{(n)}=\begin{bmatrix}0\\\vdots\\0\\1\\\end{bmatrix}

각 연립방정식의 해 x(i)\boldsymbol{x}^{(i)}를 모아 하나의 행렬로 만든다면
X=[x(1)x(2)x(n)]\boldsymbol{X}=[\boldsymbol{x}^{(1)}|\boldsymbol{x}^{(2)}|\cdots|\boldsymbol{x}^{(n)}]

AX=In\boldsymbol{AX}=\boldsymbol{I}_n의 해는 A1\boldsymbol{A}^{-1} 이 된다.

해를 구하기 위한 확대 행렬 [AIn][\boldsymbol{A}|\boldsymbol{I}_n]의 수직바 좌측을 가우시안 소거법을 통해 In\boldsymbol{I}_n로 바꾼다면 이는 기약 사다리꼴 행렬이기도하므로 수직바 우측이 AX=In\boldsymbol{AX}=\boldsymbol{I}_n의 해인 A1\boldsymbol{A}^{-1}이다.




















profile
인공지능, 개발 공부

0개의 댓글