3. 피봇연산
수학 & 통계 > 최적화이론 > 수업 : 통수 & 선계 > 피봇연산
피봇연산
기본행연산
- 행의 교환
\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}
- 행의 상수곱
- 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}
- 행의 합
\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} 순서대로 해가 나온다.
예시
- 연립방정식을 확대행렬로 바꾼다.
\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]
- 기본행연산을 진행한다.
계산과정
\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*}
- 기본행연산을 진행한다.
연산 과정
\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]가 된다.
- 이러한 작업을 가우스-조던 소거법이라고 함.
- 아까 가우스 소거법까지 구한 값과 같다.