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

Смешанное произведение векторов

Смешанное произведение векторов 📦

Представь: ты обучаешь нейросеть распознавать объекты в 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

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