Смешанное произведение векторов 📦
Представь: ты обучаешь нейросеть распознавать объекты в 3D-пространстве. У тебя есть три вектора — рёбра некоего объёма данных. Вопрос: а какой, собственно, объём они образуют? И второй вопрос (куда интереснее): а лежат ли эти три вектора вообще в одной плоскости, или они реально задают трёхмерное пространство?
Именно на эти вопросы отвечает смешанное произведение — одна из самых мощных операций линейной алгебры, которая комбинирует векторное и скалярное произведение в одно элегантное вычисление.
В этом уроке ты узнаешь:
🎯 Что такое смешанное произведение и почему оно “смешанное”
🎯 Как его вычислять тремя разными способами (от простого к универсальному)
🎯 Зачем оно нужно в ML, компьютерной графике и физике
🎯 Как проверять линейную независимость векторов за секунду
🎯 Геометрический смысл: объёмы, ориентация, коллинеарность
Почему это важно для ML/AI? - В трансформерах работаем с многомерными пространствами — смешанное произведение обобщается на n измерений через определители - Feature engineering: проверка независимости признаков - 3D computer vision: вычисление объёмов, проверка ориентации - Оптимизация: градиентный спуск в многомерных пространствах - PCA и SVD: в основе лежит геометрия определителей
Погнали разбираться! 🚀
Что такое смешанное произведение простыми словами
Интуиция через аналогию
Представь, что у тебя есть три стержня (векторы) в пространстве:
- 🔴 Красный стержень $\vec{a}$
- 🔵 Синий стержень $\vec{b}$
- 🟢 Зелёный стержень $\vec{c}$
Вопрос: Если взять эти три стержня как рёбра, какой объём параллелепипеда они образуют?
c
↗
/
/
/____→ b
/ /
↗ /
a /
Вот именно этот объём и есть смешанное произведение!
Но есть нюанс: если стержни лежат в одной плоскости (как три палочки на столе), объём будет ноль — потому что параллелепипед вырожденный, “сплющенный”.
В ML это означает: - Если три фичи (признака) линейно зависимы → смешанное произведение = 0 - Если независимы → смешанное произведение ≠ 0 - Абсолютная величина смешанного произведения = насколько “независимы” эти направления
Строгое определение
Определение: Смешанное произведение трёх векторов $\vec{a}$, $\vec{b}$, $\vec{c}$ — это скалярное произведение вектора $\vec{a}$ на векторное произведение векторов $\vec{b}$ и $\vec{c}$.
Обозначения: - $(\vec{a}, \vec{b}, \vec{c})$ — классическое обозначение - $\vec{a} \cdot (\vec{b} \times \vec{c})$ — через операции произведений - $[\vec{a}, \vec{b}, \vec{c}]$ — альтернативное обозначение
Важно: Результат — это число (скаляр), а не вектор!
Почему “смешанное”?
Потому что мы смешиваем две операции:
1. Сначала векторное произведение: $\vec{b} \times \vec{c}$ → получаем вектор
2. Потом скалярное произведение: $\vec{a} \cdot (\text{этот вектор})$ → получаем число
Три способа вычисления
Способ 1: Через скалярное и векторное произведение (базовый)
Алгоритм: 1. Вычисли векторное произведение $\vec{b} \times \vec{c}$ 2. Вычисли скалярное произведение $\vec{a} \cdot (\vec{b} \times \vec{c})$
Формула: $$ (\vec{a}, \vec{b}, \vec{c}) = \vec{a} \cdot (\vec{b} \times \vec{c}) $$
Пример 1 (простой):
Даны векторы: - $\vec{a} = (2, 0, 0)$ - $\vec{b} = (0, 3, 0)$ - $\vec{c} = (0, 0, 4)$
Найти смешанное произведение.
Решение:
Шаг 1: Вычисляем $\vec{b} \times \vec{c}$
| i j k |
b×c = | 0 3 0 |
| 0 0 4 |
= i(3·4 - 0·0) - j(0·4 - 0·0) + k(0·0 - 3·0)
= i(12) - j(0) + k(0)
= (12, 0, 0)
Шаг 2: Вычисляем $\vec{a} \cdot (12, 0, 0)$
a · (b×c) = (2, 0, 0) · (12, 0, 0)
= 2·12 + 0·0 + 0·0
= 24
Ответ: $(\vec{a}, \vec{b}, \vec{c}) = 24$
Геометрический смысл: Это объём параллелепипеда с рёбрами вдоль осей X (длина 2), Y (длина 3), Z (длина 4). Действительно: $2 \times 3 \times 4 = 24$ ✅
Пример 2 (средний):
Векторы в общем положении: - $\vec{a} = (1, 2, 3)$ - $\vec{b} = (4, 5, 6)$ - $\vec{c} = (7, 8, 9)$
Решение:
Шаг 1: Векторное произведение $\vec{b} \times \vec{c}$
| i j k |
b×c = | 4 5 6 |
| 7 8 9 |
i-компонента: 5·9 - 6·8 = 45 - 48 = -3
j-компонента: -(4·9 - 6·7) = -(36 - 42) = -(-6) = 6
k-компонента: 4·8 - 5·7 = 32 - 35 = -3
b×c = (-3, 6, -3)
Шаг 2: Скалярное произведение $\vec{a} \cdot (-3, 6, -3)$
(1, 2, 3) · (-3, 6, -3) = 1·(-3) + 2·6 + 3·(-3)
= -3 + 12 - 9
= 0
Ответ: $(\vec{a}, \vec{b}, \vec{c}) = 0$
Что это значит? Объём = 0 → векторы компланарны (лежат в одной плоскости)!
Проверим: заметь, что $\vec{c} = \vec{a} + \vec{b}$ почти (на самом деле, $\vec{c}$ близок к линейной комбинации $\vec{a}$ и $\vec{b}$). Точнее: $(7,8,9) = (1,2,3) + (4,5,6) + (2,1,0)$… хм, не совсем. Но главное — они линейно зависимы! 🔍
Способ 2: Через определитель (самый быстрый)
Если векторы заданы координатами: - $\vec{a} = (a_1, a_2, a_3)$ - $\vec{b} = (b_1, b_2, b_3)$ - $\vec{c} = (c_1, c_2, c_3)$
То смешанное произведение равно определителю матрицы $3 \times 3$, строки которой — координаты векторов:
$$
(\vec{a}, \vec{b}, \vec{c}) = \begin{vmatrix}
a_1 & a_2 & a_3
b_1 & b_2 & b_3
c_1 & c_2 & c_3
\end{vmatrix}
$$
Почему это работает?
Формула определителя — это ровно то же самое вычисление, что и через векторное → скалярное произведение. Просто короче записывается!
Пример 3 (применение определителя):
Те же векторы из примера 2: - $\vec{a} = (1, 2, 3)$ - $\vec{b} = (4, 5, 6)$ - $\vec{c} = (7, 8, 9)$
Решение:
| 1 2 3 |
det = | 4 5 6 |
| 7 8 9 |
Раскладываем по первой строке:
det = 1·|5 6| - 2·|4 6| + 3·|4 5|
|8 9| |7 9| |7 8|
= 1·(5·9 - 6·8) - 2·(4·9 - 6·7) + 3·(4·8 - 5·7)
= 1·(45 - 48) - 2·(36 - 42) + 3·(32 - 35)
= 1·(-3) - 2·(-6) + 3·(-3)
= -3 + 12 - 9
= 0
Ответ: $(\vec{a}, \vec{b}, \vec{c}) = 0$ ✅ (подтвердили результат!)
Пример 4 (практический — проверка базиса):
У тебя есть три вектора для feature engineering: - $\vec{f_1} = (1, 0, 0)$ — первый признак - $\vec{f_2} = (1, 1, 0)$ — второй признак - $\vec{f_3} = (1, 1, 1)$ — третий признак
Вопрос: Образуют ли они базис (линейно независимы)?
Решение:
| 1 0 0 |
det = | 1 1 0 |
| 1 1 1 |
Раскладываем по первой строке (много нулей — упрощается!):
det = 1·|1 0| - 0·|1 0| + 0·|1 1|
|1 1| |1 1| |1 1|
= 1·(1·1 - 0·1)
= 1·1
= 1
Ответ: $(\vec{f_1}, \vec{f_2}, \vec{f_3}) = 1 \neq 0$ → линейно независимы! ✅
Эти три вектора образуют базис пространства $\mathbb{R}^3$. Объём параллелепипеда = 1 (единичный куб, чуть повёрнутый).
Способ 3: Правило Саррюса (для быстрого подсчёта)
Визуальный метод для вычисления определителя $3 \times 3$ без раскладки:
a₁ a₂ a₃ | a₁ a₂
b₁ b₂ b₃ | b₁ b₂
c₁ c₂ c₃ | c₁ c₂
↘ ↘ ↘ ↙ ↙ ↙
(+)(+)(+) (−)(−)(−)
Формула: $$ \det = (a_1 b_2 c_3 + a_2 b_3 c_1 + a_3 b_1 c_2) - (a_3 b_2 c_1 + a_1 b_3 c_2 + a_2 b_1 c_3) $$
Пример 5 (быстрое вычисление):
Векторы: - $\vec{a} = (2, 1, 3)$ - $\vec{b} = (1, -1, 0)$ - $\vec{c} = (4, 2, 1)$
Решение:
Выписываем матрицу и дублируем первые два столбца:
2 1 3 | 2 1
1 -1 0 | 1 -1
4 2 1 | 4 2
↘ ↘ ↘ ↙ ↙ ↙
Диагонали вниз (плюс):
2·(-1)·1 = -2
1·0·4 = 0
3·1·2 = 6
Сумма: -2 + 0 + 6 = 4
Диагонали вверх (минус):
3·(-1)·4 = -12
2·0·2 = 0
1·1·1 = 1
Сумма: -12 + 0 + 1 = -11
Итоговый определитель:
det = 4 - (-11) = 4 + 11 = 15
Ответ: $(\vec{a}, \vec{b}, \vec{c}) = 15$
Геометрический смысл: Объём параллелепипеда с данными рёбрами = 15 кубических единиц.
Свойства смешанного произведения
Свойство 1: Перестановка векторов
Круговая перестановка не меняет значение: $$ (\vec{a}, \vec{b}, \vec{c}) = (\vec{b}, \vec{c}, \vec{a}) = (\vec{c}, \vec{a}, \vec{b}) $$
Транспозиция меняет знак: $$ (\vec{a}, \vec{b}, \vec{c}) = -(\vec{b}, \vec{a}, \vec{c}) $$
Почему?
Круговая перестановка — это циклический сдвиг строк в определителе (знак не меняется).
Транспозиция — это перестановка двух строк (знак меняется на противоположный).
Пример 6:
Проверим на векторах $(1,0,0)$, $(0,1,0)$, $(0,0,1)$:
Базовая:
(a,b,c) = |1 0 0| = 1
|0 1 0|
|0 0 1|
Круговая перестановка:
(b,c,a) = |0 1 0| = 1 ✅
|0 0 1|
|1 0 0|
Транспозиция:
(b,a,c) = |0 1 0| = -1 ✅
|1 0 0|
|0 0 1|
Свойство 2: Линейность по каждому аргументу
$$ (\alpha \vec{a}, \vec{b}, \vec{c}) = \alpha (\vec{a}, \vec{b}, \vec{c}) $$
$$ (\vec{a_1} + \vec{a_2}, \vec{b}, \vec{c}) = (\vec{a_1}, \vec{b}, \vec{c}) + (\vec{a_2}, \vec{b}, \vec{c}) $$
То же для $\vec{b}$ и $\vec{c}$.
Применение в ML:
Если масштабируешь признаки (feature scaling), смешанное произведение масштабируется пропорционально!
Пример 7:
Векторы: $\vec{a} = (2, 0, 0)$, $\vec{b} = (0, 3, 0)$, $\vec{c} = (0, 0, 4)$
Мы знаем: $(\vec{a}, \vec{b}, \vec{c}) = 24$
Удвоим первый вектор: $\vec{a’} = 2\vec{a} = (4, 0, 0)$
(a', b, c) = |4 0 0| = 4·|3 0| = 4·12 = 48
|0 3 0| |0 4|
|0 0 4|
Проверка: $48 = 2 \times 24$ ✅ (удвоили вектор → удвоили объём)
Свойство 3: Геометрический смысл модуля
$$ |(\vec{a}, \vec{b}, \vec{c})| = V_{\text{параллелепипед}} $$
Знак определяет ориентацию: - $(\vec{a}, \vec{b}, \vec{c}) > 0$ → правая тройка векторов - $(\vec{a}, \vec{b}, \vec{c}) < 0$ → левая тройка векторов - $(\vec{a}, \vec{b}, \vec{c}) = 0$ → векторы компланарны (лежат в одной плоскости)
Пример 8 (ориентация):
Стандартный базис:
i = (1,0,0)
j = (0,1,0)
k = (0,0,1)
(i, j, k) = |1 0 0| = 1 > 0 → правая тройка ✅
|0 1 0|
|0 0 1|
Поменяем местами:
(j, i, k) = |0 1 0| = -1 < 0 → левая тройка ✅
|1 0 0|
|0 0 1|
Свойство 4: Компланарность
$$ (\vec{a}, \vec{b}, \vec{c}) = 0 \Leftrightarrow \text{векторы компланарны} $$
Это означает: - Либо один из векторов — нулевой - Либо два вектора коллинеарны - Либо все три лежат в одной плоскости (линейно зависимы)
Применение в ML:
Проверка мультиколлинеарности признаков! Если три фичи дают смешанное произведение = 0, одна из них избыточна.
Пример 9 (ML-кейс: проверка независимости фич):
Три признака модели: - $f_1 = (1, 2, 3)$ — доход пользователя (нормализованный) - $f_2 = (2, 4, 6)$ — траты пользователя - $f_3 = (0, 1, 0)$ — возраст
Вычисляем смешанное произведение:
|1 2 3|
det = |2 4 6|
|0 1 0|
Раскладываем по третьей строке (упрощается):
det = -0·(...) + 1·|1 3| - 0·(...)
|2 6|
= 1·(1·6 - 3·2)
= 1·(6 - 6)
= 0
Вывод: Признаки линейно зависимы! Заметь: $f_2 = 2 \cdot f_1$ → второй признак избыточен, можно выкинуть из модели! 🎯
Практические применения
Применение 1: Вычисление объёма параллелепипеда
Задача: Найти объём параллелепипеда, построенного на векторах.
Формула: $$ V = |(\vec{a}, \vec{b}, \vec{c})| $$
Пример 10 (3D-графика):
В игровом движке нужно найти объём комнаты. Стены заданы векторами: - $\vec{AB} = (5, 0, 0)$ метров (длина) - $\vec{AC} = (0, 3, 0)$ метров (ширина) - $\vec{AD} = (0, 0, 2.5)$ метров (высота)
Решение:
|5 0 0 |
V = | |0 3 0 |
| |0 0 2.5|
= 5·|3 0 | = 5·(3·2.5) = 5·7.5 = 37.5
|0 2.5|
Ответ: Объём комнаты = 37.5 м³
Применение 2: Проверка линейной независимости (базис)
Задача: Три вектора образуют базис пространства $\mathbb{R}^3$ тогда и только тогда, когда их смешанное произведение ≠ 0.
Пример 11 (ML: проверка базиса признакового пространства):
Твоя модель использует три embedded фичи: - $e_1 = (0.8, 0.2, 0.1)$ - $e_2 = (0.1, 0.9, 0.3)$ - $e_3 = (0.2, 0.3, 0.8)$
Вопрос: Образуют ли они базис?
Решение:
|0.8 0.2 0.1|
det = |0.1 0.9 0.3|
|0.2 0.3 0.8|
Вычисляем по правилу Саррюса:
Плюс: 0.8·0.9·0.8 + 0.2·0.3·0.2 + 0.1·0.1·0.3
= 0.576 + 0.012 + 0.003 = 0.591
Минус: 0.1·0.9·0.2 + 0.8·0.3·0.3 + 0.2·0.1·0.8
= 0.018 + 0.072 + 0.016 = 0.106
det = 0.591 - 0.106 = 0.485
Ответ: $\det = 0.485 \neq 0$ → базис! ✅ Эти три embeddings независимы и покрывают всё пространство.
Применение 3: Вычисление объёма тетраэдра (пирамиды)
Формула: $$ V_{\text{тетраэдр}} = \frac{1}{6} |(\vec{AB}, \vec{AC}, \vec{AD})| $$
где $A, B, C, D$ — вершины тетраэдра, $\vec{AB}$ — вектор из $A$ в $B$, и т.д.
Пример 12 (3D-моделирование):
Вершины тетраэдра: - $A = (0, 0, 0)$ - $B = (3, 0, 0)$ - $C = (0, 4, 0)$ - $D = (0, 0, 5)$
Решение:
Вычисляем векторы:
AB = B - A = (3, 0, 0)
AC = C - A = (0, 4, 0)
AD = D - A = (0, 0, 5)
Смешанное произведение:
|3 0 0|
det = |0 4 0| = 3·4·5 = 60
|0 0 5|
Объём тетраэдра:
V = (1/6)·|60| = 10
Ответ: Объём = 10 кубических единиц
Применение 4: Расстояние от точки до плоскости
Если плоскость задана тремя точками $B$, $C$, $D$, то расстояние от точки $A$ до этой плоскости:
$$ h = \frac{|(\vec{AB}, \vec{AC}, \vec{AD})|}{|\vec{AC} \times \vec{AD}|} $$
Пример 13 (компьютерное зрение: depth estimation):
Камера в точке $A = (0, 0, 10)$ смотрит на плоскость пола, заданную точками: - $B = (1, 0, 0)$ - $C = (0, 1, 0)$ - $D = (1, 1, 0)$
Найти высоту камеры над полом.
Решение:
Векторы:
AB = (1, 0, -10)
AC = (0, 1, -10)
AD = (1, 1, -10)
Смешанное произведение:
|1 0 -10|
det = |0 1 -10|
|1 1 -10|
= 1·|1 -10| - 0 + (-10)·|0 1|
|1 -10| |1 1|
= 1·(-10 + 10) + (-10)·(0 - 1)
= 0 + 10
= 10
Векторное произведение $\vec{AC} \times \vec{AD}$:
| i j k |
AC×AD = | 0 1 -10|
| 1 1 -10|
= i(1·(-10) - (-10)·1) - j(0·(-10) - (-10)·1) + k(0·1 - 1·1)
= i(0) - j(10) + k(-1)
= (0, -10, -1)
|AC×AD| = √(0² + 100 + 1) = √101 ≈ 10.05
Высота:
h = |10| / 10.05 ≈ 0.995 ≈ 1 метр
Ответ: Камера на высоте примерно 1 метр над полом (точнее: 0.995 м)
Связь с определителями и матрицами
Смешанное произведение как определитель матрицы
Если векторы образуют строки матрицы $A$:
$$
A = \begin{pmatrix}
a_1 & a_2 & a_3
b_1 & b_2 & b_3
c_1 & c_2 & c_3
\end{pmatrix}
$$
То: $$ (\vec{a}, \vec{b}, \vec{c}) = \det(A) $$
Важно для ML: - Проверка обратимости матрицы: $\det(A) \neq 0 \Leftrightarrow$ матрица обратима - Feature correlation matrix: если строки (признаки) линейно зависимы, определитель = 0 - PCA: собственные векторы корреляционной матрицы определяются через определители
Пример 14 (проверка обратимости матрицы):
Матрица трансформации в нейросети:
$$
W = \begin{pmatrix}
1 & 2 & 3
0 & 1 & 4
5 & 6 & 0
\end{pmatrix}
$$
Вопрос: Обратима ли она? (Можно ли восстановить вход из выхода?)
Решение:
Вычисляем определитель:
det(W) = 1·|1 4| - 2·|0 4| + 3·|0 1|
|6 0| |5 0| |5 6|
= 1·(0 - 24) - 2·(0 - 20) + 3·(0 - 5)
= -24 + 40 - 15
= 1
Ответ: $\det(W) = 1 \neq 0$ → матрица обратима! ✅ Можно восстановить вход.
Обобщение на $n$ измерений
В многомерном пространстве $\mathbb{R}^n$ смешанное произведение $n$ векторов — это определитель матрицы $n \times n$:
$$
\det \begin{pmatrix}
\vec{v_1}
\vec{v_2}
\vdots
\vec{v_n}
\end{pmatrix}
$$
ML-применение: - Word embeddings: Проверка независимости векторов слов (обычно 300-512 измерений) - Neural network weights: Проверка деградации градиента через определитель Якобиана - Dimensionality reduction: PCA выбирает направления максимальной дисперсии через SVD (связано с определителями)
Пример 15 (4D-случай):
Четыре вектора в $\mathbb{R}^4$:
v₁ = (1, 0, 0, 0)
v₂ = (0, 2, 0, 0)
v₃ = (0, 0, 3, 0)
v₄ = (0, 0, 0, 4)
Решение:
|1 0 0 0|
det = |0 2 0 0| = 1·2·3·4 = 24
|0 0 3 0|
|0 0 0 4|
Геометрический смысл: Объём 4D-параллелотопа = 24 (обобщение объёма на 4 измерения)
Примеры из ML и AI
Пример 16: Word embeddings и проверка независимости
У тебя есть три слова с embeddings (упрощённо, 3D):
"king" → e₁ = (0.9, 0.1, 0.2)
"queen" → e₂ = (0.8, 0.2, 0.3)
"monarch" → e₃ = (0.85, 0.15, 0.25)
Вопрос: Линейно независимы ли эти embeddings? (Или “monarch” можно выразить через “king” и “queen”?)
Решение:
|0.9 0.1 0.2 |
det = |0.8 0.2 0.3 |
|0.85 0.15 0.25|
Вычисляем:
Плюс: 0.9·0.2·0.25 + 0.1·0.3·0.85 + 0.2·0.8·0.15
= 0.045 + 0.0255 + 0.024 = 0.0945
Минус: 0.2·0.2·0.85 + 0.9·0.3·0.15 + 0.1·0.8·0.25
= 0.034 + 0.0405 + 0.02 = 0.0945
det = 0.0945 - 0.0945 = 0
Ответ: $\det = 0$ → векторы линейно зависимы! Слово “monarch” почти полностью выражается через линейную комбинацию “king” и “queen”. В модели можно использовать только два из трёх. 🧠
Пример 17: PCA и максимизация дисперсии
При PCA мы ищем направления максимальной дисперсии. Это связано с вычислением определителей ковариационной матрицы.
Упрощённо: если три главные компоненты PC1, PC2, PC3 имеют малый определитель, значит одна из них избыточна.
Данные (упрощённо):
PC1 = (0.7, 0.2, 0.1) — первая главная компонента
PC2 = (0.1, 0.8, 0.1) — вторая
PC3 = (0.2, 0.0, 0.8) — третья
Проверяем независимость:
|0.7 0.2 0.1|
det = |0.1 0.8 0.1|
|0.2 0.0 0.8|
Вычисляем:
= 0.7·|0.8 0.1| - 0.2·|0.1 0.1| + 0.1·|0.1 0.8|
|0.0 0.8| |0.2 0.8| |0.2 0.0|
= 0.7·(0.64 - 0) - 0.2·(0.08 - 0.02) + 0.1·(0 - 0.16)
= 0.448 - 0.012 - 0.016
= 0.42
Ответ: $\det = 0.42 \neq 0$ → компоненты независимы, все три стоит оставить. ✅
Пример 18: Градиентный спуск и Якобиан
В обучении нейросети проверяем, не вырождается ли градиент. Для трёх параметров $w_1, w_2, w_3$ вычисляем якобиан:
$$
J = \begin{pmatrix}
\frac{\partial L}{\partial w_1}
\frac{\partial L}{\partial w_2}
\frac{\partial L}{\partial w_3}
\end{pmatrix}
$$
Если определитель близок к нулю → градиенты почти коллинеарны → проблема с обучением!
Пример градиентов:
∂L/∂w₁ = (0.01, 0.02, 0.03)
∂L/∂w₂ = (0.02, 0.04, 0.06)
∂L/∂w₃ = (0.00, 0.01, 0.00)
Решение:
|0.01 0.02 0.03|
det = |0.02 0.04 0.06|
|0.00 0.01 0.00|
Заметь: вторая строка = 2 × первая → $\det = 0$!
Вывод: Градиенты вырожденные (два параметра обновляются одинаково) → нужна регуляризация или изменение архитектуры! ⚠️
Практика: 30 заданий
Базовые (задания 1-10)
Задание 1:
Вычисли смешанное произведение векторов $\vec{a} = (1, 0, 0)$, $\vec{b} = (0, 2, 0)$, $\vec{c} = (0, 0, 3)$.
Задание 2:
Найди смешанное произведение $\vec{a} = (2, 0, 0)$, $\vec{b} = (0, 0, 3)$, $\vec{c} = (0, 5, 0)$.
Задание 3:
Проверь, компланарны ли векторы $\vec{a} = (1, 2, 3)$, $\vec{b} = (2, 4, 6)$, $\vec{c} = (0, 0, 1)$.
Задание 4:
Вычисли объём параллелепипеда с рёбрами $\vec{a} = (3, 0, 0)$, $\vec{b} = (0, 4, 0)$, $\vec{c} = (0, 0, 5)$.
Задание 5:
Найди смешанное произведение $(\vec{i}, \vec{j}, \vec{k})$, где $\vec{i} = (1,0,0)$, $\vec{j} = (0,1,0)$, $\vec{k} = (0,0,1)$.
Задание 6:
Поменяй местами первый и второй векторы из задания 5. Что изменится?
Задание 7:
Вычисли определитель матрицы:
$$
A = \begin{pmatrix}
1 & 1 & 1
1 & 2 & 3
1 & 3 & 6
\end{pmatrix}
$$
Задание 8:
Три вектора: $\vec{a} = (2, 1, 0)$, $\vec{b} = (0, 2, 1)$, $\vec{c} = (1, 0, 2)$. Образуют ли они базис $\mathbb{R}^3$?
Задание 9:
Удвой вектор $\vec{a}$ из задания 8. Как изменится определитель?
Задание 10:
Вычисли смешанное произведение векторов $\vec{a} = (1, 1, 1)$, $\vec{b} = (1, 2, 3)$, $\vec{c} = (1, 3, 6)$.
Средние (задания 11-20)
Задание 11:
Вычисли смешанное произведение $\vec{a} = (3, -1, 2)$, $\vec{b} = (1, 2, -1)$, $\vec{c} = (2, 1, 3)$ через векторное и скалярное произведения.
Задание 12:
Проверь результат задания 11 через определитель.
Задание 13:
Векторы $\vec{a} = (2, 3, 1)$, $\vec{b} = (1, -1, 0)$, $\vec{c} = (4, 1, 2)$. Найди объём параллелепипеда.
Задание 14:
Матрица трансформации:
$$
T = \begin{pmatrix}
2 & 0 & 1
1 & 1 & 0
0 & 1 & 1
\end{pmatrix}
$$
Обратима ли она?
Задание 15:
Три точки: $A(1, 0, 0)$, $B(0, 1, 0)$, $C(0, 0, 1)$, $D(1, 1, 1)$. Найди объём тетраэдра $ABCD$.
Задание 16:
Проверь, лежат ли точки $A(1, 2, 3)$, $B(2, 3, 4)$, $C(3, 4, 5)$, $D(4, 5, 6)$ в одной плоскости.
Задание 17:
Вычисли смешанное произведение через правило Саррюса:
$$ \vec{a} = (1, 2, 3), \quad \vec{b} = (4, 5, 6), \quad \vec{c} = (7, 8, 10) $$
Задание 18:
ML-кейс: три признака модели: $f_1 = (1, 0, 0)$, $f_2 = (0.5, 0.5, 0)$, $f_3 = (0.25, 0.25, 0.5)$. Независимы ли они?
Задание 19:
Word embeddings: $e_1 = (1, 0, 0)$, $e_2 = (1, 1, 0)$, $e_3 = (1, 1, 1)$. Образуют ли они базис?
Задание 20:
Проверь круговую перестановку: вычисли $(\vec{b}, \vec{c}, \vec{a})$ для векторов из задания 11 и сравни с результатом.
Продвинутые (задания 21-30)
Задание 21:
Найди все значения $\lambda$, при которых векторы компланарны:
$$ \vec{a} = (1, 2, 3), \quad \vec{b} = (\lambda, 1, 2), \quad \vec{c} = (2, \lambda, 1) $$
Задание 22:
3D-графика: комната задана векторами $\vec{a} = (4, 0, 0)$, $\vec{b} = (1, 3, 0)$, $\vec{c} = (0, 1, 2.5)$ метров. Найди объём.
Задание 23:
Проверь транспозицию: вычисли $(\vec{b}, \vec{a}, \vec{c})$ для векторов из задания 11 и сравни с $(\vec{a}, \vec{b}, \vec{c}) = 20$.
Задание 24:
ML: матрица весов слоя нейросети:
$$
W = \begin{pmatrix}
0.5 & 0.2 & 0.3
0.1 & 0.6 & 0.3
0.4 & 0.2 & 0.4
\end{pmatrix}
$$
Проверь, обратима ли она (можно ли восстановить вход из выхода).
Задание 25:
Найди объём тетраэдра с вершинами:
$A(0, 0, 0)$, $B(2, 0, 0)$, $C(0, 3, 0)$, $D(0, 0, 4)$.
Задание 26:
Докажи, что если один из векторов — нулевой, то смешанное произведение = 0.
Задание 27:
Вычисли производную смешанного произведения по параметру $t$, если:
$$ \vec{a}(t) = (t, 0, 0), \quad \vec{b}(t) = (0, t^2, 0), \quad \vec{c}(t) = (0, 0, t^3) $$
Задание 28:
ML: три градиента в точке локального минимума:
$$ \nabla_1 = (0.01, 0, 0), \quad \nabla_2 = (0, 0.01, 0), \quad \nabla_3 = (0, 0, 0.01) $$
Вырожденный ли якобиан?
Задание 29:
Найди смешанное произведение векторов:
$$ \vec{a} = (1, 1, 1), \quad \vec{b} = (1, 2, 4), \quad \vec{c} = (1, 3, 9) $$
Подсказка: Заметь закономерность в координатах.
Задание 30:
Обобщение на 4D: найди смешанное произведение (определитель) векторов:
$$ \vec{v_1} = (1, 0, 0, 0), \quad \vec{v_2} = (0, 1, 0, 0), \quad \vec{v_3} = (0, 0, 1, 0), \quad \vec{v_4} = (0, 0, 0, 1) $$
Частые ошибки
❌ Ошибка 1: Путать порядок векторов
Неправильно: Считать, что $(\vec{a}, \vec{b}, \vec{c}) = (\vec{b}, \vec{a}, \vec{c})$
Правильно: Транспозиция меняет знак: $(\vec{a}, \vec{b}, \vec{c}) = -(\vec{b}, \vec{a}, \vec{c})$
Почему важно: В ML при вычислении якобианов и градиентов порядок критичен! Неправильный знак → неправильное направление обновления весов.
❌ Ошибка 2: Считать, что смешанное произведение — вектор
Неправильно: $(\vec{a}, \vec{b}, \vec{c}) = (x, y, z)$ (вектор)
Правильно: $(\vec{a}, \vec{b}, \vec{c}) = k$ (скаляр, число!)
Почему важно: Смешанное произведение — это объём (число), а не направление. В коде возвращаемое значение — float, а не вектор.
❌ Ошибка 3: Забывать модуль при вычислении объёма
Неправильно: Объём = $(\vec{a}, \vec{b}, \vec{c})$ (может быть отрицательным!)
Правильно: Объём = $|(\vec{a}, \vec{b}, \vec{c})|$ (всегда положительный)
Почему важно: Отрицательный результат указывает на ориентацию, но физический объём не может быть отрицательным.
❌ Ошибка 4: Не проверять компланарность через смешанное произведение
Неправильно: Пытаться выяснить линейную зависимость “на глаз” или через систему уравнений
Правильно: Просто вычислить определитель: $\det = 0 \Leftrightarrow$ компланарны
Почему важно: В ML это самый быстрый способ проверить мультиколлинеарность признаков! Один вызов определителя вместо решения системы.
❌ Ошибка 5: Неправильно применять правило Саррюса к матрицам $n \times n$ ($n > 3$)
Неправильно: Применять правило Саррюса к матрице $4 \times 4$ или выше
Правильно: Правило Саррюса работает только для $3 \times 3$! Для больших матриц — раскладка по строке/столбцу или метод Гаусса.
Почему важно: В высокоразмерных пространствах (deep learning) нужны правильные методы вычисления определителей (численные алгоритмы, LU-разложение).
Главное запомнить
📝 Ключевые понятия
✅ Определение: Смешанное произведение $(\vec{a}, \vec{b}, \vec{c}) = \vec{a} \cdot (\vec{b} \times \vec{c})$ — это скаляр, результат двух последовательных операций: векторного и скалярного произведения.
✅ Три способа вычисления:
1. Через векторное → скалярное произведение
2. Через определитель матрицы $3 \times 3$ (быстрее!)
3. Правило Саррюса (визуальный метод для $3 \times 3$)
✅ Геометрический смысл модуля: $|(\vec{a}, \vec{b}, \vec{c})|$ = объём параллелепипеда с рёбрами $\vec{a}$, $\vec{b}$, $\vec{c}$
✅ Знак определяет ориентацию:
- Положительный → правая тройка векторов
- Отрицательный → левая тройка
- Нуль → векторы компланарны (лежат в одной плоскости)
✅ Компланарность: $(\vec{a}, \vec{b}, \vec{c}) = 0 \Leftrightarrow$ векторы линейно зависимы (один выражается через другие)
✅ Свойство круговой перестановки: $(\vec{a}, \vec{b}, \vec{c}) = (\vec{b}, \vec{c}, \vec{a}) = (\vec{c}, \vec{a}, \vec{b})$
✅ Свойство транспозиции: $(\vec{a}, \vec{b}, \vec{c}) = -(\vec{b}, \vec{a}, \vec{c})$ (знак меняется!)
✅ Линейность: Если умножить один вектор на число $k$, смешанное произведение умножится на $k$
✅ Объём тетраэдра: $V = \frac{1}{6}|(\vec{AB}, \vec{AC}, \vec{AD})|$, где $A, B, C, D$ — вершины
✅ Проверка базиса: Три вектора образуют базис $\mathbb{R}^3$ тогда и только тогда, когда их смешанное произведение $\neq 0$
✅ Связь с матрицами: Смешанное произведение = определитель матрицы, строки которой — координаты векторов
✅ Обобщение на $n$ измерений: В пространстве $\mathbb{R}^n$ смешанное произведение $n$ векторов — это определитель матрицы $n \times n$
Связь с другими темами курса
Что нужно было знать до этого урока:
- Векторное произведение — смешанное произведение строится на нём: сначала $\vec{b} \times \vec{c}$, потом скалярное произведение
- Скалярное произведение — вторая часть вычисления: $\vec{a} \cdot (\vec{b} \times \vec{c})$
- Определители матриц — альтернативный (и более быстрый!) способ вычисления смешанного произведения
Что изучить дальше:
- Векторные пространства — обобщение концепции векторов и операций над ними, базис и размерность
- Линейные преобразования — как векторы преобразуются под действием матриц, связь с определителем
- Собственные векторы и значения — ключевая концепция для PCA, SVD и других методов ML
Где это нужно в жизни:
В ML/AI: - 🤖 Feature engineering: Проверка мультиколлинеарности признаков через смешанное произведение (если $\det = 0$ → один признак избыточен) - 🧠 Neural networks: Проверка вырождения градиентов через определитель якобиана - 📊 PCA/SVD: Нахождение главных компонент через собственные векторы (связано с определителями) - 👁️ Computer vision: Вычисление объёмов и ориентации в 3D-пространстве (depth estimation, 3D reconstruction) - 📝 Word embeddings: Проверка линейной независимости векторов слов
В программировании:
- 💻 NumPy/PyTorch: Функции np.linalg.det() и torch.det() для вычисления определителей матриц
- 🎮 3D-графика: Определение видимости граней (backface culling), проверка пересечения лучей с плоскостями
- 🤖 Robotics: Вычисление объёмов рабочей зоны робота, проверка достижимости точек
В Data Science: - 📈 Regression: Проверка обратимости матрицы $X^T X$ в методе наименьших квадратов - 🔬 Feature selection: Удаление коллинеарных признаков для улучшения стабильности модели - 🎯 Optimization: Проверка положительной определённости гессиана (через определитель)
В физике: - 🌊 Механика жидкости: Вычисление объёмов потоков - ⚡ Электродинамика: Смешанное произведение в формулах магнитных полей - 🔧 Механика: Момент силы, момент инерции
В инженерии: - 🏗️ CAD/3D-моделирование: Вычисление объёмов сложных объектов - ✈️ Aerospace: Расчёт объёмов топливных баков, проверка пересечений траекторий - 🔧 Robotics: Анализ кинематики манипуляторов
Интересные факты
💡 Исторический факт: Понятие смешанного произведения появилось в работах Джозайи Уилларда Гиббса (конец XIX века) при формализации векторной алгебры. До этого математики использовали кватернионы Гамильтона, которые были гораздо сложнее в вычислениях!
💡 Связь с ориентацией пространства: Правая и левая тройка векторов — это не просто математическая абстракция. В физике правая тройка соответствует правилу правой руки для магнитного поля, момента силы и т.д. Смешанное произведение помогает проверить, правильно ли мы выбрали систему координат!
💡 Применение в криптографии: Некоторые криптографические алгоритмы (например, lattice-based crypto) используют вычисление определителей решёток в многомерных пространствах. Смешанное произведение — основа для понимания объёмов фундаментальных параллелепипедов этих решёток.
💡 Неожиданная связь с вероятностью: В теории вероятностей определитель ковариационной матрицы многомерного нормального распределения связан с “объёмом” эллипсоида рассеяния точек. Чем больше определитель, тем более “раскиданы” данные в пространстве признаков!
💡 Рекорд вычислений: Самый большой определитель, вычисленный на компьютере, — это матрица размерности свыше миллиона! (Используется в квантовой химии для решения уравнения Шрёдингера для больших молекул.) Обычные методы не работают — применяют специальные численные алгоритмы.
💡 Забавный парадокс: В 2D смешанного произведения не существует! (Нужны минимум три вектора в 3D.) Но есть аналог — псевдоскалярное произведение двух векторов: $\vec{a} \times \vec{b} = a_x b_y - a_y b_x$ (площадь параллелограмма). В ML это используется для вычисления площадей в 2D-графике (например, при визуализации кластеров).
Лайфхаки и полезные трюки
1. Быстрая проверка компланарности “на глаз”
Если один вектор — линейная комбинация других двух (например, $\vec{c} = \vec{a} + \vec{b}$), смешанное произведение автоматически = 0! Не нужно вычислять определитель.
Пример: Векторы $(1,0,0)$, $(0,1,0)$, $(1,1,0)$ компланарны, потому что третий = сумма первых двух.
2. Мнемоника для правила Саррюса
Запоминай как “три плюса вниз, три минуса вверх”: диагонали вниз направо — складываем, диагонали вверх направо — вычитаем. Визуализируй стрелки ↘ ↙.
3. Для матриц с нулями — раскладывай по строке/столбцу с максимумом нулей
Если в строке два нуля, раскладка по ней даст только одно слагаемое! Экономит время.
Пример:
|2 0 0|
|1 3 0| → раскладывай по первой строке (два нуля!)
|4 1 5|
4. Проверка обратимости матрицы: не вычисляй обратную матрицу, просто найди определитель
Если $\det(A) \neq 0$ → матрица обратима. Если $\det(A) = 0$ → необратима. Вычисление определителя в 10 раз быстрее вычисления обратной матрицы!
5. В ML: используй np.linalg.det() для больших матриц
Для матриц размера больше $5 \times 5$ ручное вычисление нецелесообразно. NumPy использует оптимизированные алгоритмы (LU-разложение) и работает за $O(n^3)$ вместо $O(n!)$ при наивном подходе.
6. Для проверки ориентации тройки векторов: достаточно знака
Не нужно вычислять точное значение — просто проверь, положительный определитель или отрицательный. Это очень быстро проверяется даже вручную.
7. Объём тетраэдра: используй формулу $V = \frac{1}{6}|\det|$
Коэффициент $\frac{1}{6}$ легко запомнить: тетраэдр — это $\frac{1}{6}$ часть параллелепипеда (можно разбить параллелепипед на 6 тетраэдров).
8. При вычислении вручную: упрощай СНАЧАЛА
Если видишь, что можно вынести множитель из строки (например, все элементы делятся на 2) — вынеси его до вычисления определителя. Работать с меньшими числами проще!
9. Проверка правильности вычислений: подставь простые векторы
Если сомневаешься в формуле, подставь стандартный базис $(1,0,0)$, $(0,1,0)$, $(0,0,1)$ — должно получиться 1. Это быстрая проверка.
10. В коде: следи за численной стабильностью
Для очень больших или очень маленьких матриц определитель может “уйти в бесконечность” или “обнулиться” из-за ошибок округления. Используй np.linalg.slogdet() для логарифма определителя в таких случаях.
💡 Совет: Смешанное произведение — это не просто абстрактная математика, это мощный инструмент для решения реальных задач! В ML оно помогает проверять линейную независимость признаков за считанные миллисекунды. В 3D-графике — вычислять объёмы и проверять видимость. В физике — находить моменты сил и магнитные поля. Освой его — и ты получишь универсальную “отмычку” для множества задач! 🚀
Следующий шаг: Переходи к изучению векторных пространств, где узнаешь, как обобщить всё, что мы прошли, на пространства произвольной размерности. Там смешанное произведение превратится в мощный инструмент линейной алгебры! ✨
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку