Смешанное произведение и объём
Смешанное произведение одним числом измеряет объём, натянутый на три вектора.
Смешанное произведение $(\vec a, \vec b, \vec c) = (\vec a \times \vec b) \cdot \vec c$ — число, по модулю равное объёму параллелепипеда на трёх векторах.
Формула
Смешанное произведение равно детерминанту матрицы из координат векторов:
$$(\vec a, \vec b, \vec c) = \begin{vmatrix} a_x & a_y & a_z \\ b_x & b_y & b_z \\ c_x & c_y & c_z \end{vmatrix}$$
Геометрия: длина $\vec a \times \vec b$ — площадь основания, а скалярное умножение на $\vec c$ проецирует $\vec c$ на нормаль, давая высоту. Площадь $\times$ высота $=$ объём:
$$V = |(\vec a, \vec b, \vec c)|$$
Признак компланарности
Если три вектора лежат в одной плоскости, параллелепипед «сплющивается», его объём равен нулю. Значит:
$$(\vec a, \vec b, \vec c) = 0 \;\Longleftrightarrow\; \vec a, \vec b, \vec c \text{ компланарны}$$
Расчёт на Python
def cross(a, b):
return (a[1]*b[2] - a[2]*b[1],
a[2]*b[0] - a[0]*b[2],
a[0]*b[1] - a[1]*b[0])
def dot(a, b):
return sum(x*y for x, y in zip(a, b))
def triple(a, b, c):
return dot(cross(a, b), c)
a = (1, 0, 0)
b = (0, 2, 0)
c = (0, 0, 3)
print("Смешанное (a,b,c) =", triple(a, b, c))
print("Объём =", abs(triple(a, b, c)))
# Компланарный случай: c лежит в плоскости a, b
c2 = (5, 7, 0)
print("Компланарность (объём) =", triple(a, b, c2))Вывод:
Смешанное (a,b,c) = 6 Объём = 6 Компланарность (объём) = 0
Как работает под капотом
Знак смешанного произведения кодирует ориентацию тройки. Положительный знак — правая тройка (как $\vec e_x, \vec e_y, \vec e_z$), отрицательный — левая. Объём при этом всегда берут по модулю. Циклическая перестановка $(\vec a,\vec b,\vec c) = (\vec b,\vec c,\vec a)$ знак сохраняет, а одна транспозиция — меняет.
Частые ошибки
- Брать объём без модуля и получать отрицательное «число литров».
- Считать, что нулевой объём означает совпадение векторов. Он означает лишь, что они в одной плоскости.
- Путать порядок при нечётных перестановках — знак меняется.
Итог
- $(\vec a,\vec b,\vec c)$ — детерминант 3×3, по модулю это объём.
- Ноль означает компланарность (вектора в одной плоскости).
- Знак задаёт ориентацию тройки (правая/левая).