[선형대수] Lecture 7: Solving Ax = 0: pivot variables, special solutions

이재호·2025년 3월 2일

선형대수

목록 보기
7/31

https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/

이전 강의에서 nullspace에 대해서 배웠다.
그렇다면 Ax=0Ax=0에서 벡터 x를 어떻게 컴퓨터적인 algorithm으로 구할 수 있을까?

예시와 함께 살펴보자.

A=[1222246836810]A = \begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix}

위 행렬 AA를 보고 다음과 같은 점을 알 수 있다.

  • row1+row2=row3row_1 + row_2 = row_3
  • 2col1=col22col_1 = col_2
  • 따라서 row3row_3col1col_1은 "not independent"

그럼 계속해서 Elimination을 적용해보자.

[1222246836810][122200240024][122200240000]=U\begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 2 & 4 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix} = U

위 행렬은 upper matrix(UU)라고 보기 힘들 수 있겠지만, UU이다. 그리고 이러한 형태를 "echelon Form"이라고 부른다.

  • 위 행렬 UU에서 pivot은 U11(=1)U_{11}(=1)U23(=2)U_{23}(=2)이다.
  • 그리고 pivot의 개수를 rank라 부른다. "# of pivots of A = rank of A = 2\text{\# of pivots of $A$ = rank of $A$ = $2$}"
  • 위 행렬 UU에서 pivot column(variable)은 col1col_1col3col_3이다.
  • 그리고 free column(variable)은 col2col_2col4col_4다.

그렇다면 위에서 구한 UU행렬로 Ux=0Ux=0에서의 xx 벡터를 구해보자.

x=[10]x = \begin{bmatrix} \\ 1 \\ \\ 0 \end{bmatrix}
  • 우선 free column에 임의의 값을 대입해보자. (편의상 1,01, 0 대입)
  • 그런 다음 Ux=0Ux=0을 수식으로 정리해보자.
x1+2x2+2x3+2x4=0(row1)x_1+2x_2+2x_3+2x_4=0 \tag{$row_1$}
0x1+0x2+2x3+4x4=0(row2)0x_1+0x_2+2x_3+4x_4=0 \tag{$row_2$}

에서 x2=1,x4=0x_2=1, x_4=0을 대입해보자.

x1+2+2x3=0(row1)x_1+2+2x_3=0 \tag{$row_1$}
2x3=0(row2)2x_3=0 \tag{$row_2$}

따라서 Ux=0Ux=0에 대한 벡터 xx를 정리하면 다음과 같이 나올 것이다.

x=[2100]x = \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix}

이를 아까 원래 행렬 AA와 비교해서 보자.

A=[1222246836810],x=[2100]A = \begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix}, x = \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix}

다음과 같은 특징을 알 수 있다.

  • 행렬 AA2col1+col2+0col3+0col4=0-2col_1+col_2+0col_3+0col_4=0
  • 그리고 xx에 스칼라 곱을 해줘도 이 규칙은 변하지 않는다. 따라서 x를 다음과 같이 수정할 수 있다.
    x=c[2100]x = c \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix}

그러면 혹시 모르니 또 다른 xx를 구해보자.
이번에는 xx를 다음과 정의하고 시작해보자.

x=[01]x = \begin{bmatrix} \\ 0 \\ \\ 1 \end{bmatrix}

그러면 위와 같은 과정들을 거쳐서 xx는 다음과 같이 나온다.

x=[2021]x = \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}

마찬가지로 행렬 AA와 비교해보자.

A=[1222246836810],x=[2021]A = \begin{bmatrix} 1 & 2 & 2 & 2 \\ 2 & 4 & 6 & 8 \\ 3 & 6 & 8 & 10 \end{bmatrix}, x = \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}

위와 마찬가지로 다음과 같은 특징을 얻는다.

  • 행렬 AA2col1+0col2+2col3+col4=02col_1+0col_2+-2col_3+col_4=0
  • 그리고 xx에 스칼라 곱을 해줘도 이 규칙은 변하지 않는다. 따라서 x를 다음과 같이 수정할 수 있다.
    x=d[2021]x = d \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}

그리고 이전 강의에서 배운 cv=0,dw=0cv=0, dw=0인 벡터 v,wv,w에 대해서 cv+dw=0cv+dw=0이라는 법칙을 통해 xx를 다음과 같이 정리할 수 있겠다.

x=c[2100]+d[2021]x = c \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix} + d \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}

그러면 Ux=0Ux=0에서 더 나아가, Rx=0Rx=0으로 연산해보자.
여기서 RR은 "reduced row echelon form"을 의미한다.
계속해서 이전 예시를 살펴보자.

U=[122200240000]U = \begin{bmatrix} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix}

아까 위에서 행렬 UU를 구했다. 그리고 이 행렬에서 pivot인 U23U_{23}을 통해 위에 있는 행의 2를 없애보자.

[122200240000][120200240000]\begin{bmatrix} 1 & 2 & 2 & 2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 0 & -2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix}

그리고 pivot의 값이 1이 되도록 해보자.

[120200240000][120200120000]\begin{bmatrix} 1 & 2 & 0 & -2 \\ 0 & 0 & 2 & 4 \\ 0 & 0 & 0 & 0 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 0 & -2 \\ 0 & 0 & 1 & 2 \\ 0 & 0 & 0 & 0 \end{bmatrix}
  • 그러면 이제 최종 목적인 RR 행렬을 구할 수 있다. 여기서 rref(A)rref(A)는 "행렬 AA의 reduced row echelon form"이라는 의미이다.
  • 우선 위 행렬에서 칼럼들을 나눠보자.
  • pivot columns : col1col_1, col3col_3
  • free columns: col2col_2, col4col_4
  • pivot cloumns와 free columns를 각각 따로 묶어보자.
  • pivot columns=[1001]=Ipivot \ columns = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} =I
  • free columns=[2202]=Ffree \ columns = \begin{bmatrix} 2 & -2 \\ 0 & 2 \end{bmatrix} =F

FF와 아까 본 Ux=0Ux=0xx 벡터를 비교해보자.

F=[2202],x=c[2100]+d[2021]F = \begin{bmatrix} 2 & -2 \\ 0 & 2 \end{bmatrix} , x = c \begin{bmatrix} -2 \\ 1 \\ 0 \\ 0 \end{bmatrix} + d \begin{bmatrix} 2 \\ 0 \\ -2 \\ 1 \end{bmatrix}
  • 뭔가 유사한 점이 보이는 것 같다.

  • 아까 pivot columns에 속했던 col1col_1col3col_3에 대한 행렬들의 값만 놓고 비교했을 때, 유사한 점이 보인다. 즉, pivot columns는 FF의 columns와 유사하다는 것을 알 수 있다.

  • 그리고 free columns는 II와 똑같이 나온다.

  • [20],[22][2202]=F\begin{bmatrix}-2 \\ - \\ 0 \\ -\end{bmatrix},\begin{bmatrix}2 \\ - \\ -2 \\ -\end{bmatrix} \approx -\begin{bmatrix} 2 & -2 \\ 0 & 2 \end{bmatrix}=-F

  • [10],[01][1001]=I\begin{bmatrix}- \\ 1 \\ - \\ 0\end{bmatrix},\begin{bmatrix}- \\ 0 \\ - \\ 1\end{bmatrix} \approx \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}=I

그리고 RR은 다음과 같이 정의할 수 있다.

R=[IF00]R= \begin{bmatrix} I & F \\0 & 0 \end{bmatrix}
  • row1row_1 : rr개의 pivot rows에 대한 정보
  • col1col_1 : rr개의 pivot cols에 대한 정보
  • col2col_2 : nrn-r개의 free cols에 대한 정보

그리고 이제 Rx=0Rx=0에서 NN(nullspace 행렬)을 구해보자.

RN=[IF00]RN=0RN= \underbrace{ \begin{bmatrix} I & F \\0 & 0\end{bmatrix} }_R N = 0
N=[FI]N= \begin{bmatrix} -F \\ I \end{bmatrix}

여기서 NN의 칼럼들을 통해 문제를 풀이할 수 있다. 아까 FF의 칼럼들은 pivot을, II의 칼럼들은 free라는 것을 확인했다.

따라서,

Rx=[IF][xpivotxfree]=0Rx= \begin{bmatrix} I & F \end{bmatrix} \begin{bmatrix} x_{pivot} \\ x_{free} \end{bmatrix} = 0
xpivot+Fxfree=0x_{pivot} + Fx_{free} = 0

이라는 수식을 구할 수 있다.

그런데 왜 N=[FI]N= \begin{bmatrix} -F \\ I \end{bmatrix}에서 [xpivotxfree]\begin{bmatrix} x_{pivot} \\ x_{free} \end{bmatrix}이 나올 수 있는 건지 직관적으로 이해가 잘 안 갔다. FF에 해당하는 게 free이고 II에 해당하는 게 pivot인데 순서가 반대로 나오는 게 이해가 안 됐다.
그리고 내 나름대로 이해를 해 봤다. 직관적으로 해석했을 때, pivot 변수들은 free변수들의 값에 의해서 결정된다. 따라서 pivot=k×freepivot = k\times free와 같은 형식으로 나올 것이다. 따라서 Rx=0Rx=0에서 R=[IF]R=\begin{bmatrix} I & F \end{bmatrix}이니깐, x=[xpivotxfree]x=\begin{bmatrix} x_{pivot} \\ x_{free} \end{bmatrix}가 나오는 것이고, xpivot=Fxfreex_{pivot}=-Fx_{free}가 나온다. 이를 NN으로 다루기 위해, x=[xpivotxfree]=[Fxfreexfree]=[FI]Nxfreex=\begin{bmatrix} x_{pivot} \\ x_{free} \end{bmatrix}=\begin{bmatrix} -Fx_{free} \\ x_{free} \end{bmatrix}=\underbrace{\begin{bmatrix} -F \\ I \end{bmatrix}}_{N}x_{free}로 나오는 것이라고 생각한다.


이제 예시와 함께 정리해보자.

A=[1232462682810]A = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 2 & 6 & 8 \\ 2 & 8 & 10 \end{bmatrix}
  • 위 행렬에서 col1col_1col2col_2는 independent하다.
  • 반면에 col3col_3col1+col2col_1+col_2와 같으므로 not independent하다.
  • 따라서 col1col_1col2col_2는 pivot columns, col3col_3는 free column이다.

계속해서 연산을 수행해보자.

A=[1232462682810][123000022044][123022000044][101011000000]=RA = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 2 & 6 & 8 \\ 2 & 8 & 10 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 3 \\ 0 & 0 & 0 \\ 0 & 2 & 2 \\ 0 & 4 & 4 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 2 & 3 \\ 0 & 2 & 2 \\ 0 & 0 & 0 \\ 0 & 4 & 4 \end{bmatrix} \rightarrow \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} = R
  • I=[1001]I=\begin{bmatrix}1 & 0 \\ 0 & 1\end{bmatrix}

  • F=[11]F=\begin{bmatrix}1 \\ 1\end{bmatrix}

따라서 Rx=0Rx=0에서,

x=c[FI]=c[111]x= c\begin{bmatrix} -F \\ I \end{bmatrix} = c\begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix}
N=[FI]=[111]N = \begin{bmatrix} -F \\ I \end{bmatrix} = \begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix}

을 알 수 있다.

예시로 free variable x3x_3를 1로 대입해보자.

x1+x3=0x_1 + x_3 = 0
x2+x3=0x_2 + x_3 = 0

에서,

x1+1=0x_1 + 1 = 0
x2+1=0x_2 + 1 = 0

이 되어, x=[111]x=\begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix}이라는 결과가 나온다.

profile
천천히, 그리고 꾸준히.

0개의 댓글