Матрица как линейное преобразование

Матрица — это правило, которое каждому вектору сопоставляет новый вектор, не ломая сетку пространства.

Линейное преобразование — отображение, которое переводит прямые в прямые, начало координат оставляет на месте и сохраняет операции сложения и умножения на число. Каждое такое преобразование задаётся матрицей.

Главная идея этого раздела: матрица — это глагол, действие. Умножая матрицу на вектор, мы преобразуем вектор. А чтобы понять, что именно делает матрица, достаточно посмотреть, куда она отправляет базисные векторы — и это её столбцы.

Умножение матрицы на вектор

Для матрицы $2 \times 2$ и вектора $(x, y)$:

$$\begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} a x + b y \\ c x + d y \end{bmatrix}$$

Результат — снова вектор. Можно прочитать это иначе: ответ есть $x$ умножить на первый столбец плюс $y$ умножить на второй столбец. То есть выход — это линейная комбинация столбцов матрицы с коэффициентами из вектора.

Столбцы — это образы осей

Подставим $(1, 0)$: получим первый столбец. Подставим $(0, 1)$: получим второй столбец. Значит, столбцы матрицы — это то, во что превращаются базисные стрелки $\vec{e}_1$ и $\vec{e}_2$. Зная, куда поехали оси, мы знаем преобразование целиком, потому что любой вектор — комбинация осей.

def matvec(A, v):
    return [sum(A[i][j] * v[j] for j in range(len(v)))
            for i in range(len(A))]

A = [[2, 0],
     [0, 3]]   # растяжение: x в 2 раза, y в 3 раза

print("e1 ->", matvec(A, [1, 0]))  # первый столбец
print("e2 ->", matvec(A, [0, 1]))  # второй столбец
print("v  ->", matvec(A, [1, 1]))

Вывод:

e1 -> [2, 0]
e2 -> [0, 3]
v  -> [2, 3]

Прочитали матрицу как действие

Матрица $\begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix}$ растягивает по $x$ вдвое, по $y$ втрое. Базисный $\vec{e}_1 = (1, 0)$ уехал в $(2, 0)$, $\vec{e}_2 = (0, 1)$ — в $(0, 3)$, и точка $(1, 1)$ — в $(2, 3)$. Диагональная матрица всегда означает «независимое масштабирование осей».

Как работает под капотом

Функция matvec для каждой строки матрицы считает скалярное произведение этой строки на вектор. Поэтому $i$-я координата ответа — это «строка $i$, умноженная на вход». Свойство линейности $A(\vec{u} + \vec{v}) = A\vec{u} + A\vec{v}$ и $A(k\vec{v}) = k\,A\vec{v}$ — прямое следствие того, что внутри стоят суммы и произведения. Именно линейность гарантирует, что сетка пространства остаётся равномерной: параллельные прямые остаются параллельными, а начало координат не двигается.

Частые ошибки

  • Считать матрицу просто таблицей. В линейной алгебре матрица — это действие над пространством, а её столбцы — образы базисных векторов.
  • Путать порядок: $A\vec{v}$ (матрица на вектор-столбец) — это не то же самое, что $\vec{v}A$. Размерности должны согласоваться.
  • Забывать, что линейное преобразование оставляет начало координат на месте. Сдвиг всей плоскости на постоянный вектор линейным не является.

Итог

  • Матрица задаёт линейное преобразование: вектор на входе — вектор на выходе.
  • $A\vec{v}$ — это линейная комбинация столбцов $A$ с коэффициентами из $\vec{v}$.
  • Столбцы матрицы — образы базисных векторов; они полностью описывают преобразование.
  • Линейность сохраняет сетку: прямые остаются прямыми, ноль — на месте.
Проверьте себя
1. Что геометрически означают столбцы матрицы преобразования?
Aдлины сторон
Bобразы базисных векторов e1 и e2
Cсобственные значения
Dкоординаты центра
2. Чему равно произведение матрицы [[2,0],[0,3]] на вектор (4, 5)?
A(8, 15)
B(6, 8)
C(2, 3)
D(20, 14)
3. Почему сдвиг всей плоскости на постоянный вектор не является линейным преобразованием?
Aпотому что он не сохраняет длины
Bпотому что он сдвигает начало координат, а линейное преобразование оставляет ноль на месте
Cпотому что у него нет матрицы
Dон как раз линейный