나뭇잎 교과서

선형변환과 행렬

행렬을 벡터에 곱하는 것은 평면의 점을 다른 점으로 옮기는 함수로 볼 수 있습니다. 덧셈과 실수배를 보존하는 이런 함수가 선형변환이고, 평면의 선형변환은 \(\vec{e}_1\), \(\vec{e}_2\)가 가는 곳만으로 완전히 정해집니다. 이 절에서는 행렬의 성분을 바꾸며 격자가 어떻게 휘는지 보고, 변환된 집 그림만 보고 행렬을 알아내 봅니다.

본문

선형변환과 행렬

본문

모눈종이에 그린 고양이 그림을 어떤 변환으로 옮겼더니, 가로 눈금은 오른쪽 위로 비스듬히, 세로 눈금은 오른쪽으로 기울어진 평행사변형 격자가 되었다. 원래 \((1, 0)\)에 있던 점은 \((2, 1)\)로, \((0, 1)\)에 있던 점은 \((1, 1)\)로 옮겨졌다. 격자의 선들은 여전히 곧고 서로 나란하며, 원점도 그대로이다. 이 정보 두 가지만으로 고양이 그림의 다른 모든 점이 어디로 갔는지 알 수 있을까? 변환을 행렬 하나로 나타낼 수 있을까?

e₁, e₂ T(e₁) = (2, 1) T(e₂) = (1, 1) → 원래 격자바뀐 격자
그림 1. 기저 벡터 두 개가 어디로 가는지 알면 격자 전체가 어떻게 바뀌는지 정해진다.
먼저 알아야 할 것행렬의 곱셈, 기저와 좌표(기저), 행렬식(행렬식).

2.4.1더하기와 실수배를 지키는 변환

벡터를 벡터로 보내는 함수 \(T\)가 \(T(\vec u + \vec v) = T(\vec u) + T(\vec v)\), \(T(k\vec u) = kT(\vec u)\)를 만족하면 선형변환이라 한다. 덧셈과 실수배를 지키므로 직선은 직선으로, 평행한 선은 평행한 선으로 가고, 원점은 원점으로 간다. 모든 벡터는 \(\vec v = x\vec e_1 + y\vec e_2\)처럼 기저의 일차결합이므로, 선형성에서 \(T(\vec v) = xT(\vec e_1) + yT(\vec e_2)\)이다. 그래서 기저 벡터의 행선지만 알면 모든 벡터의 행선지가 정해진다.

정리 2.4.1 선형변환의 행렬

평면의 선형변환 \(T\)에 대해 \(T(\vec e_1)\)과 \(T(\vec e_2)\)를 차례로 열로 하는 행렬을 \(A\)라 하면, 모든 \(\vec v\)에 대해 \(T(\vec v) = A\vec v\)이다. 거꾸로 모든 행렬은 \(\vec v \mapsto A\vec v\)로 선형변환을 정한다. \(T\)는 넓이를 \(|\det A|\)배로 바꾼다.

행렬의 열이 기저 벡터의 행선지라는 것은, 행렬을 보면 변환을 그릴 수 있고 변환을 보면 행렬을 쓸 수 있다는 뜻이다. 행렬과 벡터의 곱 \(A\vec v\)는 \(A\)의 열들을 \(\vec v\)의 성분만큼 곱해 더한 것이어서, 바뀐 격자 위에서 원래 좌표대로 칸을 세어 가는 일과 같다. 원점을 옮기는 평행이동이나 곧은 선을 휘게 하는 변환은 선형변환이 아니어서 이렇게 행렬 하나로 나타낼 수 없다.1

2.4.2바뀐 그림에서 행렬 읽기

바뀐 그림에서 행렬을 알아내려면, 원래 \((1, 0)\)과 \((0, 1)\)에 있던 두 점이 어디로 갔는지 찾아 그 좌표를 열로 적는다. 오른쪽으로 2배 늘인 변환은 \((1, 0)\)이 \((2, 0)\)으로 가고 \((0, 1)\)은 그대로이므로 \(\begin{pmatrix}2 & 0\\ 0 & 1\end{pmatrix}\)이다. 위쪽을 오른쪽으로 밀어 기울인 변환은 \((0, 1)\)이 \((1, 1)\)로 가므로 \(\begin{pmatrix}1 & 1\\ 0 & 1\end{pmatrix}\)이다. 기저가 아닌 두 점의 행선지만 알 때는, 그 두 점을 기저로 쓰는 식을 세워 연립방정식으로 행렬을 구한다.

원래 점일차결합행선지 (3, −1)3(2, 1) − (1, 1)(5, 2) (1, 1)(2, 1) + (1, 1)(3, 2) (−1, 2)−(2, 1) + 2(1, 1)(0, 1)
그림 2. 바뀐 점은 행렬의 두 열을 원래 좌표만큼 곱해 더한 것이다.

2.4.3예제 풀이

예제 2.4.2

처음 질문의 변환을 행렬로 쓰고, 점 \((3, -1)\)의 행선지를 구하여라. 넓이 6인 고양이 그림은 바뀐 뒤 넓이가 얼마인가? 또 \((1, 1)\)이 \((3, 1)\)로, \((1, -1)\)이 \((1, 3)\)으로 가는 선형변환의 행렬을 구하여라.

\(T(\vec e_1) = (2, 1)\), \(T(\vec e_2) = (1, 1)\)이므로 \(A = \begin{pmatrix}2 & 1\\ 1 & 1\end{pmatrix}\)이다. \(A\begin{pmatrix}3\\ -1\end{pmatrix} = \begin{pmatrix}5\\ 2\end{pmatrix}\)이다. \(\det A = 2 - 1 = 1\)이므로 고양이 그림은 모양이 기울어져도 넓이는 6 그대로이다.

둘째 변환은 \(\vec e_1 = \tfrac12[(1, 1) + (1, -1)]\), \(\vec e_2 = \tfrac12[(1, 1) - (1, -1)]\)이므로 선형성에서 \(T(\vec e_1) = \tfrac12[(3, 1) + (1, 3)] = (2, 2)\), \(T(\vec e_2) = \tfrac12[(3, 1) - (1, 3)] = (1, -1)\)이다. 그래서 행렬은 \(\begin{pmatrix}2 & 1\\ 2 & -1\end{pmatrix}\)이다. 확인하면 \(\begin{pmatrix}2 & 1\\ 2 & -1\end{pmatrix}\begin{pmatrix}1\\ 1\end{pmatrix} = \begin{pmatrix}3\\ 1\end{pmatrix}\)이다. 즉 선형변환은 덧셈과 실수배를 지키므로 기저 벡터의 행선지만으로 정해지고, 그 행선지를 열로 늘어놓은 행렬을 곱하는 것과 같다.

아래 탐구 카드에서 행렬을 바꾸며 격자 전체가 어떻게 움직이는지 보고, 바뀐 그림만 보고 행렬을 알아맞혀 보자.

  1. 컴퓨터 그래픽에서는 평행이동도 행렬 곱셈으로 다루려고 점 \((x, y)\)를 \((x, y, 1)\)로 쓰는 동차좌표를 쓴다. 한 차원을 늘리면 평행이동이 \(3\times3\) 행렬의 선형변환이 되어, 회전과 확대와 이동을 행렬 하나로 합칠 수 있다.
마무리

덧셈과 실수배를 지키는 선형변환은 직선을 직선으로, 원점을 원점으로 보내며, 기저 벡터의 행선지만으로 모든 벡터의 행선지가 정해진다. 그래서 \(T(\vec e_1)\), \(T(\vec e_2)\)를 열로 하는 행렬 \(A\)에 대해 \(T(\vec v) = A\vec v\)이고, 넓이는 \(|\det A|\)배가 된다. 처음 질문의 변환은 행렬 \(\begin{pmatrix}2 & 1\\ 1 & 1\end{pmatrix}\)이어서 \((3, -1)\)을 \((5, 2)\)로 보내고, 행렬식이 1이라 그림의 넓이는 그대로이다.

탐구 1

행렬 하나가 평면 전체를 어떻게 움직일까?

선형변환과 행렬 · 조작

—

  1. 질문행렬 \(\begin{pmatrix} a & b \\ c & d \end{pmatrix}\)를 점 \((x, y)\)에 곱하면 새 점이 나온다. 평면의 모든 점에 한꺼번에 곱하면 평면은 어떤 모양으로 바뀔까? 무한히 많은 점의 행방을 알려면 몇 개의 점만 보면 될까?
  2. 복원\(\begin{pmatrix} a & b \\ c & d \end{pmatrix}\binom{x}{y} = x\binom{a}{c} + y\binom{b}{d}\), 곧 행렬과 벡터의 곱은 열벡터들의 일차결합이다.
  3. 설명\(T(\vec{u} + \vec{v}) = T(\vec{u}) + T(\vec{v})\), \(T(k\vec{u}) = kT(\vec{u})\)를 만족하는 함수를 선형변환이라고 한다. 행렬을 곱하는 변환은 선형변환이고, 거꾸로 평면의 선형변환은 모두 행렬 하나로 나타난다. \(\vec{e}_1 = (1, 0)\), \(\vec{e}_2 = (0, 1)\)이 가는 곳을 차례로 열에 적으면 그 행렬이다. 그래서 \(\vec{e}_1\), \(\vec{e}_2\)의 상 두 개만 알면 평면 전체의 행방을 안다. 격자선은 평행하고 같은 간격인 채로 남고, 원점은 움직이지 않는다.
  4. 연결색칠한 단위 정사각형의 넓이가 \(|\det|\)배가 되는 것을 앞 절에서 보았다. 게임과 그래픽 프로그램은 화면의 모든 점을 이런 행렬 곱으로 움직인다.
  5. 적용슬라이더를 하나씩 움직이며 빨강(\(\vec{e}_1\)의 상)과 초록(\(\vec{e}_2\)의 상) 화살표가 어느 열을 따라가는지 확인해 보자. "납작하게"에서는 평면이 어떻게 되는가? 그때 \(\det\)는 얼마인가?
  6. 판단평행이동 \((x, y) \mapsto (x + 1, y)\)은 원점을 움직이므로 선형변환이 아니고, \(2 \times 2\) 행렬로 나타낼 수 없다. 그래픽에서는 차원을 하나 늘린 \(3 \times 3\) 행렬(동차좌표)로 평행이동까지 다룬다.

확인조건이 달라지면

선형변환 \(T\)가 \(T(1, 0) = (2, 1)\), \(T(0, 1) = (-1, 3)\)을 만족할 때 \(T(2, 1)\)은?

탐구 2

바뀐 그림만 보고 행렬을 알아낼 수 있을까?

변환을 나타내는 행렬 · 도전

—

내 행렬

  1. 질문사진 편집 앱에서 그림을 돌리고 늘이고 비튼 결과만 보고, 어떤 행렬을 썼는지 알아낼 수 있을까?
  2. 복원선형변환의 행렬은 \(\vec{e}_1\)의 상을 1열, \(\vec{e}_2\)의 상을 2열에 적은 것이다.
  3. 설명집의 왼쪽 아래 꼭짓점은 원점, 바닥의 오른쪽 끝은 \((1, 0)\), 왼쪽 벽 위 끝은 \((0, 1)\)이다. 목표 그림에서 이 두 점이 간 곳 \((a, c)\), \((b, d)\)를 읽으면 행렬은 \(\begin{pmatrix} a & b \\ c & d \end{pmatrix}\)이다. 두 점만 맞으면 나머지 모든 점도 저절로 맞다. 선형변환이 일차결합을 보존하기 때문이다.
  4. 연결컴퓨터 비전은 같은 물체를 찍은 두 사진에서 대응점 몇 쌍을 찾아 두 사진 사이의 변환 행렬을 구한다. 파노라마 사진을 이어 붙일 때 쓰는 방법이다.
  5. 적용문제마다 목표 그림에서 \((1, 0)\)과 \((0, 1)\)이 간 곳을 찾아 행렬을 입력해 보자. 막히면 힌트를 누르자.
  6. 판단모양이 대칭이면 서로 다른 행렬이 같은 그림을 만들 수 있다. 이 집은 일부러 비대칭으로 만들어 그런 일이 없다. 실제 사진에서도 대응점을 잘못 짝지으면 엉뚱한 행렬이 나온다.

확인조건이 달라지면

\((1, 0)\)을 \((0, 2)\)로, \((0, 1)\)을 \((-1, 0)\)으로 보내는 선형변환의 행렬은?

AI 출제 문항연습문제 풀어보기13문항
Esc

↑↓ 고르기Enter 열기