Матрица — это таблица чисел, и почти вся работа с ней сводится к нескольким операциям: сложить, вычесть, перемножить, найти определитель, транспонировать или обратить. Калькулятор делает это для матриц 2×2 и 3×3, а заодно показывает, откуда берётся каждое число: тепловая карта подкрашивает элементы по величине, а панель «Метод Гаусса» раскрывает прямой ход с выбором ведущего элемента.
Что считает калькулятор
Матрица A хранит первую таблицу, матрица B — вторую. Для сложения, вычитания и умножения нужны обе; для определителя, обратной и транспонированной — только A, и тогда поля B скрываются. Размер выбирается переключателем: 2×2 по умолчанию, 3×3 по кнопке.
Крупное число в панели результата — определитель матрицы, стоящей в ответе. Под ним написано, обратима эта матрица или вырождена. Сетка результата показывает саму матрицу: для поэлементных операций — ответ, для определителя — исходную A, потому что скаляр некуда разложить по клеткам. Список ниже выводит det(A), tr(A) и det(B).
Определитель det(A) — это одно число, по которому судят об обратимости. След tr(A) — сумма элементов главной диагонали. Обратная матрица A⁻¹ существует только у матрицы с ненулевым определителем; произведение возвращает исходную: A·A⁻¹ = E, где E — единичная матрица.
Как заполнять поля
Каждая ячейка — отдельное числовое поле. Введите числа построчно: сначала верхняя строка, затем нижняя. Знак минус и десятичная дробь (через точку или запятую) принимаются как обычно. Размер переключается радиокнопками «2 × 2» и «3 × 3»; при переключении подставляется пример соответствующего размера, а операция выбирается из списка.
Пустая ячейка — ошибка, а не ноль. Пока хотя бы одно нужное поле не заполнено, результат скрывается целиком, чтобы старое число не выглядело новым ответом, а рядом появляется пояснение. Все поля обновляются на лету: ничего нажимать не нужно. Кнопка «Сбросить к примеру» возвращает размер 2×2, операцию сложения и исходные числа.
Как получается результат
Обозначения одни и те же во всех формулах: A и B — матрицы, A[i][j] — элемент в строке i и столбце j.
- Определитель 2×2: det(A) = a·d − b·c для A = [[a, b], [c, d]].
- Определитель 3×3: разложение по первой строке, det(A) = a·(e·i − f·h) − b·(d·i − f·g) + c·(d·h − e·g) для A = [[a, b, c], [d, e, f], [g, h, i]]. Это то же, что формула Саррюса.
- След: tr(A) = A[1][1] + A[2][2] (и + A[3][3] для 3×3).
- Сложение и вычитание поэлементно: (A ± B)[i][j] = A[i][j] ± B[i][j].
- Умножение: (A·B)[i][j] = Σ A[i][k]·B[k][j] — строка A умножается на столбец B.
- Транспонирование: Aᵀ[i][j] = A[j][i].
- Обратная: A⁻¹ = adj(A) / det(A), где adj(A) — транспонированная матрица алгебраических дополнений.
Панель «Метод Гаусса» показывает прямой ход на матрице A. На каждом шаге выбирается ведущий элемент — наибольший по модулю в текущем столбце, начиная с текущей строки; если он не на диагонали, строки меняются местами, а нижележащие строки обнуляются вычитанием кратной ведущей строки. Красная рамка отмечает ведущую ячейку. Если в столбце нет ненулевого элемента и обмен не помогает, матрица вырождена, и об этом сообщается текстом.
Пример, который можно повторить
Возьмём A = [[1, 2], [3, 4]] и B = [[5, 6], [7, 8]] — это и есть пример по умолчанию на экране. Определитель A: det(A) = 1·4 − 2·3 = 4 − 6 = −2. След: tr(A) = 1 + 4 = 5.
Сложение: A + B = [[1 + 5, 2 + 6], [3 + 7, 4 + 8]] = [[6, 8], [10, 12]]. Вычитание: A − B = [[1 − 5, 2 − 6], [3 − 7, 4 − 8]] = [[−4, −4], [−4, −4]]; у этой матрицы обе строки одинаковы, поэтому её определитель равен нулю и она вырождена.
Умножение: (A·B)[1][1] = 1·5 + 2·7 = 19, (A·B)[1][2] = 1·6 + 2·8 = 22, (A·B)[2][1] = 3·5 + 4·7 = 43, (A·B)[2][2] = 3·6 + 4·8 = 50, то есть A × B = [[19, 22], [43, 50]], а её определитель равен 19·50 − 22·43 = 950 − 946 = 4.
Транспонирование: Aᵀ = [[1, 3], [2, 4]]. Обратная: определитель равен −2, поэтому A⁻¹ = (1/−2)·[[4, −2], [−3, 1]]. В первой строке обратной матрицы стоят −2 и 1, во второй 1,5 и −0,5. Проверка подстановкой: A·A⁻¹ даёт единичную матрицу [[1, 0], [0, 1]], как и должно быть.
Для 3×3 отдельный контрольный пример: A = [[1, 2, 3], [0, 1, 0], [5, 2, 1]]. Разложение по первой строке даёт 1·(1·1 − 0·2) − 2·(0·1 − 0·5) + 3·(0·2 − 1·5) = 1 − 0 − 15 = −14, а след равен 1 + 1 + 1 = 3.
Что показывают тепловая карта и метод Гаусса
Тепловая карта — это та же матрица, но каждая ячейка подкрашена по величине элемента: минимум тёмный, максимум красный. Цвет не меняет чисел, он только помогает заметить, где значения большие, а где почти нулевые. Легенда снизу подписывает минимальное и максимальное значение.
Панель «Метод Гаусса» разворачивает прямой ход по шагам: на каждом шаге видно, какой элемент выбран ведущим и как обнулились строки ниже. Для вырожденной матрицы ход останавливается на шаге, где ведущего элемента нет, и выводится сообщение. Это тот же процесс, что стоит за вычислением определителя и обратной матрицы, только показанный по шагам.
Где модель не работает
Главное ограничение — вырожденность. Если определитель равен нулю, обратной матрицы не существует: у системы нет единственного решения, столбцы линейно зависимы. Калькулятор в этом случае честно сообщает об ошибке, а не выдаёт бесконечность или мусор. Вычитание почти равных матриц легко приводит к вырожденной разности: в примере выше A − B дала одинаковые строки.
Умножение не коммутативно: A × B и B × A, вообще говоря, разные матрицы, и менять множители местами нельзя. В нашем примере A × B = [[19, 22], [43, 50]], а B × A = [[23, 34], [31, 46]] — числа заметно отличаются. Это не ошибка округления, а свойство самой операции.
Численная неустойчивость проявляется у почти вырожденных матриц. Обратная матрица содержит деление на определитель: если он мал, то крошечная погрешность во входных числах сильно меняет ответ. Практический признак — сравнить |det(A)| с порядком самих элементов: если определитель много меньше их произведения, обращению доверять нельзя. Все расчёты идут в числах двойной точности, результат выводится с округлением до значащих цифр, поэтому проверка подстановкой может дать очень малую ненулевую величину вместо строгого нуля — это округление вывода, а не ошибка метода. И наконец, здесь считаются только квадратные матрицы 2×2 и 3×3: прямоугольные, системы линейных уравнений и собственные значения остаются за рамками.