본문 바로가기

선형대수

Linear transformations and their matrices

1. Linear transformation


1.1 Example 1. Projection

■ 선형변환의 첫 번째 예는 투영(projection)이다

■ 예를 들어,  다음과 같은 투영이 있다. 이 투영은 \( \mathbb{R}^2 \)의 모든 벡터. 즉, 평면의 모든 벡터를 평면의 벡터로 변환하는 변환 \( T \)이다. 

- \( T : \mathbb{R}^2 \rightarrow \mathbb{R}^2 \)처럼 되는 것을 매핑(mapping)이라고 부른다.

■ 이 변환은 모든 \( \mathbb{R]^2 \)의 모든 벡터를 사용하고, 변환된 벡터들은 다음과 같은 선 위에 떨어진다고 할 때,

■ 먄약, 벡터 \( \mathbf{v} \)를 투영하면, 즉 변환은 벡터 \( \mathbf{v} \)를 \( T( \mathbf{v} ) \)로 만들 것이다.

이렇게 변환 \( T \)는 입력을 넣으면 출력을 계산하는 함수(function)와 같다. 

그리고 입력이 \( \mathbf{v} \)이고, 투영의 출력은 이 선에 투영된 \( T( \mathbf{v} \)로 볼 수 있다.

■ 하나의 입력을 주면 변환은 하나의 출력을 생성한다. 그래서 변환은 때때로 맵(map) 또는 매핑(mapping)이라는 단어가 사용된다. 입력과 출력 사이를 연결하는 맵(map)이다.

■ 이번에는 위의 예시에서 다음과 같은 벡터 \( \mathbf{w} \)가 있다면, 변환 \( T \)에 의해 입력은 \( \mathbf{w} \)이고, 투영의 출력은 선에 투영된 \( T( \mathbf{w} \)이다.

■ 이런 식으로 수많은 변환 \( T \)에 대해서 생각할 수 있다.

cf) 위의 선형변환 예시를 보면, 벡터공간에서 입력인 벡터 \( \mathbf{v} \)와 출력인 벡터 \( T(\mathbf{v} ) \)를 연결하는 맵으로 행렬이 가능하다고 생각할 수 있다. 

- 왜냐하면 위의 예시와 같이 선형변환 \( T \)를 거치면 출력 벡터인 \( T(\mathbf{v} ) \)는 원래 벡터 \( \mathbf{v} \)와 크기와 방향이 모두 달라질 수 있다. 

- 그리고 행렬을 생각했을 때, 행렬과 벡터1의 곱을 통해 만들어지는 벡터2는 행렬에 의해 벡터2가 벡터1과 동일한 벡터가 될지, 다른 벡터가 될지 결정된다. 즉, 행렬이 '입력' 벡터1과 '출력' 벡터2를 연결하는 함수의 역할을 한다.

- 즉, 행렬은 선형변환 \( T \)처럼 입력을 넣으면 출력을 계산하는 함수(function)와 같다. 그러므로 벡터에 대한 행렬의 기능을 선형변환으로 볼 수 있다.

■ 선형대수학에서는 이런 변환이 '선형변환(linear transformation)'이 되기 위한 규칙이 있다.

■ 선형변환이 되기 위한 규칙은 다음과 같다.

① \( T \left( \mathbf{v} + \mathbf{w} \right) = T( \mathbf{v} ) + T( \mathbf{w} ) \)

\( T \left( c \cdot \mathbf{v} \right) = c \cdot T( \mathbf{v} ) \)

- \( \mathbf{v} \)와 \( \mathbf{w} \)는 벡터, \( c \)는 스칼라

■ 벡터에 대해 할 수 있는 2개의 연산은 2개의 벡터를 더하거나 스칼라배를 벡터에 곱하는 것이다. 그리고 이러한 벡터 덧셈과 스칼라배에 대해 선형변환이 특별한 일을 한다.

cf) 벡터의 뺄셈도 벡터의 덧셈으로 볼 수 있다. \( \mathbf{v} + ( - \mathbf{w} ) \)

■ 예를 들어, 투영은 선형변환이다. 왜냐하면, 벡터 \( \mathbf{v} \)의 길이에 2배한 벡터를 사용한다면, 투영한 결과도 2배 길이가 되기 때문이다. 

■ 그리고 위의 선형변환의 규칙 ①과 ②를 조합하여 다음과 같은 하나의 규칙으로 결합할 수 있다.

\( T \left( c \cdot \mathbf{v} + d \cdot \mathbf{w} \right) = c \cdot T( \mathbf{v} ) + d \cdot T( \mathbf{w} ) \)

- 여기서 \( \mathbf{v} \)와 \( \mathbf{w} \)는 벡터, \( c \)와 \( d \)는 스칼라 

\( T \left( c \cdot \mathbf{v} + d \cdot \mathbf{w} \right) = c \cdot T( \mathbf{v} ) + d \cdot T( \mathbf{w} ) \)는 선형변환 \( T \)가 어떤 선형 결합 \( c \mathbf{v} + d \mathbf{w} \)에 대해 하는 일은 \( T( \mathbf{v} ) \)와 \( T( \mathbf{w} ) \)의 선형 결합을 하는 것으로 볼 수 있다.

■ 그렇다면,  \( T(0) \)은 선형변환에서 어떻게 될까

- 여기서 \( T \)의 입력에 있는 0은 zero vector

■ 선형변환에서의 영벡터(zero vector)는 변환 이후에도 0이 된다. 즉, \( T(0) = 0 \)

■ 왜냐하면, \( \mathbf{v} = 0 \)이라고 했을 때, \( c = 3 \)이라고 하자. 선형변환의 규칙 중 \( T \left( c \cdot \mathbf{v} \right) = c \cdot T( \mathbf{v} ) \)을 생각하면

 \( T(0) = 3 \cdot T(0) \)이 되고, \( T(0) = 0 \)이 되어야 한다. 


1.2 Example 2.  Shift the whole plane

■ 선형변환의 두 번째 예는 평면 전체를 이동시키는 것이다.

■ 예를 들어, 다음과 같이 어떤 평면이 있고, 평면의 모든 벡터 \( \mathbf{v} \)가 벡터 \( \mathbf{v}_0 \)에 의해 3만큼 이동한다고 하자.

■ \( T( \mathbf{v} ) = \mathbf{v} + \mathbf{v}_0 \)이 된다.

■ 이 예시의 변환은 벡터 \( \mathbf{v} \)를 받아서 벡터 \( \mathbf{v}_0 \)을 더하고 있다. 고정된 벡터 \( \mathbf{v}_0 \)에 기존 벡터 \( \mathbf{v} \)를 더하는 것이다.

■ 이때, 이 변환의 과정은 선형(linear)이라고 할 수 없다. 선형변환의 규칙을 지키기 않았기 때문이다.

■ 만약, 벡터 \( \mathbf{v} \)의 길이를 2배로 하면, 이 변환에서 \( T( \mathbf{v} ) \)가 2배가 되지 않는다. 즉, \( T \left( c \cdot \mathbf{v} \right) \neq c \cdot T( \mathbf{v} ) \)이다.

■ 이 변환에서 \( \mathbf{v} \)의 길이를 2배로 해도 다음과 같이 1배의 \( \mathbf{v}_0 \)을 더하기 때문에 \( T( \mathbf{v}) \)의 2배. 즉, \( T( 2 \cdot \mathbf{v} ) = 2 \cdot \mathbf{v} + 2 \cdot \mathbf{v}_0 \)이 되지 않고 \( T( 2 \cdot \mathbf{v} ) = 2 \cdot \mathbf{v} + \mathbf{v}_0 \)이 되기 때문이다.

■ 이번에는, 예를 들어 \( \mathbb{R]^3 \)의 어떤 벡터를 취하는 변환이 있다고 하자. 그리고 \( \mathbb{R}^3 \)에 있는 어떤 벡터 \( \mathbf{v} \)를 이용해서 변환하면, 스칼라 \( \| \mathbf{v} \| \)를 만들어 낸다고 하자.

그렇다면, \( \| \mathbf{v} \| \)는 스칼라이므로 \( \mathbb{R}^1 \)에 존재한다고 말할 수 있으므로, \( T( \mathbf{v} ) = \| \mathbf{v} \| \), \( T : \mathbb{R}^3 \rightarrow \mathbb{R}^1 \)으로 변환을 표기할 수 있다.

■ 이 예시의 변환 \( T( \mathbf{v} ) = \| \mathbf{v} \| \) 역시 선형변환이 될 수 없다.

- 이 예에서 \( \mathbf{v} = 0 \)이면, \( T(0) = 0 \)이 된 것은 참이다. 변환의 입력이 \( \mathbf{v} \)이고 출력이 \( \| \mathbf{v} \| \)이기 때문이다.

- 먄약, 벡터를 2배하면 길이도 2배가 될 것이다. 왜냐하면 입력은 \( \mathbf{v} \)라는 벡터이고 출력은 \( \| \mathbf{v} \| \)라는 스칼라이기 때문이다.

- 하지만, 만약 벡터를 -2배 한다고 했을 때, 출력이 벡터 \( \mathbf{v} \)의 크기이기 때문에 출력은 -2배가 아니라 2배가 된다.

- 그러므로  \( T \left( c \cdot \mathbf{v} \right) \neq c \cdot T( \mathbf{v} ) \)를 충족시키지 못한다.


1.3 Example 3.  Rotation

■ 회전 각도가 45도 라고 하자. 

■ 회전은 동일한 평면 내에서 회전하는 것이므로, 변환 \( T \)가 어떤 벡터를 입력으로 받아서 입력 벡터를 45도 회전한 벡터를 출력하는 역할을 한다고 했을 때,

이 \( T \)는 어떤 벡터의 전체 평면\( \mathbb{R}^2 \)에서 전체 평면\( \mathbb{R}^2 \)으로의 매핑(mapping)이 될 것이다.

, 다음과 같이 입력 벡터 \( \mathbf{v} \)가 있으면, \( \mathbf{v} \)를 45도 회전시킨 벡터가 \( T( \mathbf{v} \)가 된다.

■ 이 예에서, 만약 벡터 \( \mathbf{v} \)를 2배 한다면, 변환 \( T \)는 단순히 입력 벡터를 받아 45도 회전하는 것이므로 변환의 결과인 회전은 다음과 같이 단지 2배 더 멀리 나갈 것이다.

■ 만약, 정의역 공간 \( \mathbb{R}^2 \)에 \( \mathbf{v} \)와 \( \mathbf{w} \)라는 벡터를 가지고 있다고 했을 때, 정의역에서 \( \mathbf{v} + \mathbf{w} \)라는 벡터를 만들 수 있다.

■ 이때, \( \mathbf{v} + \mathbf{w} \)라는 벡터를 회전한 결과와 \( \mathbf{v} \)와 \( \mathbf{w} \) 각각을 회전해서 더한 결과는 동일하다.

그러므로 Rotation은 Projection처럼 선형변환의 일종임을 알 수 있다.

 선형변환인 rotation을 사용해보자. 예를 들어 \( \mathbb{R}^2 \) 공간 내에 집을 가지고 있다고 하자. 그리고 다음과 같이 이 집은 점들로 이루어져 있다고 했을 때

■ rotation이라는 선형변환이 모든 벡터에 적용되는 것을 한 번에 볼 수 있다. 집의 윤곽선에 있는 모든 벡터가 선형변환을 통해 어디로 가는지 볼 수 있다.


1.4 Example 4.  Matrix \( A \), \( T( \mathbf{v} ) = A \mathbf{v} \)

■ \( T( \mathbf{v} ) = A \mathbf{v} \)는 입력 \( \mathbf{v} \)에 행렬 \( A \)를 곱하는 변환이다. 이것은 선형변환이다. 

■ 선형변환 \( T( \mathbf{v} ) = A \mathbf{v} \)의 형태를 보면 입력으로 \( \mathbf{v} \)을 넣었을 때, 출력은 행렬 \( A \)와 입력으로 넣은 벡터  \( \mathbf{v} \)가 곱해진 형태라는 것을 알 수 있다.

즉, \( T( \mathbf{v} ) = A \mathbf{v} \)에서 좌변의 선형변환을 의미하는 함수 \( T \)와 우변의 행렬 \( A \)가 대응된다. 그러므로 "모든 행렬은 선형변환이다." 라고 할 수 있다.

■ "모든 행렬이 선형변환이다"임을 확인하려면, 마찬가지로 다음과 같이 선형변환의 규칙을 행렬 \( A \)가 만족하는지 확인하면 된다.

\( A( \mathbf{v} + \mathbf{w} ) = A \mathbf{v} + A \mathbf{w} \)

\( A( c \cdot \mathbf{v} ) = c \cdot A \mathbf{v} \)

■ 사실, 모든 행렬을 이 간단한 규칙에 의해 변환을 생성한다. 어떤 모든 벡터에 대해서도 행렬 \( A \) 를 곱하면 위의 두 조건을 만족한다. 다시 말해, 벡터에 있어 행렬은 선형변환이다.

■ 이를 통해 생각해볼 것은 ① 모든 평면은 행렬 곱셈에 의해 변환된다.  ② 평면에 있는 모든 벡터가 행렬 \( A \)에 의해 곱해진다. 이다.

위의 집을 회전시키는 예시에서, 행렬 \( A \)를 회전 행렬로 구성한다면, 다음 그림은 선형변환의 결과라고 할 수 있다.

■ 마찬가지로 행렬 \( A \)를 투영 행렬로 구성한다면, 투영의 결과도 선형변환의 결과라고 할 수 있다.
■ 집을 회전하는 예시에서 행렬 \( A \)를 \( A = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \)라고 하자. 이 행렬 \( A \)를 정의역에 있는, 집을 이루고 있는 모든 벡터에 적용한다면,

\( A = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \)이므로 \( x \)의 성분은 그대로 유지되고 \( y \)의 성분은 부호가 반전된다. 즉, 행렬 \( A \)를 집을 이루고 있는 모든 벡터에 적용하면, 집은 거꾸로 나타난다.

■ 이 예시처럼 선형변환의 아이디어는 행렬 \( A = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \)처럼 선형변환을 나타내는 행렬을 찾는 것이다.

행렬을 찾기 위해선 위의 예시에서 정의역에 있던 집이 변환 후에는 거꾸로 뒤집어진 것 처럼 전체 공간에서 무슨 일이 발생했는지 알아야 한다. 

■ 행렬 \( A = \begin{bmatrix} 1 & 0 \\ 0 & -1 \end{bmatrix} \)를 모르고 있는 상태라고 하자. 위의 그림에서 집이 거꾸로 뒤집어진 그림을 봤을 때, 이는 집을 거꾸로 뒤집게 하는 어떤 성분이 존재할 것이라 추측할 수 있다.

이때, 이 성분이 무엇인지 정확히 찾기 위해서는 좌표(coordinate)를 도입해야 한다. 그래야 변환 전과 변환 후의 좌표를 비교해가면서 전체 공간에서 무슨 일이 발생했는지 알 수 있기 때문이다.

그리고 좌표를 알기 위해서는 기저를 선택해야 한다. 왜냐하면 기저를 통해 좌표를 얻을 수 있기 때문이다.

■ 예를 들어, 어떤 선형변환 \( T \)가 있을 때, 입력이 \( \mathbb{R}^3 \)의 벡터이고 출력이 \( \mathbb{R]^2 \)의 벡터라고 가정하자.

- 그렇다면 선형변환 \( T \)는 \( T : \mathbb{R}^3 \rightarrow \mathbb{R}^2 \)로 표기할 수 있다.

■ 지금 이 예는 \( T : \mathbb{R}^3 \rightarrow \mathbb{R}^2 \)가 선형변환이므로, 이것은 선형이어야 하며, 3차원 공간에서 2차원 공간으로 변환을 의미한다. 그리고 이것을 만드는 쉬운 방법은 바로 행렬 곱셈이다. 즉, \( T( \mathbf{v} = A \mathbf{v} \)이다.

■ 입력인 \( \mathbf{v} \)는 3차원 공간의 벡터이므로 3개의 성분을 가진다. 그리고 출력은 2차원 공간에 있으므로 2개의 성분을 가질 것이다. 즉, 3차원 공간에서 2차원 공간으로 변환을 수행할 행렬 \( A \)의 크기는 \( 2 \times 3 \)이 되어야 한다.

- \( T( \mathbf{v} ) = A \mathbf{v} \)일 때, 좌변의 \( T( \mathbf{v} ) \)는 선형변환의 출력으로 2개의 성분을 갖는 2차원 벡터이고,

- 우변의 \( \mathbf{v} \)는 입력으로 3개의 성분을 갖는 3차원의 벡터이므로

- 이 두 벡터를 연결하기 위해서는 행렬 \( a \)의 크기는 \( 2 \times 3 \)이 되어야 한다.

이렇게 선형변환은 하나의 행렬과 연결된다.

■ 모든 (입력) 벡터에 대해서 어떤 변환 \( T \)가 무엇을 하는지 알기 위해선 얼마나 많은 정보가 필요할까? 예를 들어, 벡터 \( \mathbf{v}_1 \)과 \( \mathbf{v}_2 \)가 있다고 했을 때, \( T( \mathbf{v}_1) \), \( T( \mathbf{v}_2) \). 즉, \( T \)라는 변환이 무엇을 하는지 보자.

■ 서로 독립 관계를 가지고 있는 벡터의 선형 결합을 통해 어떤 공간을 생성할 수 있고, 이 공간을 생성한 벡터는 공간의 기저가 된다. 그리고 이 기저들을 통해 기저가 생성한 공간 내에 있는 어떠한 벡터라도 생성할 수 있다.

즉, 어떤 평면에 있는 '서로 독립 관계이고 선형 결합해서 공간을 생성하는 기저'들을 통해 어떤 평면에 있는 모든 입력 벡터들에 대해 변환이 무슨 일을 하는지 알 수 있다.

■ \( \mathbf{v}_1 \)과 \( \mathbf{v}_2 \)가 독립이라고 가정하자. 

- 만약, \( \mathbf{v}_1 \)과 \( \mathbf{v}_2 \)가 종속이었다면, 

- 예를 들어, \( \mathbf{v}_2 \)가 \( \mathbf{v}_1 \)의 6배라면, \( T(\mathbf{v}_2) \)에 대해 새로운 정보를 알 수 없다. \( T(\mathbf{v}_2) \)가 \( T(\mathbf{v}_1) \)의 6배라는 관계가 계속 유지되기 때문이다.

■ 변환이 기저에 있는 모든 벡터에 대해 무엇을 하는지 알게 된다면, 변환 \( T \)에 대한 모든 것을 알게 된다.

■ 그래서 모든 입력 벡터에 대해 \( \mathbf{v} \)가 있는 공간이 \( n \)차원 공간이라면, \( T( \mathbf{v}) \)를 알기 위해 필요한 정보는 기저 \( \mathbf{v}_1 \)에서 \( \mathbf{v}_n \)까지에 대한  \( T(\mathbf{v}_1) \), \( T(\mathbf{v}_2) \), \( \cdots \),  \( T(\mathbf{v}_n) \)이다.

■ 간단히 말하면, 모든 기저  \( \mathbf{v}_1 \)에서 \( \mathbf{v}_n \)까지에 대한  변환 \( T(\mathbf{v}_1) \), \( T(\mathbf{v}_2) \), \( \cdots \),  \( T(\mathbf{v}_n) \)를 알면, 기저와 같은 공간에 있는 모든 (입력) 벡터에 대해 변환 \( T \)가 어떤 일을 하는지 알 수 있다. 기저와 같은 공간에 있는 모든 (입력) 벡터는 기저의 선형결합을 통해 생성할 수 있기 때문이다.

모든 기저 \( \mathbf{v}_1 \cdots \mathbf{v}_n \)를 입력 기저(input basis)라고 하자. 

- 정확하게는 이 입력 기저는 정의역 공간을 생성하는 정의역의 기저이다.   

- 변환 \( T \)를 함수라고 생각해보자. 함수의 입력은 정의역이고, 정의역의 원소에 대응되는 원소들을 모아 놓은 공간은 치역(=상)이다. 그리고 이 치역은 공역의 부분집합이다.

- 그러므로 선형변환은 함수라는 점에서 입력 기저를 어떤 정의역 공간의 기저라고 할 수 있다.

\( \mathbf{v}_1 \cdots \mathbf{v}_n \)은 변환 \( T \)가 입력 공간(정의역 공간)의 기저이다. 

■ 다시 말해, 입력 공간에 대한 기저를 알고 있다면, 입력 공간의 기저벡터 각각에 대해서 변환이 무슨 일을 하는지 알 수 있고, 이를 통해 입력 기저들과 같은 공간에 잇는 모든 벡터 \( \mathbf{v} \)에 대한 \( T( \mathbf{v} ) \)를 알 수 있다.

이 입력 기저들이 생성하는 공간에 있는, 이 입력 기저들의 선형결합으로 만들 수 있는 모든 벡터 \( \mathbf{v} \)는 \( \mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n \)

■ 선형변환의 규칙(선형성)인 \( T \left( c \cdot \mathbf{v} + d \cdot \mathbf{w} \right) = c \cdot T( \mathbf{v} ) + d \cdot T( \mathbf{w} ) \)에 의해,  \( \mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n \)는 \( T( \mathbf{v} ) = c_1 T( \mathbf{v}_1 ) + T( c_2 \mathbf{v}_2 ) + \cdots + c_n T ( \mathbf{v}_n ) \)가 성립해야 한다. 

■ 그래서 선형변환 \( T \)가 기저에 있는 각각의 벡터에 대해 무엇을 하는지 알게 된다면, 선형변환 \( T \)이 무엇인지 알게 될 수밖에 없다.

■ 지금까지의 과정은 선형변환을 표현할 수 있는 행렬을 구하기 위해서이다. "기저 선택 \( \rightarrow \) 좌표 정의 \( \rightarrow \) 행렬 표현" 순서로 이어지기 때문이다. 즉, 행렬은 좌표계(coordinate system)에서 나올 것이다. 

- 또한,   "기저 선택 \( \rightarrow \) 좌표 정의 \( \rightarrow \) 행렬 표현" 순서로 이어진다.에서 좌표가 있다는 것은 기저가 정해졌다(coordinates come from a basis)는 의미라는 것을 알 수 있다.

■ 기저 \( \mathbf{v}_1, \cdots, \mathbf{v}_n \)을 결정했다면, \( c_1, c_2, \cdots, c_n \)은 기저의 좌표가 된다.

■ 왜냐하면, 벡터 \( \mathbf{v} \)를 기저 벡터의 선형 결합으로 표시할 수 있는 방법은 유일하게 \( \mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n \)라는 선형 결합이며, 이 조합에서 필요한 숫자들이 좌표이기 때문이다. 

■ 즉, 벡터 \( \mathbf{v} \)의 좌표는 \( \mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_n \mathbf{v}_n \)에서의 숫자 \( c_1, c_2, \cdots, c_n \)이 된다. 

cf) 그러므로 기저를 바꾼다면 좌표를 변경하는 것이 된다. 

이 숫자 \( c_1, c_2, \cdots, c_n \)은 기저들의 표현을 표준기저로 나타내면 얻을 수 있다.

■ 예를 들어 벡터 \( \mathbf{v} = \begin{bmatrix} 3 \\ 2 \\ 4 \end{bmatrix} \)라고 하자. 

■ 그렇다면, 벡터 \( \mathbf{v} \)는 \( \mathbf{v} = \begin{bmatrix} 3 \\ 0 \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 2 \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ 4 \end{bmatrix} \)으로 표현할 수 있고,

■ 이때, 이 벡터 \( \mathbf{v} \)를 3차원 공간의 표준기저 \( \{ \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \} \)를 이용하여 다음과 같이 나타낼 수 있다. 

\( \mathbf{v} = \begin{bmatrix} 3 \\ 0 \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 2 \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ 4 \end{bmatrix} = 3 \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} + 2 \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}  + 4 \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \) 

■ 여기서 [3, 2, 4]가 좌표이다. 좌표는 하나의 기저에서 나오는 것을 볼 수 있다. 이렇게 좌표는 하나의 기저에서 나오기 때문에 기저를 바꾸면 다른 좌표로 변경되는 것이다.

그리고 이 좌표는 벡터  \( \mathbf{v} = \begin{bmatrix} 3 \\ 2 \\ 4 \end{bmatrix} \)에 바로 있는 것을 알 수 있다.


1.5 Matrix A representing the linear transformation T 

■ 선형변환 \( T \)를 나타내는 행렬 \( A \)를 \( T \)의 행렬표현(표현행렬)이라고 부른다.

■ 보통, \( T \)를 가지고 \( n \)차원 공간을 \( m \)차원 공간으로 선형변환할 것이다. 

\( T : \mathbb{R}^n \rightarrow \mathbb{R}^m \)

\( T : \mathbb{R}^n \rightarrow \mathbb{R}^m \)을 하기 위해선 두 개의 기저가 필요하다. 입력을 설명하기 위해 입력 기저가 필요하고, 출력에 대한 것을 설명하기 위해 출력 기저가 필요하다. 

- 출력 기저가 \( \mathbf{w}_1, \cdots, \mathbf{w}_m \)이라고 하자.

■ 그러므로 \( \mathbb{R}^n \) 공간에 있는 \( \mathbf{v}_1 \)부터 \( \mathbf{v}_n \) 까지의 기저를 선택한다. 

■ 그리고 선형변환 \( T \)는 모든 \( n \)차원 벡터를 사용해서 \( m \)차원 벡터로 변환한다.

■ 즉, 출력을 위해 \( \mathbb{R}^m \) 공간에 있는 \( \mathbf{w}_1 \)부터 \( \mathbf{w}_m \)까지의 기저를 선택해야 한다.

■ 이렇게 기저를 선택하면, 행렬이 결정된다. 즉, 입력 기저와 출력 기저가 주어지면 입력 \( \rightarrow \) 출력의 변환을 처리하는 행렬이 결정된다.

■ \( \mathbb{R}^n \)에 있는 모든 입력 벡터는 어떤 좌표를 가지고 있다. 

■ 예를 들어, 벡터 \( \mathbf{v} \)를 기저로 표현해서, 이 벡터의 좌표를 얻을 수 있다. 그런 다음, 그 좌표를 행렬 \( A \)에 곱할 것이다. 그러면 출력 기저에서 출력의 좌표를 얻을 수 있다. 

- 이를 그림으로 나타내면 선형변환 \( T \)와 이 \( T \)를 표현하는 행렬은 다음과 같은 관계에 있다.

- \( a \)와 \( b \)는 주어진 입력 기저 \( \mathbf{v} \)와 출력 기저 \( T( \mathbf{v} ) = \mathbf{w} \)들에 대한 좌표(벡터)

■ 예를 들어, 투영 예제에서 \( n \)과 \( m \)이 2라고 하자. \( T : \mathbb{R}^2 \rightarrow \mathbb{R}^2 \)

투영하는 대상이 다음과 같은 직선이라고 할 때, 변환은 평면의 모든 벡터를 사용해서 이 직선 위로 투영을 하게 된다. 

■ 입력의 첫 번째 기저 벡터가 이 직선 위에 있는 단위 벡터라고 하자. 그리고 입력의 두 번째 기저 벡터는 첫 번째 기저 벡터와 독립이어야 하므로, 첫 번째 기저 벡터와 수직인 위치에 있는 단위 벡터라고 하자. 

■ 이때, 이 첫 번째 기저 벡터와 두 번째 기저 벡터를 출력 기저로 선택한다면, 이러한 '입력 \( \rightarrow \) 출력 = 입력'을 할 수 있는 행렬은 무엇일까 

■ 이 예시에서는 입력이 \( \mathbf{v}_1 \)이라면, 출력은 \( \mathbf{v}_1 \)이 된다. \( T(\mathbf{v}_1) = \mathbf{v}_1 \)

그러므로 투영이 첫 번째 기저 벡터 \( \mathbf{v}_1 \)에 대해서 하는 것은 입력  \( \mathbf{v}_1 \)을 출력 \( \mathbf{v}_1 \)으로. 즉, \( \mathbf{v}_1 \)을 그대로 두는 것임을 알 수 있다.

■ 그리고 투영이 \( \mathbf{v}_2 \)에 대해서 하는 일은  \( \mathbf{v}_2 \)를 0으로 뽀내는 것이다. 즉, \( \mathbf{v}_2 \)를 제거하는 것이다. \( T(\mathbf{v}_2) = 0 \)

- \( \mathbf{v}_2 \)가 제거되는 이유는 투영 과정에서 직선에 수직인 성분은 투영 시 사라지는데, \( \mathbf{v}_2 \)는 \( \mathbf{v}_1 \)과 수직. 즉, 투영하려는 선에 수직이다.

■ \( \mathbb{R}^2 \)에서의 첫 번째 기저 벡터 \( \mathbf{v}_1 \)과 두 번째 기저 벡터 \( \mathbf{v}_2 \)의 선형 결합이 \( \mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 \)라고 할 때, 

그러므로 투영은 \( \mathbf{v} = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 \)라는 결합에서 \( c_2 \mathbf{v_2} \) 부분을 제거하고 \( c_1 \mathbf{v}_1 \) 부분만 남기게 하는 역할을 한다. 즉, \( T( \mathbf{v} ) = c_1 \mathbf{v}_1 \)이라고 할 수 있다.

■ 이제 다음 단계는 \( T( \mathbf{v} ) = c_1 \mathbf{v}_1 \)을 표현할 수 있는 행렬표현(표현행렬)을 찾는 것이다.

이 행렬은 위의 선형변환 \( T \)와 이 \( T \)를 표현하는 행렬의 관계에 있는 그림을 보면, 입력 좌표를 받아서 출력 좌표를 반환한다.

■ 이 예에서 투영의 결과를 보면, \( c_1 \mathbf{v}_1 \) 성분은 유지되고, \( c_2 \mathbf{v}_2 \) 성분은 0이 되므로, 입력의 좌표는 \( \left( c_1, \; c_2 \right) \)였고, 출력의 좌표는 \( \left( c_1, \; 0 \right) \)이었다.

\( T : \mathbb{R}^2 \rightarrow \mathbb{R}^2 \)이므로 입력과 출력을 연결하는 행렬 \( A \)는 \( 2 \times 2 \)여야 한다.

그리고 \( A \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} = \begin{bmatrix} c_1 \\ 0 \end{bmatrix} \)이므로 행렬 \( A \)는 \( A = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} \)라는 것을 알 수 있다.

■ 즉, 선형변환 \( T \)가 하는 역할이 무엇인지를, 이렇게 \(\begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}  \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} = \begin{bmatrix} c_1 \\ 0 \end{bmatrix} \) 행렬로 표현해서 알 수 있다.

■ 그리고 행렬 \( A \)는 \( \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} \)에 입력 좌표(벡터) \( \begin{bmatrix} c_1 \\ c_2 \end{bmatrix} \)를 곱해서 출력 좌표(벡터) \( \begin{bmatrix} c_1 \\ 0 \end{bmatrix} \)를 만들어 내고 있다.

■ 이 예는 입력 기저와 출력 기저를 동일한 것으로 선택하고 있다. 입력 기저와 출력 기저는 모두 선을 따라 있거나 선에 수직이다. 그리고 이 기저는 실제로 투영의 고유벡터이다. 그리고 결과적으로 행렬 \( A \)는 \( \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix} \)이라는 대각 행렬이 되었다. 이때, 대각 행렬이므로 행렬 \( A \)는 고윳값 \( \lambda \)으로 구성된 대각 행렬이 되었다고 할 수 있다.

■ 즉, 고유벡터를 기저로 하면 행렬표현(표현행렬) \( A \)는 고윳값 \( \lambda \)로 구성된 고윳값 대각행렬 \( \Lambda \)로 유도된다.

■ 이번에는 \( \mathbb{R}^2 \)에서 투영하고자 하는 직선이 45도 직선이라고 하자. 즉, 45도 직선에 투영을 하는 것이다. 그리고 위와 같이 고유벡터 기저를 사용하는 것이 아니라 표준기저 \( \mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \; \mathbf{v}_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \)라고 하자.

■ 그리고 동일하게  \( \mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \mathbf{w}_1, \; \mathbf{v}_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \mathbf{w}_2 \로 입력 기저와 출력 기저가 같은 기저를 사용한다.

■ 마찬가지로 이때의 행렬을 찾을 수 있으며, 그것은 투영 행렬 \( P = \begin{bmatrix} 1/2 & 1/2 \\ 1/2 & 1/2 \end{bmatrix} = \dfrac{aa^T}{a^Ta} \)이다. 

■ 행렬 \( P \)가 이 이 예시의 선형변환이 하는 일을 표현한 행렬이다. 만약, 입력으로 \( \mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \)을 주면 출력은 \( \begin{bmatrix} 1/2 \\ 1/2 \end{bmatrix} \)가 된다. 입력으로 입력으로 \( \mathbf{v}_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \)을 주면 출력은 다시 \( \begin{bmatrix} 1/2 \\ 1/2 \end{bmatrix} \)가 된다.  

■ 이 예시에서 찾은 투영을 처리하는 행렬은 대칭 행렬이 아니다. 왜냐하면 고유벡터 기저를 선택한 것이 아니라 가장 생각하기 쉬운 표준기저를 사용했기 때문이다.

■ 이렇게 선형변환 \( T \)의 행렬표현(표현행렬) 또는 \( T \)의 행렬이라고 불리는 \( A \)를 찾는 규칙은 다음과 같다.

■ 일단, 기저가 무엇인지 알아야 한다. 기저가 무엇인지 모르면 행렬을 만들 방법이 없기 때문이다.

■ 그래서 입력 기저와 출력 기저 \( \mathbf{v}_1, \cdots, \mathbf{v}_n \)과 \( \mathbf{w}_1, \cdots, \mathbf{w}_n \)을 알아야 한다.

■ 이때 행렬표현 \( A \)의 첫 번째 열은 첫 번째 기저 벡터에 선형변환 \( T \)가 무슨 일을 하는지 알려줘야 한다. 즉, \( A \)의 첫 번째 열에는 첫 번쩨 기저 벡터 \( \mathbf{v}_1 \)에 선형변환을 적용한 결과인 \( T( \mathbf{v}_1) \)이 들어가야 한다.

■ \( A \)의 첫 번째 열이자 \( \mathbf{v}_1 \)의 선형변환 출력 결과인 \( T( \mathbf{v}_1) \)은 출력 공간에 있는 기저 \( \mathbf{w}_1, \cdots, \mathbf{w}_n \)의 선형 결합으로 나타낼 수 있으므로, \( T( \mathbf{v}_1) \) = a_{11} \mathbf{w}_1 + a_{21} \mathbf{w}_2 + \cdots + a_{m1} \mathbf{w}_m \)으로 표기할 수 있다.

■ 이때, \( a_{11}, a_{21}, \cdots, a_{m1} \)이라는 숫자들(=좌표(벡터))이 행렬 \( A \)의 첫 번째 열의 원소이다.

■ \( A \)의 두 번째 열을 구하는 방법도, 마찬가지로 두 번째 기저 벡터 \( \mathbf{v}_2 \)를 선형변환하여 이에 대응되는 출력기저 \( \mathbf{w}_2 \)를 얻는다. 그리고 \( \mathbf{w}_2 \)를 출력 기저의 선형결합으로 나타낸다. 선형결합으로 나타냈을 때, \( a_{12}, \cdots, a_{m2} \)가 바로 행렬 \( A \)의 두 번째 열의 원소이다.

■ 이러한 과정을 통해 얻은 얻은 행렬 \( A \)가 바로 \( T \)의 행렬이다. 

■ 그리고 위의 원소들로 구성된 행렬은 행렬 곱셈의 규칙에 따라, 입력 좌표(벡터)를 행렬 \( A \)에 곱해주면, 출력 좌표를 올바르게 만들어낸다.


1.6 The linear transformation that takes the derivative

■ \( T = \dfrac{d}{dx} \)라는 미분을 취하는 선형변환이 있다.

■ 예를 들어 입력 공간(정의역)이 \( c_1 + c_2x, c_3 x^2 \)의 모든 결합(combination)이라고 가정하자. 

■ 그러면, 이 다항식의 가장 간단한 (입력) 기저는 바로 이 간단한 함수들 \( (1, x, x^2) \)이다. 

■ 이 기저들을 입력으로 넣었을 때 얻게 되는 출력은 미분이다. 즉, 출력으로 \( c_2 + 2c_3 x \)를 얻게 된다. 

출력이 \( c_2 + 2c_3 x \)이므로 출력 기저는  \( (1, x) \가 된다.

■ 정리하면,  \( T = \dfrac{d}{dx} \)를 통해 3차원 입력 공간에서 2차원 출력 공간으로 미분을 통해 이동한 것이다.

■ 미분이 선형인 이유는 만약, 미분이 선형이 아니었다면, 미분을 계산하는 것은 영원히 계속될 것이다.

- 두 미분 가능한 함수 \( f(x) \)와 \( g(x) \)가 있다고 했을 때, 미분의 선형성을 확인해 보면,

- 위와 같이 선형변환이 되기 위한 규칙을 만족하는 것을 확인할 수 있다.

■ 이제 이 예시의 \( T \)의 행렬은 입력 좌표를 곱하면 출력 좌표를 반환하는 행렬이므로 \( 2 \times 3 \) 행렬이어야 한다. 그리고 입력 좌표와 출력 좌표를 통해 \( A \)를 구하면 \( \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 2 \end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \\c_3 \end{bmatrix} = \begin{bmatrix} c_2 \\ 2c_3 \end{bmatrix} \)

■ 이렇게 행렬 \( A = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 2 \end{bmatrix} \)는

\( A \)의 1행 [0, 1, 0] 출력 벡터의 첫 번째 원소 \( c_2 \)를 계산하고, \( A \)의 2행 [0, 0, 2]이 출력 벡터의 두 번째 원소 \( 2c_3 \)을 계산하는 역할을 한다.