내용
변환(Transform)과 핵 그리고 치역(Kernel and Range)
변환은 어떤 수 x를 식에 대입하여 그 값에 대응하는 결과인 y를 반환하는 함수를 의미합니다. 함수에 입력되는 값의 범위와 개수는 항상 결과의 범위나 개수를 확정하지 못합니다. 즉, 함수에 따라 1개의 실수 입력 값은 여러 개의 유리수를 포함하는 값으로 출력될 수도 있습니다.
함수에 입력 범위를 정의역(domain), 가능한 모든 결과물들의 범위를 공역(codomain)이라고 합니다. 예로서 python에서는 모든 수를 정수로 만들기 위해 int()
함수를 사용합니다. 이 경우 정의역은 실수이지만 공역은 정수가 될 것입니다.
import numpy as np import numpy.linalg as la import sympy as sp import matplotlib.pyplot as plt from matplotlib import rcParams rcParams['font.family'] = 'nanumgothic' rcParams['font.weight'] = 'bold' rcParams['font.size'] = '11'
x=3.24 y=int(x) y
3
공역 중 함수의 결과들을 상(image)이라 하며 이 상들의 집합을 치역(range)이라고 합니다. 치역은 공역의 부분 집합이 됩니다. 예를 들어 이러한 정의역(x)과 상(치역)의 관계는 변환에 관계된 행렬 A에 의해 식 1과 같이 선형결합의 형태로서 다음과 같이 작성할 수 있습니다.
$$A= \begin{bmatrix} -2&-1\\0&-4 \end{bmatrix},\quad \text{x(정의역)}=\begin{bmatrix} -3\\1 \end{bmatrix},\quad \text{b(치역)}=\begin{bmatrix} -7\\-4 \end{bmatrix}$$ $$\begin{equation}\tag{1} Ax=b \Leftrightarrow T(x)=Ax \end{equation}$$위 관계에서 치역은 공역의 부분집합이 됩니다.
그림 1은 정의역, 공역, 그리고 치역을 나타낸 것입니다.
그림 1에서 나타낸 함수의 정의역, 공역, 그리고 치역은 그림 2에서 나타낸 것과 같이 3가지 관계로 규정할 수 있습니다.
- 단사(Injective, one-to-one) : 정의역과 공역의 일대일 대응. 그림 2(a)와 (c).
- 전사(Subjective, onto): 치역 = 공역, 그림 2 (b)와 (c).
- 전단사(Bijective): 일대일 대응이면서 공역(codomain)과 치역(range)이 같은 경우. 그림 2 (c).
예)
행렬 A에 대한 상이 b일 경우 정의역인 x?
위 문제는 다음과 같이 나타냅니다.
$$\begin{align}& T: \mathbb{R}^3 \rightarrow \mathbb{R}^3 \quad T(x)=Ax\\ \\ &\begin{bmatrix}4 & 4 & 2\\12 & 15 & 5\\-8 & -17 & 4\end{bmatrix} \begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}=\begin{bmatrix}-4\\-11\\15\end{bmatrix}\end{align}$$정방행렬에 의해 변환되는 시스템이 선형 독립인 경우 즉, 자명한 해를 가지는 경우numpy.linalg.solve()
함수에 의해 계산할 수 있습니다.
A=np.array([[4,4,2],[12,15,5],[-8,-17,4]]) b=np.array([[-4],[-11],[15]]) x=la.solve(A, b);x
array([[-3.], [ 1.], [ 2.]])
두 벡터의 선형결합은 다음과 같이 나타낼 수 있습니다.
위 식에서 a1, a2는 스칼라이고 x1, x2, 그리고 c는 벡터를 나타냅니다.
이러한 선형 결합 에 의한 변환을 선형 변환(linear transformation)이라 합니다. 즉, 선형 변환은 식 2와 같이 함수의 형태로 표현할 수 있습니다.
$$\begin{equation}\tag{2} f(a_1x_1) + f(a_2x_2) = f(a_1x_1 + a_2x_2) \end{equation}$$예를 들어 2 × 3 형태의 행렬 A에 대해 T(x)=Ax의 선형 변환이 이루어지는 경우는 다음과 같습니다.
$$\begin{bmatrix} a_{11}& a_{12} &a_{13}\\ a_{21} &a_{22}& a_{23} \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix}= \begin{bmatrix} a_{11}x_1 + a_{12}x_2 + a_{13}x_3\\a_{21}x_1 + a_{22}x_2 + a_{23}x_3 \end{bmatrix}$$위 식의 벡터 x가 정의역이며 우항의 결과가 치역이 됩니다. 정의역의 차원은 행렬 A의 열 차원과 같으며 치역의 차원은 A의 행차원과 같습니다.
이러한 선형변환의 모든 치역이 0이 되는 정의역을 핵(kernel)이라고 합니다. 식 1과 같은 선형변환의 치역이 모두 0이 되는 핵(kerl)이 되는 경우는 식 3과 같이 ker T로 나타냅니다.
$$\begin{equation}\tag{3} ker\,T = \{v \in \mathbb{R}^n |T(v)=0\} \end{equation}$$예)
다음은 2차원에서 2차원으로 변환되는 선형변환입니다. 이 선형변환에서 ker T를 위한 조건을 결정해봅니다.
위 변환을 일으킬 수 있는 표준행렬은 다음과 같습니다.
$$\begin{align} T \left( \begin{bmatrix} x\\y \end{bmatrix}\right)&=x\begin{bmatrix}1\\0\end{bmatrix}+y\begin{bmatrix}-1\\0\end{bmatrix}\\ &=\begin{bmatrix}1&-1\\0&0\end{bmatrix}\begin{bmatrix}x\\y\end{bmatrix}\\ &=\begin{bmatrix}x-y\\0\end{bmatrix} \end{align}$$위 식에서 ker T를 위해서는 모든 치역이 0이 되어야 하므로 x=y 일 조건을 만족하여야 합니다. 그러므로 다음과 같습니다.
$$\text{ker T} = \{(x, y) \in \mathbb{R}^2| y=x\}$$전단사(bijective)이면서 동일한 차원에서 이루어지는 변환을 동형 사상(isomorphism)이라고 합니다. 다시 말하면 동형 사상에서는 정의역과 공역(codomain)의 차원이 같습니다.
예)
T(x, y)=(y, x) 변환의 경우 ker T=0일 경우 단사인지를 결정합니다.
위 식은 동차 방정식의 선형결합입니다. 위 식이 자명한 해를 가진다면 일대일 반응을 의미하는 것으로서 단사입니다.
A=np.array([[0, 1], [1,0]]) la.det(A)
-1.0
c=np.zeros([2,1]) sp.Matrix(np.hstack([A, c])).rref()[0]$\small\color{navy}{\left[\begin{matrix}1 & 0 & 0\\0 & 1 & 0\end{matrix}\right]}$
표준행렬 A의 행렬식은 0이 아니며 행렬 A의 rref는 모든 열 벡터가 피벗열임을 나타냅니다. 다시 말해 표준 행렬 A는 가역 행렬이며 자명한 해를 가지고 있습니다. 따라서 위의 변환은 단사입니다.
예)
다음 변환이 단사인지를 결정해 봅니다.
A=np.array([[1,2,-1], [0,1,1],[1,1,-2]]) la.det(A)
0.0
c=np.zeros([3,1]) sp.Matrix(np.hstack([A, c])).rref()[0]$\small\color{navy}{\left[\begin{matrix}1 & 0 & -3.0 & 0\\0 & 1 & 1.0 & 0\\0 & 0 & 0 & 0\end{matrix}\right]}$
표준 행렬 A의 행렬식은 0이며 그 행렬의 rref는 자유변수를 포함하고 있습니다. 즉, 비가역행렬이며 자명하지 않은(non trivial) 해를 가집니다. 결과적으로 정의역의 각 요소에 대응하는 치역의 요소는 1개가 아닌 경우도 존재할 수 있으므로 단사(injective)가 아닙니다.
다음의 정의들은 모두 동치입니다.
- ker T=0
- ⇔ 이 시스템은 단사(injective)입니다.
- ⇔ 유일한 해를 가집니다. 즉, 선형 독립입니다.
다음 선형결합을 고려해봅니다.
$$\begin{aligned} a_1x + a_2y + a_3z &= 0\\ a_4x + a_5y + a_6z &= 0\\ a_7x + a_8y + a_9z &= 0 \end{aligned}\rightarrow \begin{bmatrix}a_1& a_2 & a_3\\a_4 & a_5 & a_6\\a_7 & a_8 & a_9\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}0\\0\\0\end{bmatrix}$$선형결합이 선형독립이고 다음의 조건을 만족하면 이 변환은 전단사입니다.
위 조건은 표준행렬의 열벡터들이 모두 기저 벡터임을 의미합니다. 또한 각 변수에 하나의 해만이 존재하므로 단사입니다.
위 조건은 표준 행렬의 행벡터가 모두 기저 벡터임을 의미하는 것으로 공역(함수(식)의 수)와 치역(해)이 일치하는 것으로 전단사를 의미합니다.
예)
다음 행렬에 의한 정의역과 공역의 대응방법을 결정해봅니다.
위 변환은 다음과 같이 선형결합으로 표현할 수 있습니다.
$$\begin{bmatrix} 1&0&0\\0&1&0 \end{bmatrix} \begin{bmatrix} x\\y\\z \end{bmatrix}= \begin{bmatrix} x\\y \end{bmatrix}$$위 식은 z의 모든 수에 대해 만족합니다. 즉, 다양한 해가 존재하므로 단사(injective)는 아닙니다. 그러나 식의 수와 해의 수가 같습니다. 즉, 공역(codaomian)과 치역(range)이 같으므로 전사(subjective)입니다.
모든 전사(subjective)가 단사(injective)는 아닙니다. 그러나 단사(injective)이기 위해서는 전사(subjective)이어야 합니다. 즉, 변수의 수가 해의 수와 일치하기 위해서는 식의 수는 해의 수와 같거나 커야 합니다. 또한 단사와 전단사의 경우 모두 일대일 반응으로 유일한 해를 가져야 합니다. 이것은 변환 즉, 표준행렬이 가역행렬이어야 함을 의미합니다.
- 행렬 A의 열벡터, 행벡터가 모두 일차독립입니다.
- ⇔ Ax=0은 자명한 해를 갖습니다.
- ⇔ Ax=b는 유일한 해를 갖습니다.
- ⇔ A는 가역이고 det(A) ≠ 0입니다.
- ⇔ λ=0은 A의 고유값이 아닙니다.
- ⇔ T는 전단사입니다.
결국 변환은 선형시스템의 해를 결정하는 것으로 다음 행렬 A에 의한 ℝ4의 정의역인 벡터 x가 0벡터로 변환하는 과정에서 다양한 해를 가집니다. 즉, 영벡터에 대응하는 x 벡터가 하나 이상인 경우로 공역과 치역이 같지만 일대일 반응이 아닌 전사입니다. 이 경우 모든 벡터 x는 A의 영공간의 스칼라배가 됩니다.
A=np.array([[0,4,-16,-2],[-5, 3, -22,3],[-15, 17, -98, 4]]);A
array([[ 0, 4, -16, -2], [ -5, 3, -22, 3], [-15, 17, -98, 4]])
b=np.array([[0],[0],[0]]); b
array([[0], [0], [0]])
au=np.hstack([A, b]) sp.Matrix(au).rref()
(Matrix([ [1, 0, 2, 0, 0], [0, 1, -4, 0, 0], [0, 0, 0, 1, 0]]), (0, 1, 3))
위 기약행사다리꼴에 의하면 1개의 자유변수가 존재하며 이 값에 따라 다양한 해들이 존재합니다. 자유변수의 존재는 위 결합이 선형종속이므로 A가 기저행렬은 그 행렬의 영공간이 됩니다.
sp.Matrix(A).nullspace()
[Matrix([ [-2], [ 4], [ 1], [ 0]])]
결과적으로 위 관계에서 정의역은 다음과 같이 나타낼 수 있습니다.
$$\text{any scalar}\begin{bmatrix}-2\\4\\1\\0\end{bmatrix}$$
댓글
댓글 쓰기