🔴 Сложный ⏱️ 50 минут

Свойства определителей

📋 Содержание урока

Свойства определителей ⚙️

В прошлом уроке ты научился вычислять определители $2\times2$ и $3\times3$ — по формуле "крест-накрест" или по правилу Саррюса. Но что если тебе нужен определитель матрицы $10\times10$? Раскладывать его по определению придётся через $10!$ слагаемых — это больше трёх миллионов членов. Ни один человек, ни один разумный алгоритм так делать не будет.

Хорошая новость: определитель обладает набором строгих правил поведения — свойств, — которые превращают чудовищную задачу в рутинную. Зная эти правила, ты сможешь вычислить определитель $100\times100$ матрицы за секунды (буквально — так работает numpy.linalg.det), предсказать, как изменится определитель при операциях над строками, и понять, почему нейросеть "схлопывается" в вырожденное состояние.

Представь, что определитель — это функция, которая берёт квадратную матрицу и возвращает одно число, характеризующее её "объёмность". Свойства определителя — это правила игры: что происходит с этим числом, когда ты переставляешь строки, умножаешь их на число, складываешь матрицы или транспонируешь их. Эти правила не просто удобны для вычислений — они формируют весь фундамент линейной алгебры: обратимость матриц, ранг, собственные значения, решения систем уравнений — всё опирается именно на свойства определителей, а не на голое определение.

В этом уроке мы разберём шесть ключевых свойств, каждое — с интуицией, строгой формулировкой и минимум тремя примерами "от простого к сложному", посчитанными вручную. А в конце ты увидишь, как элементарные преобразования строк превращают вычисление определителя большой матрицы в задачу, которую можно решить за пару минут на бумаге.

🎯 Что ты узнаешь в этом уроке:

  • Как определитель ведёт себя при умножении матриц: $\det(AB) = \det(A)\det(B)$
  • Почему транспонирование не меняет определитель
  • Как масштабируется определитель при умножении матрицы на число
  • Почему перестановка строк или столбцов меняет знак определителя
  • Как мгновенно найти определитель треугольной матрицы
  • Как элементарные преобразования ускоряют вычисление больших определителей
  • Где эти свойства используются в машинном обучении: нормализующие потоки, ковариационные матрицы, цепочки линейных слоёв

История: откуда это взялось?

Определители появились раньше матриц — как ни странно это звучит. В 1683 году японский математик Сэки Такакадзу разработал метод решения систем уравнений через величины, эквивалентные определителям, — задолго до того, как эта идея добралась до Европы. Независимо от него, в 1693 году Готфрид Лейбниц в письме к Лопиталю описал похожую конструкцию для решения линейных систем, назвав получающиеся числа "resultante" — результирующими.

Но настоящий прорыв случился почти сто лет спустя. В 1771 году Александр-Теофиль Вандермонд впервые начал рассматривать определитель не как побочный инструмент для решения уравнений, а как самостоятельный математический объект со своими правилами. Именно поэтому его иногда называют "отцом теории определителей" — а знаменитая матрица со степенями чисел, которую ты встретишь в практике этого урока, названа в его честь.

Решающий вклад внёс Огюстен-Луи Коши. В 1812 году он не только ввёл сам термин "détermínant" в современном смысле, но и доказал теорему об умножении: $\det(AB) = \det(A)\det(B)$ — то самое свойство, с которого мы начнём разбор. Коши формализовал определитель как функцию строк матрицы, обладающую строгими алгебраическими свойствами, — и с этого момента определители стали именно тем инструментом, которым мы пользуемся сегодня.


Свойство 1: определитель произведения — $\det(AB) = \det(A)\det(B)$

Давай разберёмся с самым мощным свойством определителя — тем самым, которое доказал Коши. Представь, что каждая матрица — это "машина преобразования пространства": она берёт вектор и превращает его в другой вектор, растягивая, сжимая или отражая пространство вокруг. Определитель матрицы — это коэффициент изменения объёма при таком преобразовании.

Если ты сначала применяешь преобразование $A$, а затем $B$ — то есть вычисляешь произведение $BA$ (или $AB$, в зависимости от порядка операций) — то итоговое изменение объёма равно произведению отдельных изменений объёма. Это интуитивно: если первое преобразование увеличивает объём в 3 раза, а второе — в 5 раз, то суммарно объём вырастет в 15 раз.

Определение: Для любых квадратных матриц $A$ и $B$ одинакового размера $n \times n$ выполняется:

$$\det(AB) = \det(A) \cdot \det(B)$$

Пример 1 (лёгкий)

Даны матрицы:

$$A = \begin{pmatrix} 2 & 1 \\ 1 & 3 \end{pmatrix}, \quad B = \begin{pmatrix} 1 & 0 \\ 2 & 1 \end{pmatrix}$$

Считаем определители по отдельности:

$$\det(A) = 2 \cdot 3 - 1 \cdot 1 = 5, \quad \det(B) = 1 \cdot 1 - 0 \cdot 2 = 1$$

Теперь перемножим матрицы:

$$AB = \begin{pmatrix} 2\cdot1+1\cdot2 & 2\cdot0+1\cdot1 \\ 1\cdot1+3\cdot2 & 1\cdot0+3\cdot1 \end{pmatrix} = \begin{pmatrix} 4 & 1 \\ 7 & 3 \end{pmatrix}$$$$\det(AB) = 4 \cdot 3 - 1 \cdot 7 = 12 - 7 = 5$$

Проверка: $\det(A) \cdot \det(B) = 5 \cdot 1 = 5$. Совпало.

Пример 2 (средний)

Теперь возьмём матрицы с отрицательными числами:

$$A = \begin{pmatrix} 3 & -2 \\ 1 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 0 & 5 \\ -1 & 2 \end{pmatrix}$$$$\det(A) = 3\cdot4 - (-2)\cdot1 = 12+2 = 14, \quad \det(B) = 0\cdot2 - 5\cdot(-1) = 5$$$$AB = \begin{pmatrix} 3\cdot0+(-2)(-1) & 3\cdot5+(-2)\cdot2 \\ 1\cdot0+4\cdot(-1) & 1\cdot5+4\cdot2 \end{pmatrix} = \begin{pmatrix} 2 & 11 \\ -4 & 13 \end{pmatrix}$$$$\det(AB) = 2\cdot13 - 11\cdot(-4) = 26+44 = 70 = 14 \cdot 5 \,\checkmark$$

Пример 3 (сложный)

Проверим свойство на матрицах $3\times3$ — именно здесь оно спасает от лишней работы:

$$A = \begin{pmatrix} 1 & 0 & 2 \\ 0 & 1 & 3 \\ 1 & 1 & 0 \end{pmatrix}, \quad B = \begin{pmatrix} 2 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 2 & 1 \end{pmatrix}$$

Раскладываем оба определителя по первой строке:

$$\det(A) = 1(1\cdot0-3\cdot1) - 0(0\cdot0-3\cdot1) + 2(0\cdot1-1\cdot1) = -3 - 0 - 2 = -5$$

$$\det(B) = 2(0\cdot1-1\cdot2) - 1(1\cdot1-1\cdot0) + 0(1\cdot2-0\cdot0) = -4 - 1 + 0 = -5$$

Перемножаем матрицы:

$$AB = \begin{pmatrix} 2 & 5 & 2 \\ 1 & 6 & 4 \\ 3 & 1 & 1 \end{pmatrix}$$$$\det(AB) = 2(6\cdot1-4\cdot1) - 5(1\cdot1-4\cdot3) + 2(1\cdot1-6\cdot3) = 4+55-34 = 25$$

Проверка: $\det(A)\cdot\det(B) = (-5)\cdot(-5) = 25 \,\checkmark$

Почему это важно: нейросеть — это цепочка линейных слоёв (плюс нелинейности), и каждый линейный слой описывается своей весовой матрицей. Когда данные проходят через слои $W_1$, затем $W_2$, затем $W_3$, итоговое линейное преобразование — это произведение $W_3 W_2 W_1$, а его определитель равен произведению определителей отдельных слоёв. Именно на этом свойстве держатся нормализующие потоки (normalizing flows) — генеративные модели, в которых нужно точно знать, во сколько раз преобразование "растягивает" плотность вероятности. Вместо того чтобы вычислять определитель огромной композитной матрицы, достаточно перемножить (а на практике — сложить логарифмы) определители отдельных слоёв.


Свойство 2: транспонирование не меняет определитель — $\det(A^T) = \det(A)$

Представь, что ты смотришь на таблицу чисел с одной стороны, а потом переворачиваешь её "на бок" — строки становятся столбцами, столбцы становятся строками. Кажется, что это должно как-то повлиять на "объём", который кодирует определитель. Но нет — определитель абсолютно нечувствителен к транспонированию.

Это логично, если вспомнить, что определитель можно раскладывать как по строкам, так и по столбцам — обе формулы дают одинаковый результат. Значит, роль строк и столбцов в определителе полностью симметрична.

Определение: Для любой квадратной матрицы $A$ выполняется:

$$\det(A^T) = \det(A)$$

Пример 1 (лёгкий)

$$A = \begin{pmatrix} 3 & 5 \\ 2 & 4 \end{pmatrix}, \quad \det(A) = 3\cdot4 - 5\cdot2 = 2$$$$A^T = \begin{pmatrix} 3 & 2 \\ 5 & 4 \end{pmatrix}, \quad \det(A^T) = 3\cdot4 - 2\cdot5 = 2 \,\checkmark$$

Пример 2 (средний)

$$A = \begin{pmatrix} -1 & 6 \\ 3 & 2 \end{pmatrix}, \quad \det(A) = -1\cdot2 - 6\cdot3 = -2-18 = -20$$$$A^T = \begin{pmatrix} -1 & 3 \\ 6 & 2 \end{pmatrix}, \quad \det(A^T) = -1\cdot2 - 3\cdot6 = -2-18 = -20 \,\checkmark$$

Пример 3 (сложный)

$$A = \begin{pmatrix} 1 & 2 & 3 \\ 0 & 1 & 4 \\ 5 & 6 & 0 \end{pmatrix}$$$$\det(A) = 1(1\cdot0-4\cdot6) - 2(0\cdot0-4\cdot5) + 3(0\cdot6-1\cdot5) = -24+40-15 = 1$$$$A^T = \begin{pmatrix} 1 & 0 & 5 \\ 2 & 1 & 6 \\ 3 & 4 & 0 \end{pmatrix}$$$$\det(A^T) = 1(1\cdot0-6\cdot4) - 0(2\cdot0-6\cdot3) + 5(2\cdot4-1\cdot3) = -24-0+25 = 1 \,\checkmark$$

Почему это важно: в машинном обучении матрицы вида $A^TA$ встречаются повсеместно — это матрицы Грама и ковариационные матрицы. Свойство $\det(A^T) = \det(A)$ вместе со свойством умножения даёт мгновенный вывод: $\det(A^TA) = \det(A^T)\det(A) = \det(A)^2 \geq 0$. То есть определитель матрицы Грама никогда не бывает отрицательным — важнейший факт для проверки того, что ковариационная матрица корректна (положительно полуопределена).


Свойство 3: вынесение скаляра — $\det(kA) = k^n \det(A)$

А теперь ловушка для интуиции. Если ты умножаешь число $x$ на константу $k$, оно просто становится $kx$. Кажется естественным, что при умножении матрицы на $k$ определитель тоже должен умножиться на $k$. Но это не так!

Представь параллелепипед, натянутый на векторы-строки матрицы. Если ты умножаешь всю матрицу на $k$, это значит, что ты растягиваешь каждую из $n$ сторон параллелепипеда в $k$ раз одновременно. А объём при растяжении каждого из $n$ измерений в $k$ раз растёт как $k^n$, а не как $k$.

Определение: Для квадратной матрицы $A$ размера $n \times n$ и скаляра $k$:

$$\det(kA) = k^n \det(A)$$

Пример 1 (лёгкий)

$$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad \det(A) = 1\cdot4-2\cdot3 = -2$$

Умножим на $k=3$ (здесь $n=2$):

$$3A = \begin{pmatrix} 3 & 6 \\ 9 & 12 \end{pmatrix}, \quad \det(3A) = 3\cdot12-6\cdot9 = 36-54 = -18$$

Проверка: $3^2 \cdot (-2) = 9 \cdot (-2) = -18 \,\checkmark$

Пример 2 (средний)

$$A = \begin{pmatrix} 2 & 0 \\ 1 & 3 \end{pmatrix}, \quad \det(A) = 6$$

Умножим на отрицательный $k=-2$:

$$-2A = \begin{pmatrix} -4 & 0 \\ -2 & -6 \end{pmatrix}, \quad \det(-2A) = (-4)(-6) - 0\cdot(-2) = 24$$

Проверка: $(-2)^2 \cdot 6 = 4\cdot6 = 24 \,\checkmark$ — заметь, что знак результата положительный, хотя $k$ отрицательный, потому что $n=2$ чётное.

Пример 3 (сложный)

$$A = \begin{pmatrix} 1 & 1 & 0 \\ 0 & 2 & 1 \\ 1 & 0 & 3 \end{pmatrix}$$$$\det(A) = 1(2\cdot3-1\cdot0) - 1(0\cdot3-1\cdot1) + 0(0\cdot0-2\cdot1) = 6+1+0 = 7$$

Умножим на $k=-1$ (здесь $n=3$ — нечётное, значит знак должен смениться):

$$-A = \begin{pmatrix} -1 & -1 & 0 \\ 0 & -2 & -1 \\ -1 & 0 & -3 \end{pmatrix}$$$$\det(-A) = -1((-2)(-3)-(-1)\cdot0) - (-1)(0\cdot(-3)-(-1)(-1)) + 0(\ldots) = -6-1+0 = -7$$

Проверка: $(-1)^3 \cdot 7 = -7 \,\checkmark$

Почему это важно: этот множитель $k^n$ растёт (или падает) экспоненциально с размерностью $n$. Для большой матрицы весов ($n$ порядка сотен или тысяч) даже небольшое масштабирование $k$, близкое к единице, приводит к колоссальному изменению определителя. Это одна из скрытых причин проблемы затухающих и взрывающихся градиентов в глубоких сетях: если каждый слой чуть-чуть сжимает пространство ($k < 1$), то после десятков слоёв суммарное сжатие ($k^n$ для матрицы соответствующего размера через цепочку умножений) становится катастрофическим.


Свойство 4: перестановка строк или столбцов меняет знак

Представь, что ты смотришь на параллелепипед, натянутый на векторы-строки. Если поменять местами два вектора-ребра, форма объекта в пространстве не изменится — но ориентация изменится на противоположную (это как посмотреть на объект в зеркале). Определитель кодирует не просто объём, а ориентированный объём, поэтому при перестановке строк он меняет знак, сохраняя абсолютную величину.

Определение: Если матрица $B$ получена из матрицы $A$ перестановкой местами двух строк (или двух столбцов), то:

$$\det(B) = -\det(A)$$

Пример 1 (лёгкий)

$$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad \det(A) = -2$$

Меняем строки местами:

$$B = \begin{pmatrix} 3 & 4 \\ 1 & 2 \end{pmatrix}, \quad \det(B) = 3\cdot2-4\cdot1 = 2 = -(-2) \,\checkmark$$

Пример 2 (средний)

Возьмём матрицу из свойства 3:

$$A = \begin{pmatrix} 1 & 0 & 2 \\ 0 & 1 & 3 \\ 1 & 1 & 0 \end{pmatrix}, \quad \det(A) = -5$$

Меняем местами первую и третью строки:

$$B = \begin{pmatrix} 1 & 1 & 0 \\ 0 & 1 & 3 \\ 1 & 0 & 2 \end{pmatrix}$$$$\det(B) = 1(1\cdot2-3\cdot0) - 1(0\cdot2-3\cdot1) + 0(\ldots) = 2+3 = 5 = -(-5) \,\checkmark$$

Пример 3 (сложный)

Проверим то же самое, но для перестановки столбцов той же матрицы $A$ (меняем местами 1-й и 2-й столбцы):

$$C = \begin{pmatrix} 0 & 1 & 2 \\ 1 & 0 & 3 \\ 1 & 1 & 0 \end{pmatrix}$$$$\det(C) = 0(0\cdot0-3\cdot1) - 1(1\cdot0-3\cdot1) + 2(1\cdot1-0\cdot1) = 0+3+2 = 5 = -(-5) \,\checkmark$$

Правило работает одинаково и для строк, и для столбцов — это прямое следствие того, что $\det(A^T)=\det(A)$.

Почему это важно: это свойство лежит в основе понятия чётности перестановки — базового объекта в формуле Лейбница для определителя (сумма по всем перестановкам индексов со знаком). В компьютерной графике знак определителя матрицы поворота показывает, сохраняется ли ориентация объекта (обычное вращение) или происходит зеркальное отражение. В LU-разложении с выбором ведущего элемента (partial pivoting) — стандартном алгоритме, который использует numpy под капотом, — каждая перестановка строк отслеживается именно для того, чтобы в конце скорректировать знак итогового определителя.


Свойство 5: определитель треугольной матрицы

А теперь — самое приятное свойство. Если матрица треугольная (все элементы строго выше или строго ниже главной диагонали равны нулю), её определитель находится мгновенно, без всякого разложения по минорам.

Представь параллелепипед, у которого векторы-рёбра выстроены "лесенкой": первый вектор лежит строго вдоль первой оси, второй — в плоскости первых двух осей, третий — в объёме первых трёх осей, и так далее. Такая "лесенка" — это ровно геометрический смысл треугольной матрицы. Её объём считается совсем просто: это произведение длин "высот" каждой ступеньки, а высоты — это и есть диагональные элементы.

Определение: Если $A$ — верхняя или нижняя треугольная матрица размера $n \times n$ с диагональными элементами $a_{11}, a_{22}, \ldots, a_{nn}$, то:

$$\det(A) = a_{11} \cdot a_{22} \cdot \ldots \cdot a_{nn}$$

Пример 1 (лёгкий)

$$A = \begin{pmatrix} 3 & 7 \\ 0 & 5 \end{pmatrix}$$

Прямой подсчёт: $\det(A) = 3\cdot5 - 7\cdot0 = 15$. По правилу треугольной матрицы: $3\cdot5 = 15 \,\checkmark$

Пример 2 (средний)

$$A = \begin{pmatrix} 2 & 1 & 4 \\ 0 & -3 & 5 \\ 0 & 0 & 6 \end{pmatrix}$$

Раскладываем по первому столбцу (там всего один ненулевой элемент):

$$\det(A) = 2 \cdot \det\begin{pmatrix} -3 & 5 \\ 0 & 6 \end{pmatrix} = 2 \cdot (-18) = -36$$

По правилу: $2 \cdot (-3) \cdot 6 = -36 \,\checkmark$

Пример 3 (сложный)

Нижняя треугольная матрица с более "грязными" числами:

$$A = \begin{pmatrix} 4 & 0 & 0 \\ 7 & -2 & 0 \\ 1 & 5 & 3 \end{pmatrix}$$

Раскладываем по первой строке (тоже один ненулевой элемент):

$$\det(A) = 4 \cdot \det\begin{pmatrix} -2 & 0 \\ 5 & 3 \end{pmatrix} = 4 \cdot (-6) = -24$$

По правилу: $4 \cdot (-2) \cdot 3 = -24 \,\checkmark$

Почему это важно: это свойство — сердце LU-разложения, стандартного способа вычисления определителей больших матриц на практике. Любую невырожденную матрицу можно представить как произведение нижней треугольной $L$ (с единицами на диагонали) и верхней треугольной $U$: $A = LU$. Тогда $\det(A) = \det(L)\det(U) = 1 \cdot \det(U) = $ произведение диагонали $U$. Вместо $O(n!)$ операций разложения по минорам ты получаешь $O(n^3)$ операций элиминации — именно так numpy.linalg.det считает определитель матрицы $1000\times1000$ за доли секунды.


Свойство 6: элементарные преобразования и определитель

Мы уже разобрали, что перестановка строк (элементарное преобразование I типа) меняет знак определителя. Осталось разобрать два других типа элементарных преобразований — и вместе они дают главный "лайфхак" этого урока: способ вычислять огромные определители руками.

  • Тип I — перестановка двух строк: меняет знак определителя (свойство 4).

  • Тип II — умножение строки на число $k \neq 0$: умножает определитель на $k$. Это прямое следствие линейности определителя по каждой строке отдельно (частный случай свойства 3, применённый только к одной строке, а не ко всей матрице).

  • Тип III — прибавление к одной строке другой строки, умноженной на число: определитель не меняется. Это самое неочевидное правило, и именно оно самое полезное.

Определение: Пусть $B$ получена из $A$ прибавлением к строке $i$ строки $j$ ($i \neq j$), умноженной на число $c$. Тогда:

$$\det(B) = \det(A)$$

Пример 1 (лёгкий) — тип II

$$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad \det(A) = -2$$

Умножим первую строку на $5$:

$$B = \begin{pmatrix} 5 & 10 \\ 3 & 4 \end{pmatrix}, \quad \det(B) = 5\cdot4 - 10\cdot3 = -10 = 5\cdot(-2) \,\checkmark$$

Пример 2 (средний) — тип III

$$A = \begin{pmatrix} 2 & 1 \\ 1 & 3 \end{pmatrix}, \quad \det(A) = 2\cdot3-1\cdot1 = 5$$

Прибавим к второй строке первую, умноженную на $2$: новая вторая строка $= (1+2\cdot2,\; 3+2\cdot1) = (5,5)$:

$$B = \begin{pmatrix} 2 & 1 \\ 5 & 5 \end{pmatrix}, \quad \det(B) = 2\cdot5-1\cdot5 = 5 \,\checkmark$$

Определитель не изменился, хотя матрица стала совсем другой.

Пример 3 (сложный) — приведение к треугольному виду

Вот где всё соединяется в один инструмент. Возьмём:

$$A = \begin{pmatrix} 2 & 1 & 1 \\ 4 & 3 & 3 \\ 8 & 7 & 9 \end{pmatrix}$$

Вместо разложения по минорам используем только преобразования типа III (они не меняют определитель):

Шаг 1: $R_2 \to R_2 - 2R_1$: новая строка 2 $= (4-4,\, 3-2,\, 3-2) = (0,1,1)$

Шаг 2: $R_3 \to R_3 - 4R_1$: новая строка 3 $= (8-8,\, 7-4,\, 9-4) = (0,3,5)$

$$\begin{pmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 3 & 5 \end{pmatrix}$$

Шаг 3: $R_3 \to R_3 - 3R_2$: новая строка 3 $= (0,\, 3-3,\, 5-3) = (0,0,2)$

$$\begin{pmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 2 \end{pmatrix}$$

Матрица стала треугольной! По свойству 5: $\det(A) = 2 \cdot 1 \cdot 2 = 4$.

Проверим прямым разложением исходной матрицы по первой строке:

$$\det(A) = 2(3\cdot9-3\cdot7) - 1(4\cdot9-3\cdot8) + 1(4\cdot7-3\cdot8) = 2\cdot6 - 12 + 4 = 12-12+4 = 4 \,\checkmark$$

Почему это важно: это ровно тот алгоритм, который используют все численные библиотеки (NumPy, SciPy, PyTorch) для вычисления определителей на практике. Ручное разложение по минорам имеет сложность $O(n!)$ — для матрицы $20\times20$ это больше $10^{18}$ операций, невозможно даже на суперкомпьютере. Элиминация до треугольного вида имеет сложность $O(n^3)$ — для той же матрицы это всего 8000 операций. Разница не в разы, а в порядки величин.


Практика: 30 заданий

Базовые (задания 1–10)

Задание 1: Известно, что $\det(A) = 5$ для матрицы $2\times2$. Найди $\det(3A)$.


Задание 2: Даны $\det(A) = -4$ и $\det(B) = 6$ (матрицы одного размера). Найди $\det(AB)$.


Задание 3: Известно, что $\det(A) = 7$ для некоторой квадратной матрицы. Найди $\det(A^T)$.


Задание 4: Матрица $A$ размера $3\times3$ имеет $\det(A) = 9$. Если поменять местами первую и вторую строки, получится матрица $B$. Найди $\det(B)$.


Задание 5: Вычисли определитель матрицы:

$$A = \begin{pmatrix} 5 & 3 & 0 \\ 0 & -2 & 7 \\ 0 & 0 & 4 \end{pmatrix}$$

Задание 6: Вычисли определитель матрицы:

$$A = \begin{pmatrix} 3 & 0 & 0 \\ 6 & -1 & 0 \\ 2 & 4 & 5 \end{pmatrix}$$

Задание 7: Определитель матрицы $A$ размера $3\times3$ равен $2$. Вторую строку умножили на $4$ (остальные строки не трогали). Найди новый определитель.


Задание 8: Определитель матрицы $A$ равен $-3$. К первой строке прибавили вторую строку, умноженную на $5$. Найди новый определитель.


Задание 9 (ML): Первый слой нейросети задаётся матрицей с $\det = 0.5$, второй слой — матрицей с $\det = 2$ (обе матрицы одного размера). Найди определитель итогового линейного преобразования (композиции слоёв).


Задание 10: Вычисли определитель матрицы, у которой первая строка пропорциональна второй:

$$A = \begin{pmatrix} 2 & 4 & 6 \\ 1 & 2 & 3 \\ 5 & 1 & 0 \end{pmatrix}$$

Средние (задания 11–20)

Задание 11: Даны $A = \begin{pmatrix} 2 & 1 \\ 0 & 3 \end{pmatrix}$ и $B = \begin{pmatrix} 1 & 4 \\ 2 & 0 \end{pmatrix}$. Проверь свойство $\det(AB) = \det(A)\det(B)$, вычислив обе части.


Задание 12: Для матрицы

$$A = \begin{pmatrix} 2 & 0 & 1 \\ 1 & 3 & 0 \\ 4 & 1 & 2 \end{pmatrix}$$

вычисли $\det(A)$ и $\det(A^T)$ независимо и убедись, что они совпадают.


Задание 13 (ML): Матрица весов $A = \begin{pmatrix} 1 & 2 & 0 \\ 3 & 1 & 4 \\ 0 & 2 & 1 \end{pmatrix}$ описывает линейное преобразование признаков. Не пересчитывая определитель заново, укажи $\det(A^T)$, зная, что $\det(A)$ нужно сначала вычислить.


Задание 14: Определитель матрицы $A$ размера $3\times3$ равен $4$. Найди $\det(2A)$.


Задание 15: Определитель матрицы $A$ размера $5\times5$ равен $-2$. Найди $\det(-A)$.


Задание 16: Определитель матрицы $A$ размера $3\times3$ равен $6$. Если поменять местами второй и третий столбцы, получится матрица $B$. Найди $\det(B)$.


Задание 17: Приведи матрицу

$$A = \begin{pmatrix} 1 & 2 & 1 \\ 2 & 3 & 4 \\ 1 & 0 & 2 \end{pmatrix}$$

к треугольному виду с помощью элементарных преобразований типа III и найди определитель через произведение диагонали.


Задание 18 (ML — нормализующие потоки): Модель состоит из 5 одинаковых по масштабу линейных слоёв, каждый с определителем Якобиана $0.8$. Найди определитель полной композиции (общий коэффициент изменения объёма плотности вероятности).


Задание 19: Вычисли определитель матрицы с нулевой строкой:

$$A = \begin{pmatrix} 3 & 5 & 2 \\ 0 & 0 & 0 \\ 1 & 4 & 7 \end{pmatrix}$$

Задание 20: Дана матрица $A$ размера $3\times3$ с $\det(A) = -5$. Найди $\det(B)$, если $B = 2A^T$.


Продвинутые (задания 21–30)

Задание 21: Для матрицы $A = \begin{pmatrix} 1 & 2 \\ 3 & -1 \end{pmatrix}$ вычисли $\det(A)$ и $\det(A^TA)$ и убедись, что $\det(A^TA) = \det(A)^2 \geq 0$.


Задание 22 (матрица Вандермонда): Вычисли определитель матрицы Вандермонда для $a=1$, $b=2$, $c=3$:

$$V = \begin{pmatrix} 1 & 1 & 1 \\ 1 & 2 & 3 \\ 1 & 4 & 9 \end{pmatrix}$$

и сравни с формулой $(b-a)(c-a)(c-b)$.


Задание 23 (ML — проверка обратимости слоя): Слой нормализующего потока задан матрицей

$$W = \begin{pmatrix} 0.5 & 0.2 & 0 \\ 0 & 0.5 & 0.3 \\ 0.1 & 0 & 0.5 \end{pmatrix}$$

Вычисли $\det(W)$ и определи, обратим ли слой (валиден ли для потока).


Задание 24 (ML — цепочка слоёв): Сеть из трёх линейных слоёв $2\times2$ имеет $\det(W_1)=0.9$, $\det(W_2)=1.2$, $\det(W_3)=0.7$. Найди определитель композиции $W_3 W_2 W_1$.


Задание 25: Диагональная матрица $A = \mathrm{diag}(1,2,-1,3)$ размера $4\times4$. Найди $\det(A)$ и $\det(-3A)$.


Задание 26: Матрица перестановки $P$ получена из единичной матрицы $I_3$ перестановкой первой и второй строк:

$$P = \begin{pmatrix} 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix}$$

Вычисли $\det(P)$ напрямую и объясни результат через свойство перестановки строк.


Задание 27 (лайфхак на практике): Вычисли определитель матрицы $4\times4$ с помощью элементарных преобразований (без разложения по минорам):

$$A = \begin{pmatrix} 1 & 2 & 0 & 1 \\ 2 & 5 & 1 & 3 \\ 0 & 1 & 3 & 2 \\ 1 & 3 & 2 & 5 \end{pmatrix}$$

Задание 28 (ML — регрессия): Матрица наблюдений $X = \begin{pmatrix} 1 & 2 \\ 1 & 3 \\ 1 & 5 \end{pmatrix}$ (столбец единиц для intercept плюс один признак, 3 наблюдения). Вычисли $\det(X^TX)$, чтобы проверить, разрешима ли система нормальных уравнений линейной регрессии.


Задание 29: Кососимметричная матрица нечётного порядка ($A^T = -A$, $n=3$):

$$A = \begin{pmatrix} 0 & 2 & -1 \\ -2 & 0 & 3 \\ 1 & -3 & 0 \end{pmatrix}$$

Докажи, что $\det(A) = 0$, используя свойства определителя, а затем проверь вычислением напрямую.


Задание 30 (капстоун — все свойства сразу): Начни с единичной матрицы $I_3$. Примени по очереди: (а) умножь всю матрицу на $k=2$; (б) поменяй местами первую и вторую строки; (в) прибавь к третьей строке первую, умноженную на $3$. Найди итоговый определитель, а затем выпиши финальную матрицу явно и проверь результат прямым вычислением.


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

Ошибка 1: думать, что $\det(A+B) = \det(A) + \det(B)$ Это неверно почти всегда. Определитель линеен только по одной строке при фиксированных остальных, а не по всей матрице целиком. Например, для $A=\begin{pmatrix}1&0\\0&1\end{pmatrix}$ и $B=\begin{pmatrix}1&0\\0&-1\end{pmatrix}$: $\det(A)+\det(B) = 1+(-1) = 0$, но $A+B=\begin{pmatrix}2&0\\0&0\end{pmatrix}$ и $\det(A+B) = 0$ — совпало случайно; в общем случае равенства нет.

Ошибка 2: путать $\det(kA) = k\det(A)$ и правильную формулу $\det(kA) = k^n\det(A)$ Забывают, что константа выносится из каждой строки отдельно, поэтому набегает степень $n$. Особенно опасно для больших $n$: для матрицы $10\times10$ разница между $k$ и $k^{10}$ огромна.

Ошибка 3: терять счёт перестановкам строк при ручной элиминации Если во время приведения матрицы к треугольному виду пришлось несколько раз переставлять строки (например, чтобы избежать нуля на диагонали), каждая перестановка меняет знак. Забыл посчитать чётность числа перестановок — получил определитель с неверным знаком.

Ошибка 4: считать, что $\det(AB) = \det(BA)$ означает $AB = BA$ Определители произведений действительно равны (это следует из коммутативности умножения чисел $\det(A)\det(B) = \det(B)\det(A)$), но сами матрицы $AB$ и $BA$ в общем случае разные. Равенство чисел не означает равенства матриц.

Ошибка 5: думать, что $\det(A) = 0$ означает $A$ — нулевая матрица $\det(A) = 0$ означает лишь, что строки (или столбцы) линейно зависимы — матрица вырождена, необратима. Сама матрица при этом может быть заполнена сколь угодно большими ненулевыми числами.

Ошибка 6: в ML-контексте суммировать вместо перемножения определителей Якобианов В формуле изменения плотности вероятности при композиции преобразований (нормализующие потоки) определители Якобианов перемножаются, а вот их логарифмы — складываются. Путаница между "перемножить определители" и "сложить логарифмы определителей" — частая причина ошибок в реализации change-of-variables формулы.


Главное запомнить

📝 Шесть ключевых свойств

Умножение: $\det(AB) = \det(A)\cdot\det(B)$ — определитель произведения равен произведению определителей

Транспонирование: $\det(A^T) = \det(A)$ — строки и столбцы полностью равноправны

Скаляр: $\det(kA) = k^n\det(A)$ для матрицы $n\times n$ — не забывай про степень $n$!

Перестановка строк/столбцов: меняет знак определителя, не меняя абсолютную величину

Треугольная матрица: определитель = произведение диагональных элементов, без всяких вычислений

Элементарные преобразования: тип I (перестановка) меняет знак, тип II (умножение строки) умножает на коэффициент, тип III (прибавление кратной строки) не меняет определитель вообще

Гарантия неотрицательности: $\det(A^TA) = \det(A)^2 \geq 0$ — матрицы Грама и ковариационные матрицы всегда имеют неотрицательный определитель

Практический алгоритм: любую матрицу можно привести к треугольному виду элементарными преобразованиями и получить определитель за $O(n^3)$ вместо $O(n!)$

Кососимметричные матрицы нечётного порядка всегда вырождены — прямое следствие свойств транспонирования и знака скаляра

В ML: цепочка линейных слоёв — это произведение матриц, и определитель этой цепочки — произведение определителей отдельных слоёв (ключевая идея нормализующих потоков)


Связь с другими темами курса

Что нужно было знать до этого урока:

  • Определители $2\times2$ и $3\times3$ (урок 158) — базовые формулы вычисления
  • Операции над матрицами (урок 157) — умножение, транспонирование
  • Понятие квадратной матрицы

Что изучить дальше:

  • Миноры и алгебраические дополнения (урок 160) — обобщённое разложение определителя для матриц любого размера
  • Обратная матрица (урок 161) — матрица обратима тогда и только тогда, когда $\det(A) \neq 0$
  • Ранг матрицы (урок 162) — определитель миноров разного порядка выявляет ранг
  • Правило Крамера (урок 165) — решение систем линейных уравнений через отношения определителей
  • Собственные значения (позже в курсе) — находятся из уравнения $\det(A-\lambda E) = 0$, где напрямую используются все свойства этого урока

Где это применяется на практике:

  • 🤖 Нормализующие потоки и generative models — произведение определителей Якобианов слоёв
  • 📊 Ковариационные матрицы и PCA — определитель ковариационной матрицы входит в формулу дифференциальной энтропии гауссовского распределения
  • 🧮 Линейная регрессия — обратимость $X^TX$ (через ненулевой определитель) гарантирует единственность решения нормальных уравнений
  • Численные методы — LU-разложение и элементарные преобразования — стандартный способ вычисления определителей в любой библиотеке линейной алгебры

Интересные факты

💡 Определители старше матриц. Само понятие "матрица" как самостоятельный объект появилось только в середине XIX века (Артур Кэли, 1858), а определители уже использовались за полтора столетия до этого — сначала как побочный инструмент для решения систем уравнений.

💡 Формула энтропии гауссиана. Дифференциальная энтропия многомерного нормального распределения вычисляется как $H = \frac{1}{2}\ln\left((2\pi e)^n \det(\Sigma)\right)$, где $\Sigma$ — ковариационная матрица. Определитель напрямую измеряет "неопределённость" распределения — чем больше объём эллипсоида разброса данных, тем больше энтропия.

💡 Замена переменных в интегралах. Формула замены переменных в многомерном интеграле содержит множитель $|\det(J)|$, где $J$ — матрица Якоби преобразования. Это прямое обобщение геометрического смысла определителя как коэффициента изменения объёма — и именно эта формула лежит в основе нормализующих потоков в генеративном ИИ.

💡 Матрица Вандермонда в кодах коррекции ошибок. Определитель матрицы Вандермонда равен нулю только при совпадении узлов интерполяции. На этом факте построены коды Рида — Соломона, которые до сих пор используются в QR-кодах, DVD-дисках и передаче данных с зонда в дальнем космосе — они гарантируют восстановление данных даже при потере части пакетов.

💡 Сэки Такакадзу опередил Европу. Японский математик Сэки Такакадзу разработал методы, эквивалентные определителям, ещё в 1683 году — на десять лет раньше Лейбница, но его работы оставались неизвестными на Западе более века.


Лайфхаки и полезные трюки

1. Главный трюк: элиминация вместо разложения по минорам Для матриц размера $4\times4$ и больше никогда не раскладывай определитель по минорам вручную. Приведи матрицу к треугольному виду через элементарные преобразования (как в задании 27) и перемножь диагональ. Сложность падает с $O(n!)$ до $O(n^3)$.

2. Нулевая строка или столбец — мгновенный ответ Если видишь строку или столбец из одних нулей — не считай ничего, определитель сразу равен $0$.

3. Пропорциональные строки — тоже мгновенный ноль Если одна строка — это скалярное кратное другой (или сумма кратных других строк), определитель равен нулю без вычислений — строки линейно зависимы.

4. Блочно-треугольные матрицы считаются по блокам Если матрица имеет блочно-треугольную структуру

$$\begin{pmatrix} A & B \\ 0 & D \end{pmatrix}$$

где $A$ и $D$ — квадратные блоки, то $\det = \det(A)\cdot\det(D)$ — блок $B$ вообще не участвует. Это огромная экономия для разреженных структур вроде графовых лапласианов.

5. В коде — не вычисляй определитель вручную большими циклами Библиотечные функции (numpy.linalg.det, scipy.linalg.det) уже используют LU-разложение — тот же принцип элементарных преобразований, но оптимизированный и численно устойчивый.

6. Для очень больших или маленьких определителей используй логарифм При работе с многомерными гауссовскими правдоподобиями определитель ковариационной матрицы может быть астрономически большим или крошечным числом, вызывая переполнение. Используй numpy.linalg.slogdet, которая возвращает знак и логарифм модуля определителя отдельно — это стандартная практика при работе с likelihood высокоразмерных моделей.

7. Проверяй произведение матриц через произведение определителей Если нужно только проверить $\det(AB)$, а не саму матрицу $AB$, не перемножай матрицы целиком — вычисли $\det(A)$ и $\det(B)$ по отдельности и перемножь числа. Это на порядок меньше арифметики.


Свойства определителя — это не просто список формул для запоминания. Это грамматика, на которой говорит вся линейная алгебра: обратимость матриц, ранг, собственные значения, устойчивость нейросетей, корректность ковариационных матриц — за каждым из этих понятий стоит одно из шести правил, которые ты только что разобрал руками. А теперь попробуй сам: возьми любую матрицу $4\times4$ или $5\times5$, которая попадётся тебе в следующих темах курса, и посчитай её определитель через элементарные преобразования — без единого разложения по минорам. Именно так это делают настоящие вычислительные библиотеки.

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!