열렬히.뛰기

3. 피봇연산

수학 & 통계 > 최적화이론 > 수업 : 통수 & 선계 > 피봇연산

피봇연산

기본행연산

  1. 행의 교환
    • i번재 행과 j번째 행을 바꾼다.
\begin{pmatrix} a & b & c \\ 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} \Rightarrow \begin{pmatrix} 1 & 2 & 3 \\ a & b & c \\ 4 & 5 & 6 \end{pmatrix}
  1. 행의 상수곱
    • i번째 행에 특정 수를 곱한다.
    • ex. 2번째 행에 2를 곱한 결과
\begin{pmatrix} a & b & c \\ 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} \Rightarrow \begin{pmatrix} a & b & c \\ 2 & 4 & 6 \\ 4 & 5 & 6 \end{pmatrix}
  1. 행의 합
    • i번째 행에 k배한 j번째 행을 더한다.

    • 2번째 행에 -4를 곱한 뒤 3번째 행에 더한 모습

      \begin{pmatrix} 1 & 2 & 3 \end{pmatrix} \cdot (-4) \; + \begin{pmatrix} 4 & 5 & 6 \end{pmatrix} = \begin{pmatrix} 0 & -3 & -6 \end{pmatrix}

\begin{pmatrix} a & b & c \\ 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} \Rightarrow \begin{pmatrix} a & b & c \\ 1 & 2 & 3 \\ 0 & -3 & -6 \end{pmatrix}

기본행렬과 단위행렬

E = \begin{matrix} \end{matrix}

행렬과 연립방정식

행렬로 연립방정식 표현하기

다음과 같은 방정식이 있다고 가정하자.

2x + 3y + z = 7\\ 3x + 10y + 6z = 18\\ 5x - 4y + 2z = 11

이를 다시 표현하면 다음과 같다.

\begin{pmatrix} 2 & 3 & 1 \\ 3 & 10 & 6 \\ 5 & 4 & 7 \\ \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} 7 \\ 18 \\ 11 \end{pmatrix}

또, 기호로 바꾸면 A\underline{x} = \underline{b}으로 바꿔 쓸 수 있다.

이때 행렬 \bold{A}와 벡터 \underline{b}를 한 행렬에 모은 것을 확대행렬이라고 한다.

\left[ \begin{array} {rrr|r} 2 & 3 & 1 & 7 \\ 3 & 10 & 6 & 18 \\ 5 & 4 & 7 & 11 \\ \end{array} \right]

가우스-조르당 소거법

  • 기본행연산을 통해서 확대행렬역삼각행렬로 바꿔주는 작업
  • 연립방정식을 푸는 알고리즘.

역삼각행렬

다음과 같은 행렬을 역삼각행렬이라고 한다.

\begin{pmatrix} 1 & 3 & 4 & 5 & 9\\ 0 & 1 & 3 & 7 & 2\\ 0 & 0 & 1 & 6 & 1\\ 0 & 0 & 0 & 1 & 2\\ 0 & 0 & 0 & 0 & 1\\ \end{pmatrix}

가우스 소거법의 목표는 확대행렬을 역삼각행렬로 만들고,

다시 역삼각행렬의 주대각선을 모두 1로 만드는 것이다.

\left[ \begin{array} {rrrrr|r} 1 & 3 & 4 & 5 & 9 & 1\\ 0 & 2 & 3 & 7 & 2 & 2\\ 0 & 0 & 6 & 6 & 1 & 5\\ 0 & 0 & 0 & 2 & 2 & 10\\ 0 & 0 & 0 & 0 & 1 & 12\\ \end{array} \right]

그렇게 만들 경우, 각 변수의 값을 구하는 것이 굉장히 쉬워지기 때문이다.

\left[ \begin{array} {rrrrr|r} 1 & 3 & 4 & 5 & 9 & 1\\ 0 & 2 & 3 & 7 & 2 & 2\\ 0 & 0 & 6 & 6 & 1 & 5\\ 0 & 0 & 0 & 2 & 2 & 10\\ 0 & 0 & 0 & 0 & 1 & 12\\ \end{array} \right]

➡️ 이 경우, 위에서부터 x_{1}, \cdots, x_{5} 순서대로 해가 나온다.

예시

  1. 연립방정식을 확대행렬로 바꾼다.
\begin{align*} -2x - 5y& + 2z &= -3 \\ x + 3y& &= 4 \\ + y& + 3z &= 6 \end{align*}
\left[ \begin{array}{rrr|r} -2 & -5 & 2 & -3 \\ 1 & 3 & 0 & 4 \\ 0 & 1 & 3 & 6 \\ \end{array} \right]
  1. 기본행연산을 진행한다.
계산과정
\left[ \begin{array}{rrr|r} -2 & -5 & 2 & -3 \\ 1 & 3 & 0 & 4 \\ 0 & 1 & 3 & 6 \\ \end{array} \right]
\left[ \begin{array}{rrr|r} 1 & 0 & -6 & -11 \\ 0 & 1 & 2 & 5 \\ 0 & 0 & 1 & 1 \\ \end{array} \right]

➡️ R_{2} + R_{1} *3 (1열 변화)

↙️

➡️ R_{3} + R_{1} * 6 (3열 변화)

↙️

최종적으로, 확대행렬 \bold{M}\left[ \begin{array}{rrr|r} 1 & 0 & -6 & -11 \\ 0 & 1 & 2 & 5 \\ 0 & 0 & 1 & 1 \\ \end{array} \right]가 된다.

  • 여기까지의 과정, 즉 어떠한 행렬을 역삼각행렬로 만드는 작업을 가우스-소거법이라고 함.
  • 이를 방정식으로 쓰면 다음과 같다.
\begin{align*} x - 6z =& -11\\ y + 2z =&\; 5\\ z =&\; 1 \end{align*}
\begin{align*} x =& -5\\ y =&\; 3\\ z =&\; 1 \end{align*}
  1. 기본행연산을 진행한다.
연산 과정
\left[ \begin{array}{rrr|r} 1 & 0 & -6 & -11 \\ 0 & 1 & 2 & 5 \\ 0 & 0 & 1 & 1 \\ \end{array} \right]
\left[ \begin{array}{rrr|r} 1 & 0 & 0 & -5 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & 1 \\ \end{array} \right]

➡️ R_{3} + R_{2} * (-2) (3열 변화)

↙️

➡️ 완료

최종적으로 확대행렬 \bold{M}\left[ \begin{array}{rrr|r} 1 & 0 & 0 & -5 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & 1 \\ \end{array} \right]가 된다.

  • 이러한 작업을 가우스-조던 소거법이라고 함.
  • 아까 가우스 소거법까지 구한 값과 같다.