영공간(Null Space)
관련된 내용
선형 결합에서 독립인 경우 이 식의 해는 자명한 해로 유일한 해 집합을, 종속인 경우 1개 이상의 다양한 해집합을 가집니다. 선형종속의 다양한 해집합의 기저벡터들을 영공간(Nullspace)이라 합니다. 즉, 다양한 해집합들 사이에 선형 독립인 결합을 생성할 수 있으며 이 결합의 기저벡터가 영공간이 됩니다. 열공간(Column space)은 모든 선형결합에 포함되는 기저벡터들을 나타냅니다.
m×n 형태의 2차원 행렬 A의 영공간(Nul A)은 선형종속인 동차 선형 시스템(Ax = 0)의 모든 해집합의 기저입니다. 그러므로 해집합으로 생성되는 선형결합은 독립이어야 함을 의미합니다.
영공간은 선형종속인 동차 시스템의 해 집합의 기저입니다.
벡터 u가 행렬 A의 영 공간에 포함 여부를 결정한다는 것은 Ax = 0의 선형종속인 동차 선형 시스템에서 변수 벡터 x를 벡터 u로 치환할 경우 성립하는지를 결정하는 것입니다.
A=np.array([[1,-3,-2],[-5, 9, 1]]); print(A)
[[ 1 -3 -2] [-5 9 1]]
행렬 A로 생성되는 동차선형결합이 선형종속임을 확인합니다.
b=np.zeros([2,1]) aug=np.c_[A, b] Matrix(aug).rref()
(Matrix([ [1, 0, 2.5, 0], [0, 1, 1.5, 0]]), (0, 1))
확대행렬의 rref에 자유변수의 존재는 선형종속임을 나타냅니다. 특정벡터 u를 x와 치환할 경우 성립여부를 확인합니다.
u=np.array([5,3,-2]).reshape(-1,1); print(u)
[[ 5] [ 3] [-2]]
print(np.dot(A, u))
[[0] [0]]
위 결과에 의하면 벡터 u는 식 1을 만족하는 해가 됩니다.
u ⊂ Nul A | (식 1) |
예 1)
다음 표준 행렬 A의 영공간을 계산해봅니다.
$$\begin{bmatrix} -3&6&-1&1&-7\\1&-2&2&3&1\\2&-4&5&8&-4\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\\x_4\\x_5 \end{bmatrix}=\begin{bmatrix} 0\\0\\0\end{bmatrix}$$
위 식을 일반 선형시스템으로 나타내면 식 2과 같습니다.
\begin{align}3x_1 + 6x_2 - x_3 + x_4 - 7x_5&= 0\\ x_1 - 2x_2 + 2x_3 + 3x_4 + x_5& = 0\\ 2x_1 - 4x_2 + 5x_3 + 8x_4 - 4x_5& = 0\end{align} | (식 2) |
A=np.array([[-3, 6, -1, 1, -7],[1,-2,2,3,-1],[2, -4, 5, 8, -4]]) c=np.zeros([3,1]) Matrix(np.hstack([A,c])).rref()
(Matrix([ [1, -2.0, 0, -1.0, 3.0, 0], [0, 0, 1, 2.0, -2.0, 0], [0, 0, 0, 0, 0, 0]]), (0, 2))
위 결과는 선도변수 x1와 x3가 나머지 자유변수에 의존함을 나타냅니다. 식 3과 같이 나타낼 수 있습니다.
$$\begin{bmatrix}x_1\\x_2\\x_3\\x_4\\x_5 \end{bmatrix}=\begin{bmatrix} 2x_2+x_4-3x_5\\x_2\\-2x_4+2x_5\\x_4\\x_5\end{bmatrix}=\begin{bmatrix}2&1&-3\\1&0&0\\0&-2&2\\0&1&0\\0&0&1 \end{bmatrix}\begin{bmatrix} x_2\\x_4\\x_5\end{bmatrix}$$ | (식 3) |
위 각 열벡터들은 모두 A에 대한 선형결합의 해입니다. 즉, 위의 선형결합의 해 집합은 x2, x4, x5의 값에 따라 다양합니다. A의 영공간은의 존재는 위 해집합들로부터 생성되는 선형시스템인 식 3의 최우항이 선형독립임을 의미합니다.
sol=np.array([[2, 1, -3],[1, 0, 0], [0, -2,2],[0,1,0],[0,0,1]]) print(sol)
[[ 2 1 -3] [ 1 0 0] [ 0 -2 2] [ 0 1 0] [ 0 0 1]]
Matrix(sol).rref()
(Matrix([ [1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 0, 0], [0, 0, 0]]), (0, 1, 2))
위 결과에 의하면 모든 열이 피벗 열이며 자유변수가 없습니다. 그러므로 위 객체 sol은 기저벡터로 구성된 기저행렬이므로 표준행렬 A의 영공간이고 역으로 각 벡터는 영공간의 스판이 됩니다(식 4).
$$\text{Nul A} = \text{Span} \left\{\begin{bmatrix}2\\1\\0\\0\\0 \end{bmatrix}, \;\begin{bmatrix} 1\\0\\-2\\1\\0\end{bmatrix},\;\begin{bmatrix}-3\\0\\2\\0\\0 \end{bmatrix}\right\}$$ | (식 4) |
영공간은 sympy 라이브러리의 nullspace() 함수를 사용하여 확인할 수 있습니다. 이 함수의 결과는 각 열벡터를 반환합니다. 다음 코드에서는 이 결과를 행렬 형태로 나타내었습니다.
for i in Matrix(A).nullspace(): print(i)
Matrix([[2], [1], [0], [0], [0]]) Matrix([[1], [0], [-2], [1], [0]]) Matrix([[-3], [0], [2], [0], [1]])
위 결과와 같이 선형종속에서 해집합에서 존재하는 선도변수는 자유변수에 의해 결정됩니다(기약행 사다리꼴 형태 참조). 이 둘 사이의 선형독립관계가 성립하면 자유변수로 구성된 표준행렬은 기저행렬이 됩니다. 결과적으로 자유변수의 수와 기저벡터의 수는 같습니다. 이 수로부터 영공간의 차원을 결정할 수 있습니다.
영공간의 차원
dim Nul = 동차방정식에서 자유변수의 수
댓글
댓글 쓰기