[선형대수학] 행렬의 기본행 연산

김기정·2024년 6월 24일
0

선형대수학

목록 보기
5/6

이번 포스팅에서는 기본행 연산에 대해 알아보겠습니다.

행렬은 처음 행렬(1)을 살펴보면 다항
식을 표현하기 위해 사용되었다고 했습니다. 조금 더 구체적으로 설명해보겠습니다.

연립방정식의 해의 존재 여부

다항식이 다음과 같이 존재한다고 했을 때 식의 개수는 mm개이고 변수의 개수는 nn개 입니다.

{a11x1+a12x2+a13x3++a1nxn=y1a21x1+a22x2+a23x3++a2nxn=y2a31x1+a32x2+a33x3++a3nxn=y3am1x1+am2x2+am3x3++amnxn=ym\begin{cases} a_{11}x_1 + a_{12}x_2 + a_{13}x_3 + \cdots + a_{1n}x_n &=&y_1 \\ a_{21}x_1 + a_{22}x_2 + a_{23}x_3 + \cdots + a_{2n}x_n &=&y_2 \\ a_{31}x_1 + a_{32}x_2 + a_{33}x_3 + \cdots + a_{3n}x_n &=&y_3 \\ \qquad \qquad \qquad \qquad \vdots \\ a_{m1}x_1 + a_{m2}x_2 + a_{m3}x_3 + \cdots + a_{mn}x_n &=&y_m \end{cases}

그럼 우리는 3가지 경우를 찾을 수 있습니다. 변수의 개수가 식의 개수보다 많을 때(n>mn > m), 변수의 개수가 식의 개수보다 적을 때(n<mn < m) 마지막으로 변수의 개수와 식의 개수가 같을 때(n=mn = m)가 있습니다.

1. n>mn > m :
각각의 변수 마다 값이 있는 것이 아닌 공간으로써 존재하게됩니다.

예를 들어 다음과 같이 m = 1이고 n = 2인 경우를 살펴보겠습니다.

x1+x2=3x_1 + x_2 = 3

이때 x1,x2x_1, x_2의 값은 아래와 같이 표현할 수 있습니다. 즉, 2차원의 직선의 형태로 표현될 것입니다.
m > n 인 경우 그림

이 경우에는 변수 값이 무수히 많이 존재하게 됩니다.

2. n<mn < m :
이 경우에는 식을 만족하는 변수의 값이 존재하지 않을 수 있고 존재할 수도 있습니다. 이것은 예제를 통해 설명해보겠습니다.

case 1> 존재하는 경우

{x1+x2=2  (R1)x1+3x2=4  (R2)x1+x2=0  (R3){x1+x2=2x1+x2=0x1+x2=0(R22R1R2){x1+x2=2x1+x2=00x1+0x2=0(R3R2R3)\begin{matrix} \begin{cases} x_1 + x_2 &=& 2 \ \cdots\ (R_1) \\ x_1 + 3x_2 &=& 4 \ \cdots\ (R_2) \\ -x_1 + x_2 &=& 0 \ \cdots\ (R_3) \end{cases} & \Rightarrow & \begin{cases} x_1 + x_2 &=& 2 \\ -x_1 + x_2 &=& 0 \\ -x_1 + x_2 &=& 0 \end{cases} \quad (R_2-2R_1 \rightarrow R_2) \\ \\ & \Rightarrow & \begin{cases} x_1 + x_2 &=& 2 \\ -x_1 + x_2 &=& 0 \\ 0\cdot x_1 +0\cdot x_2 &=& 0 \end{cases} \quad (R_3-R_2 \rightarrow R_3) \end{matrix}

위의 연립방정식은 당연히 x1=1 & x2=1x_1 = 1 \ \& \ x_2 = 1이여야 합니다. 그리고 연립방정식을 해를 구하듯이 하면 위와 같이 모든 계수가 0인 식을 얻을 수 있습니다.

다시말해, n<mn < m인 경우 해가 존재하기 위해서는 연립방정식을 풀 때 모든 계수가 0인 항등식 즉 0=00 = 0인 식이 반드시 포함됩니다. 즉, 한 개의 식은 삭제되어도 무방한 것이죠.

그럼 존재하지 않는 경우도 살펴보겠습니다.

case2> 존재하지 않는 경우

{x1+x2=3  (R1)x1+2x2=4  (R2)x1x2=1  (R3){x1+x2=3x1+2x2=42x1+0x2=2(R1+R3R3){x1+x2=3x1+2x2=4x1+0x2=1(12R3R3)\begin{matrix} \begin{cases} x_1 + x_2 &=& 3 \ \cdots\ (R_1) \\ x_1 + 2x_2 &=& 4 \ \cdots\ (R_2) \\ x_1 - x_2 &=& -1 \ \cdots\ (R_3) \end{cases} & \Rightarrow & \begin{cases} x_1 + x_2 &=& 3 \\ x_1 + 2x_2 &=& 4 \\ 2x_1 + 0\cdot x_2 &=& 2 \end{cases} \quad (R_1+R_3 \rightarrow R_3) \\ \\ & \Rightarrow & \begin{cases} x_1 + x_2 &=& 3 \\ x_1 + 2x_2 &=& 4 \\ x_1 +0\cdot x_2 &=& 1 \end{cases} \quad ({1 \over 2}R_3 \rightarrow R_3) \end{matrix}

그럼 R1R_1x1x_1에 1을 대입했을때 x2=2x_2 = 2 그리고 R2R_2x1x_1에 1을 대입했을때 x2=32x_2 = {3\over 2}가 되어 서로 다른 결과를 만들어냅니다. 다른 방법으로 구하려고 해도 만족시키는 해를 찾을 순 없습니다. 하지만 완벽한 해를 찾을 수 없을 뿐 수학적인 방법을 활용해 근사치를 찾을 순 있습니다.

3. n=mn = m :
위의 경우들과 다른 이상적인 경우라 할 수 있습니다. 왜냐하면 변수에 대응하는 실수 값을 찾을 수 있기 때문입니다. 물론 위의 2-(case1)(n<mn < m, 존재하는 경우)처럼 연립방정식을 푸는 도중 0 = 0인 식을 만들면 1번(n>mn > m) 과 같은 케이스와 같아지긴 합니다.

이제 부터는 위의 경우에서 (0=00 = 0)이 식이 갖는 수학적인 의미에 대해 살펴보겠습니다.

먼저 연립방정식은 다음과 같이 행렬으로 나타낼 수 있습니다.

Let A be a m×nm \times n matrix & xRnx \in \R^n & yRmy \in \R^m.

{a11x1+a12x2++a1nxn=y1a21x1+a22x2++a2nxn=y2am1x1+am2x2++amnxn=ym[a11a12a1na21a22a2nam1am2amn][x1x2xn]=[y1y2ym]Ax=y\begin{matrix} \begin{cases} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n &=&y_1 \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n &=&y_2 \\ \qquad \qquad \qquad \vdots \\ a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n &=&y_m \end{cases} && \Rightarrow && \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix} \\ \\ && \Rightarrow && Ax = y \end{matrix}

그리고 만약 0 = 0인 항등식이 나오는 경우는 행렬 AA의 행벡터(RiR_i)가 linear dependent(선형종속) 이라고 할 수 있습니다.

Def> linear dependent

v1,v2,,vnRmv_1, v_2, \cdots ,v_n \in \R^m가 linear dependent(선형종속)이면 다음과 같은 Scalar가 존재한다(단, c1=c2==cn=0c_1 = c_2= \cdots =c_n = 0인 경우는 제외).
 c1,c2,,cnRsuch that\exist\ c_1, c_2, \cdots ,c_n \in \R \quad \text{such that}

c1v1+c2v2++cnvn=0c_1v_1 + c_2v_2 + \cdots +c_nv_n = \vec0

예를 들면 다음과 같습니다.
example>

(i)v1=[123],v2=[246],v3=[345]2v1+v2+0v3=0(\mathbf{i}) \quad v_1 = \begin{bmatrix}1 \\ 2 \\ 3\end{bmatrix} , v_2 = \begin{bmatrix}-2 \\ -4 \\ -6\end{bmatrix} , v_3 = \begin{bmatrix}3 \\ 4 \\ 5\end{bmatrix} \quad \Rightarrow \quad 2v_1 + v_2 + 0v_3 = \vec0
(ii)v1=[110],v2=[111],v3=[132]v1+2v2v3=0(\mathbf{ii}) \quad v_1 = \begin{bmatrix}1 \\ 1 \\ 0\end{bmatrix} , v_2 = \begin{bmatrix}-1 \\ 1 \\ 1\end{bmatrix} , v_3 = \begin{bmatrix}-1 \\ 3 \\ 2\end{bmatrix} \quad \Rightarrow \quad v_1 + 2v_2 - v_3 = \vec0

그럼 이와 반대되는 개념인 linear independent(선형독립)은 아래와 같습니다.

Def> linear independent

v1,v2,,vnRmv_1, v_2, \cdots ,v_n \in \R^m가 linear independent(선형독립)이면 다음과 같은 Scalar가 모두 0일때 말고는 존재하지 않는다.
 c1,c2,,cnRsuch that\nexists \ c_1, c_2, \cdots ,c_n \in \R \quad \text{such that}

c1v1+c2v2++cnvn=0c_1v_1 + c_2v_2 + \cdots +c_nv_n = \vec0

즉, 다음과 같은 경우만 위 수식을 만족한다.

c1=c2=c3==cn=0c_1 = c_2 = c_3 = \cdots =c_n = 0

지금 까지 선형 연립 방정식에 대한 해를 찾기 위해 다음을 알아보았습니다. 다시 정리하면 다음 사진 같습니다.

R1R2Rm[a11a12a1na21a22a2nam1am2amn][x1x2xn]=[y1y2ym]\begin{matrix} R_1 \cdots \\ R_2 \cdots \\ \vdots \\ R_m \cdots \\ \end{matrix} \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix}

Def> 기본 행 연산(ERO : Elementary Row Operations)

지금 까지 선형 연립 방정식을 해결하기 위해 행을 교환하거나 스칼라를 곱해서 더하거나 하는 연산을 수행해 해를 구했습니다. 기본 행 연산도 이와 같습니다.

기본 행 연산은 3가지 연산이 있습니다. 먼저 행렬 AAii번째 행벡터RiR_i를 다음과 같이 정의 하겠습니다.

A=[a11a12a1na21a22a2nam1am2amn] = [R1R2Rm]&Ri=[ai1ai2ain]A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \ = \ \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_m \end{bmatrix} \quad \& \quad R_i = \begin{bmatrix} a_{i1} \\ a_{i2} \\ \vdots \\a_{in} \end{bmatrix}
  1. 서로다른 두개의 행 교환하기.

    서로 다른 i,j{1,2,3,,m}i, j \in \{1,2,3,\cdots,m\}에 대해서 RiR_iRjR_j를 교환한다.

    A=[a11a12a1na21a22a2nai1ai2ainaj1aj2ajnam1am2amn] = [R1R2RiRjRm]RiRj[R1R2RjRiRm] = [a11a12a1na21a22a2naj1aj2ajnai1ai2ainam1am2amn]A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \cdots & a_{in} \\ \vdots & \vdots & \vdots & \vdots \\ a_{j1} & a_{j2} & \cdots & a_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \ = \ \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i \\ \vdots \\ R_j \\ \vdots \\ R_m \end{bmatrix} \Rightarrow^{R_i \Leftrightarrow R_j} \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_j \\ \vdots \\ R_i \\ \vdots \\ R_m \end{bmatrix} \ = \ \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{j1} & a_{j2} & \cdots & a_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \cdots & a_{in} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}
  2. 하나의 행에 scalar 곱을 취하기.

    임의의 행 Ri(i{1,2,3,,m})R_i (i \in\{1,2,3, \cdots, m\})에 scalar kRk \in \R을 곱한다.

    A=[a11a12a1na21a22a2nai1ai2ainam1am2amn] = [R1R2RiRm]kRiRi[R1R2kRiRm] = [a11a12a1na21a22a2nkai1kai2kainam1am2amn]A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \cdots & a_{in} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \ = \ \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i \\ \vdots \\ R_m \end{bmatrix} \Rightarrow^{kR_i \rightarrow R_i} \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ kR_i \\ \vdots \\ R_m \end{bmatrix} \ = \ \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ ka_{i1} & ka_{i2} & \cdots & ka_{in} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}
  3. 하나의 행에 scalar 곱을 한뒤 다른 행과 합치기.

    이제 임의의 행 RiR_i에 자기 자신의 행(RiR_i)과 다른 행(RjR_j)의 스칼라(kRk \in \R) 곱을 합친 행으로 교체할 수 있다.(무조건 iji \ne j)
    A=[a11a12a1na21a22a2nai1ai2ainaj1aj2ajnam1am2amn] = [R1R2RiRjRm]A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{i1} & a_{i2} & \cdots & a_{in} \\ \vdots & \vdots & \vdots & \vdots \\ a_{j1} & a_{j2} & \cdots & a_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix} \ = \ \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i \\ \vdots \\ R_j \\ \vdots \\ R_m \end{bmatrix}

    Ri+kRjRi[R1R2Ri+kRjRjRm] = [a11a12a1na21a22a2nai1+kaj1ai2+kaj2ain+kajnaj1aj2ajnam1am2amn]\Rightarrow^{R_i + kR_j \Rightarrow R_i} \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i+kR_j \\ \vdots \\ R_j \\ \vdots \\ R_m \end{bmatrix} \ = \ \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{i1}+ka_{j1} & a_{i2}+ka_{j2} & \cdots & a_{in}+ka_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ a_{j1} & a_{j2} & \cdots & a_{jn} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{bmatrix}

Def> Elementary matrix(기본행렬)

기본행렬이란 항등행렬(identity matrix)에서 한번의 기본 행연산을 수행한 행렬을 말합니다.

예를 들어 I3I_3에서는 다음과 같습니다.

I3=[100010001]{R1R3 : [001010100]3R1R1 : [300010001]R12R3R1 : [102010001]I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \quad \Rightarrow \quad \begin{cases} R_1 \Leftrightarrow R_3 \ : \ \begin{bmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \end{bmatrix} \\ \\ 3R_1 \rightarrow R_1 \ : \ \begin{bmatrix} 3 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \\ \\ R_1 - 2R_3 \rightarrow R_1 \ : \ \begin{bmatrix} 1 & 0 & -2 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \end{cases}

또한 일반적인 행렬 A에 기본 행연산을 취하는 것은 기본행렬을 앞에 곱하는 것과 같습니다. 예를 들어 설명해보겠습니다.

크기가 3×33 \times 3인 정방행렬 A에 대해 예를 들어 보겠습니다.

A=[123312210]A = \begin{bmatrix} 1 & 2 & 3 \\ 3 & 1 & 2 \\ 2 & 1 & 0 \\ \end{bmatrix} 에 대해서 1, 2, 3에 해당하는 연산을 비교해보겠습니다. 적용할 연산은 다음과 같습니다.

  • R1R3R_1 \Leftrightarrow R_3

    AR1R3[210312123]=[001010100][123312210]=ER1R3AA \Rightarrow^{R_1 \Leftrightarrow R_3} \begin{bmatrix} 2 & 1 & 0 \\ 3 & 1 & 2 \\ 1 & 2 & 3 \\ \end{bmatrix} \quad = \quad \begin{bmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 3 \\ 3 & 1 & 2 \\ 2 & 1 & 0 \\ \end{bmatrix} \quad = \quad E_{R_1 \Leftrightarrow R_3}A
  • 3R1R13R_1 \rightarrow R_1

    A3R1R1[369312210]=[300010001][123312210]=E3R1R1AA \Rightarrow^{3R_1 \rightarrow R_1} \begin{bmatrix} 3 & 6 & 9 \\ 3 & 1 & 2 \\ 2 & 1 & 0 \\ \end{bmatrix} \quad = \quad \begin{bmatrix} 3 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 3 \\ 3 & 1 & 2 \\ 2 & 1 & 0 \\ \end{bmatrix} \quad = \quad E_{3R_1 \rightarrow R_1}A
  • R32R1R3R_3 - 2R_1 \rightarrow R_3

    AR32R1R3[123312036]=[100010201][123312210]=ER32R1R3AA \Rightarrow^{R_3 - 2R_1 \rightarrow R_3} \begin{bmatrix} 1 & 2 & 3 \\ 3 & 1 & 2 \\ 0 & -3 & -6 \\ \end{bmatrix} \quad = \quad \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ -2 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} 1 & 2 & 3 \\ 3 & 1 & 2 \\ 2 & 1 & 0 \\ \end{bmatrix} \quad = \quad E_{R_3 - 2R_1 \rightarrow R_3}A

이렇게 기본 행연산은 기본행렬을 곱한것과 같습니다.

이제부터는 기본 행연산을 통해 선형연립방정식을 계산하는 방법인 가우스 소거법을 이용한 방법에 대해 살펴보겠습니다.

선형 연립 방정식에서 해 구하기

Let AA be a n×nn \times n matrix & x,bx, b be vectors(size : nn)

Ax=b[a11a12a13a1na21a22a23a2na31a32a33a3nan1an2an3ann][x1x2x3xn] = [b1b2b3bn][a11a12a13a1nb1a21a22a23a2nb2a31a32a33a3nb3an1an2an3annbn]\begin{matrix} Ax = b && \Rightarrow && \begin{bmatrix} a_{11} & a_{12} & a_{13} & \cdots & a_{1n} \\ a_{21} & a_{22} & a_{23} & \cdots & a_{2n} \\ a_{31} & a_{32} & a_{33} & \cdots & a_{3n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & a_{n3} & \cdots & a_{nn} \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \\ \vdots \\ x_n \end{bmatrix} \ = \ \begin{bmatrix} b_1 \\ b_2 \\ b_3 \\ \vdots \\ b_n \end{bmatrix} \\ \\ && \Rightarrow && \left[ \begin{array}{ccccc|c} a_{11} & a_{12} & a_{13} & \cdots & a_{1n} & b_1 \\ a_{21} & a_{22} & a_{23} & \cdots & a_{2n} & b_2 \\ a_{31} & a_{32} & a_{33} & \cdots & a_{3n} & b_3 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ a_{n1} & a_{n2} & a_{n3} & \cdots & a_{nn} & b_n \\ \end{array} \right] \end{matrix}

이제 부터 해야할 작업은 a21,a31,,an1a_{21}, a_{31}, \cdots, a_{n1}을 0으로 만드는 작업이다.

다시말해 다음 작업을 수행한다.

{R2k2R1R2R3k3R1R3R4k4R1R4RnknR1Rn[a11a12a13a1nb10a22a23a2nb20a32a33a3nb30an2an3annbn]\begin{matrix} \begin{cases} R_2 &-& k_2R_1 &\rightarrow& R_2 \\ R_3 &-& k_3R_1 &\rightarrow& R_3 \\ R_4 &-& k_4R_1 &\rightarrow& R_4 \\ && \vdots & \\ R_n &-& k_nR_1 &\rightarrow& R_n \end{cases} \quad \Rightarrow \quad \left[ \begin{array}{ccccc|c} a_{11} & a_{12} & a_{13} & \cdots & a_{1n} & b_1 \\ 0 & a^\prime_{22} & a^\prime_{23} & \cdots & a^\prime_{2n} & b^\prime_2 \\ 0 & a^\prime_{32} & a^\prime_{33} & \cdots & a^\prime_{3n} & b^\prime_3 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & a^\prime_{n2} & a^\prime_{n3} & \cdots & a^\prime_{nn} & b^\prime_n \\ \end{array} \right] \end{matrix}

이런 방식으로 1열의 값을 1행을 제와하고 0으로 만듭니다. 같은방법으로 2열 부터 n열까지 수행합니다.

즉, AA행렬을 상삼각행렬 UU로 만드는 작업을 수행합니다.

[u11u12u13u1nb10u22u23u2nb200u33u3nb3000unnbn]\Rightarrow \qquad \left[ \begin{array}{ccccc|c} u_{11} & u_{12} & u_{13} & \cdots & u_{1n} & b_1 \\ 0 & u_{22} & u_{23} & \cdots & u_{2n} & b_2 \\ 0 & 0 & u_{33} & \cdots & u_{3n} & b_3 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & u_{nn} & b_n \\ \end{array} \right]

위와 같이 상삼각행렬을 만들었다면 가우스 소거법은 끝이 나게되고 다시 연립방정식으로 고쳐 해를 구하면 됩니다.

가우스 조르단 소거법에서는 다음과정으로 대각행렬(DD)로 만들고 항등행렬로 만들었을때 상수열인([bi][b_i])가 해가 됩니다.

[d11000b10d2200b200d330b3000dnnbn]\Rightarrow \qquad \left[ \begin{array}{ccccc|c} d_{11} & 0 & 0 & \cdots & 0 & b_1 \\ 0 & d_{22} & 0 & \cdots & 0 & b_2 \\ 0 & 0 & d_{33} & \cdots & 0 & b_3 \\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & 0 & \cdots & d_{nn} & b_n \\ \end{array} \right]

위 행렬을 다시 풀면 각각의 변수의 값을 구할 수 있습니다.

Example>

다음과 같은 3차 방정식의 해를 구하여라.

{2x1+x2+x3=54x16x2=22x1+7x2+2x3=9\begin{cases} 2x_1 + x_2 + x_3 = 5 \\ 4x_1 - 6x_2 = -2 \\ -2x_1 + 7x_2 + 2x_3 = 9 \\ \end{cases}

sol>

{2x1+x2+x3=54x16x2=22x1+7x2+2x3=9[211546022729][21150821208314][2115082120012][210308080012][200208080012][100101010012]\begin{matrix} \begin{cases} 2x_1 + x_2 + x_3 = 5 \\ 4x_1 - 6x_2 = -2 \\ -2x_1 + 7x_2 + 2x_3 = 9 \\ \end{cases} & \Rightarrow & \left[ \begin{array}{ccc|c} 2 & 1 & 1 & 5 \\ 4 & -6 & 0 & -2 \\ -2 & 7 & 2 & 9 \\ \end{array} \right] \\\\ & \Rightarrow & \left[ \begin{array}{ccc|c} 2 & 1 & 1 & 5 \\ 0 & -8 & -2 & -12 \\ 0 & 8 & 3 & 14 \\ \end{array} \right] \\\\ & \Rightarrow & \left[ \begin{array}{ccc|c} 2 & 1 & 1 & 5 \\ 0 & -8 & -2 & -12 \\ 0 & 0 & 1 & 2 \\ \end{array} \right] \\\\ & \Rightarrow & \left[ \begin{array}{ccc|c} 2 & 1 & 0 & 3 \\ 0 & -8 & 0 & -8 \\ 0 & 0 & 1 & 2 \\ \end{array} \right] \\\\ & \Rightarrow & \left[ \begin{array}{ccc|c} 2 & 0 & 0 & 2 \\ 0 & -8 & 0 & -8 \\ 0 & 0 & 1 & 2 \\ \end{array} \right] \\\\ & \Rightarrow & \left[ \begin{array}{ccc|c} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 2 \\ \end{array} \right] \end{matrix}

그럼 해는 x1=1,x2=1,x3=2x_1 = 1, x_2 = 1, x_3 = 2가 됩니다.

해를 구하기 위해 기본행 연산이 몇 번 사용했는지 알아보겠습니다.

  1. AUA \rightarrow U :  (n1)+(n2)++1=n(n1)2\ (n-1) + (n-2) + \cdots + 1 = {n(n-1) \over 2}

  2. UDU \rightarrow D :  (n1)+(n2)++1=n(n1)2\ (n-1) + (n-2) + \cdots + 1 = {n(n-1) \over 2}

  3. DID \rightarrow I :  n\ n

거의 일반적으로 n2n^2만큼의 연산이 수행됩니다.

역행렬 구하기

바로 역행렬의 존재성에 대해 설명하겠습니다.

우리는 행렬 AA가 기본행연산을 거쳐 항등행렬 II로 가는 연산을 배웠습니다.

AEROI:[a11a12a13a1na21a22a23a2na31a32a33a3nan1an2an3ann]ERO[1000010000100001]\begin{matrix} A \rightarrow_{ERO} I &:& \begin{bmatrix} a_{11} & a_{12} & a_{13} & \cdots & a_{1n} \\ a_{21} & a_{22} & a_{23} & \cdots & a_{2n} \\ a_{31} & a_{32} & a_{33} & \cdots & a_{3n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & a_{n3} & \cdots & a_{nn} \\ \end{bmatrix} & \rightarrow_{ERO} & \begin{bmatrix} 1 & 0 & 0 & \cdots & 0 \\ 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ \end{bmatrix} \end{matrix}

가우스 조르단 방법을 활용해 구할 수 있으며 기본행연산이 n2n^2번 사용됩니다. 다시 말해 다음과 같이 쓸 수 있습니다.

(En2E1)A=I(E_{n^2}\dots E_1 )A = I

다시 말해 (En2E1)=A1(E_{n^2}\dots E_1) = A^{-1}가 됩니다.

물론 앞서 말한 AAlinear independent 을 만족해야합니다.

만족하지 않을 경우 기본행연산 과정중 0\vec0가 생기게 되기 때문입니다.

가우스 조르단 소거법을 활용해서 역행렬을 구할 수 있게되었습니다.

이번 포스팅은 여기서 마치겠습니다. 읽어주셔서 감사합니다. 잘못된 부분이나 궁금한 부분이 있으시면 댓글 부탁드립니다.

Reference

profile
끊임 없이 도전하는 개발자입니다.

0개의 댓글