Площадь параллелограмма
Два вектора: a = (3, 0) и b = (1, 2). Они образуют параллелограмм.
Задача: чему равна площадь этого параллелограмма? Попробуйте нарисовать его на клетчатой бумаге и посчитать.
Подсказка: параллелограмм можно вписать в прямоугольник 3×2 и вычесть лишние треугольники.
Матрица 2×2 превращает единичный квадрат в параллелограмм. Определитель — это площадь этого параллелограмма. Со знаком: положительный — если ориентация сохранилась, отрицательный — если фигура «перевернулась», как в зеркале.
Одно число, которое говорит: «насколько матрица растягивает или сжимает пространство». Формула для 2×2 — четыре числа, одно действие:
A = [[a, b], det(A) = a·d − b·c
[c, d]]
Главная диагональ (a·d) минус побочная (b·c). Всё.
Посчитаем:
A = [[3, 1], det(A) = 3·4 − 1·2 = 12 − 2 = 10
[2, 4]]
Единичный квадрат с площадью 1 после преобразования матрицей A превратился в параллелограмм с площадью 10. Матрица растянула пространство в 10 раз.
Синий квадрат — исходный. Зелёный параллелограмм — результат преобразования. Площадь выросла ровно в det(A) = 10 раз. А что если определитель отрицательный?
B = [[0, 1], det(B) = 0·0 − 1·1 = −1
[1, 0]]
Эта матрица меняет координаты местами — отражение относительно диагонали. Площадь осталась прежней (|−1| = 1), но ориентация перевернулась: если обходить фигуру против часовой стрелки, после преобразования обход станет по часовой. Знак минус — это зеркало.
Определитель 2 — площадь удвоилась. Определитель −3 — площадь утроилась и фигура отразилась.
Самый интересный случай — когда определитель равен нулю.
C = [[2, 4], det(C) = 2·2 − 4·1 = 4 − 4 = 0
[1, 2]]
Площадь ноль. Параллелограмм «схлопнулся» в линию. Матрица C сжала двумерную плоскость в одномерную прямую — потеряла целое измерение. Информация уничтожена: зная результат, невозможно восстановить исходный вектор.
Почему? Посмотрите на столбцы: (2, 1) и (4, 2). Второй — просто удвоенный первый. Они линейно зависимы. Два зависимых столбца — нулевой определитель — потеря измерения. Это три способа сказать одно и то же.
Для матрицы 3×3 формула длиннее, но идея та же — разложение по первой строке:
A = [[a, b, c],
[d, e, f],
[g, h, i]]
det(A) = a·(e·i − f·h) − b·(d·i − f·g) + c·(d·h − e·g)
Каждый элемент первой строки умножается на определитель 2×2, который получается вычёркиванием его строки и столбца. Знаки чередуются: +, −, +.
Пример:
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
det = 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
Ноль. Три столбца этой матрицы линейно зависимы (третий = 2·второй − первый). Трёхмерное пространство «схлопнулось» — объём параллелепипеда равен нулю.
Определитель 2×2: det([[a,b],[c,d]]) = ad − bc. Главная диагональ минус побочная.
Геометрический смысл: во сколько раз матрица меняет площадь (2D) или объём (3D). Знак — ориентация.
det = 0: столбцы зависимы, пространство «схлопывается», матрица необратима.
det(A·B) = det(A)·det(B). Определители перемножаются.