Скидка до 50% и курс по ИИ в подарок 3 дня 07 :05 :13 Выбрать курс
Код
#статьи

Что такое определитель матрицы и как его найти

Разобраться в том, живём ли мы в матрице, не выйдет.

Иллюстрация: Polina Vari для Skillbox Media

Определитель матрицы — одна из базовых концепций линейной алгебры, без которой сложно разобраться в системах уравнений, преобразованиях и многих прикладных задачах — от программирования до компьютерного зрения. На практике эта тема часто выглядит перегруженной формулами и абстракциями, из-за чего её сложно понять.

Эта статья для тех, кто раньше не сталкивался с линейной алгеброй или знаком с ней поверхностно. Здесь не будет лишней теории: мы разберёмся, зачем нужен определитель и как его найти для матриц разного размера.

Содержание


Что такое определитель матрицы

Определитель, или детерминант, — это число, которое вычисляется для квадратной матрицы, то есть такой матрицы, у которой количество строк равно количеству столбцов: 2×2, 3×3, 4×4 и так далее. Порядок определителя совпадает с размером матрицы: для матрицы 2×2 — это определитель второго порядка, для 3×3 — третьего и так далее.

Обозначается детерминант двумя способами: det(A) или |A|, где А — это матрица. Оба варианта равноправны и встречаются одинаково часто.

Определитель — это числовая характеристика матрицы. Он показывает, как матрица ведёт себя в вычислениях и преобразованиях. Например, в линейной алгебре перед поиском обратной матрицы сначала проверяют, существует ли она. Логика простая: если определитель не равен нулю — обратная матрица есть; если равен нулю — нет, и такую матрицу называют вырожденной.

В аналитике данных и программировании это применяют на практике. Перед решением системы уравнений считают определитель, чтобы не тратить ресурсы на задачу без решения. В задачах обработки изображений — при повороте, масштабировании или выравнивании — следят, чтобы он не был равен нулю: иначе преобразование приведёт к искажениям.

Как найти определитель матрицы

Найти определитель можно несколькими способами: по прямой формуле, по правилу Саррюса, методом Гаусса или при помощи библиотеки NumPy для Python. Рассмотрим каждый из методов.

Как найти определитель матрицы по прямой формуле

Прямая формула — основной способ найти определитель первого и второго порядка, то есть для матриц 1×1 или 2×2. Для этого следуйте инструкции.

Шаг 1: возьмите исходную матрицу следующего вида.

Изображение: Skillbox Media

Шаг 2: подставьте значения в формулу det = ad − bc, где det — это детерминант.

Шаг 3: вычислите разницу.

Разберём на примере. Представим, что у нас есть матрица.

Изображение: Skillbox Media

Подставим значения в формулу: 3 × (−4) − 7 × 1. Определитель равен −19.

Как найти определитель матрицы по правилу Саррюса

Правило Саррюса позволяет найти определитель третьего порядка, то есть используется для матриц 3×3. Оно основано на достраивании диагоналей.

Чтобы найти детерминант, необходимо продублировать первые два столбца матрицы справа и посчитать произведения по диагоналям с учётом знаков.

Посмотрим на общую схему нахождения определителя матрицы 3×3.

Шаг 1: возьмите исходную матрицу.

Изображение: Skillbox Media

Шаг 2: продублируйте первые два столбца справа.

Изображение: Skillbox Media

Шаг 3: сложите произведения трёх диагоналей слева направо.

Изображение: Skillbox Media

Шаг 4: сложите произведения трёх диагоналей справа налево.

Изображение: Skillbox Media

Шаг 5: вычтите из первой суммы вторую. Полученный результат — это определитель третьего порядка для исходной матрицы.

Изображение: Skillbox Media

Разберём на примере. Вот исходная матрица.

Изображение: Skillbox Media

Продублируем первые столбцы справа.

Изображение: Skillbox Media

Складываем произведения диагоналей слева направо.

Изображение: Skillbox Media

2 × 3 × 4 + (−1) × 2 × 0 + 0 × 1 × 1 = 24

Складываем произведения диагоналей справа налево.

0 × 3 × 0 + 2 × 2 × 1 + (−1) × 1 × 4 = 0

Вычитаем из первой суммы вторую: 24 − 0 = 24. Определитель равен 24.

Как найти определитель матрицы методом Гаусса

Метод Гаусса приводит матрицу к верхнетреугольному виду — когда все элементы ниже главной диагонали равны нулю. В таком варианте детерминант считается просто: это произведение элементов на главной диагонали.

Метод универсальный: он работает для матриц любого размера — 3×3, 4×4 и более. Поэтому его можно использовать для поиска определителя третьего порядка и выше.

Попробуем на практике. Для этого возьмём матрицу.

Изображение: Skillbox Media

Наша задача — обнулить элементы под главной диагональю, чтобы получить верхнетреугольную матрицу.

Забежим немного вперёд. В нашем примере результирующий итог будет такой.

Изображение: Skillbox Media

Теперь придём к результирующей матрице от исходной.

Элементы ниже диагонали обнуляют с помощью элементарных преобразований строк. Берут строку, в которой нужно получить ноль, и прибавляют к ней другую строку — опорную, — умноженную на подходящий коэффициент. Коэффициент подбирают так, чтобы нужный элемент стал равен нулю.

Например, чтобы обнулить элемент во второй строке, прибавим к ней первую строку, умноженную на −2. В результате соответствующий элемент становится равен нулю, а матрица постепенно приобретает треугольный вид.

Изображение: Skillbox Media

Для третьей строки 0 будет результатом прибавления первой строки, умноженной на 2.

Изображение: Skillbox Media

К четвёртой строке прибавляем первую, умноженную на 6.

Изображение: Skillbox Media

После обнуления первого столбца получаем промежуточную матрицу.

Изображение: Skillbox Media

Переходим к второму столбцу. Теперь наша цель — получить нули в третьей и четвёртой строках второго столбца. Для этого опорной становится вторая строка.

Сначала нам требуется обнулить −1. Для этого к третьей строке прибавляем вторую. Коэффициент равен 1, ничего не умножаем.

Изображение: Skillbox Media

Теперь обнулим −3. Прибавляем к четвёртой строке вторую, умноженную на 3.

Изображение: Skillbox Media

Записываем новые результаты в две нижние строчки и получаем следующую промежуточную матрицу.

Изображение: Skillbox Media

Осталось обнулить третий столбец — получить 0 на месте 6. Вычитаем из четвёртой строки третью, умноженную на 3.

Изображение: Skillbox Media

Получаем результирующую матрицу.

Изображение: Skillbox Media

Определитель — произведение элементов главной диагонали.

Изображение: Skillbox Media

Если во время вычисления по методу Гаусса в матрице появляется строка, полностью состоящая из нулей, дальше можно не считать: ноль на главной диагонали обнулит остальные множители.

Как найти определитель больших матриц с помощью Python

Вычислять определители пятого порядка и более вручную — долго, к тому же легко можно ошибиться. Проще использовать для этого специальные инструменты. Например, библиотеку NumPy для Python, которая работает с массивами и матрицами и умеет считать определители за одну команду.

Используем NumPy, чтобы найти определитель пятого порядка, то есть для матрицы 5×5:

import numpy as np

# Создаём пример матрицы 5×5
matrix = np.array([
    [2, 4, 6, 8, 10],
    [4, 10, 12, 14, 16],
    [6, 12, 21, 24, 27],
    [8, 14, 24, 34, 38],
    [10, 16, 27, 38, 50]
])

# Вычисляем определитель
determinant = np.linalg.det(matrix)

# Округляем результат для читаемости
determinant_rounded = round(determinant)

print(f"Матрица:\n{matrix}")
print(f"Определитель: {determinant_rounded}")

Результат:

Матрица:
[[ 2  4  6  8 10]
 [ 4 10 12 14 16]
 [ 6 12 21 24 27]
 [ 8 14 24 34 38]
 [10 16 27 38 50]]
Определитель: -432

Всё получилось!

Что нужно запомнить

Определитель — это быстрый способ понять, «работает» ли матрица: можно ли найти обратную, есть ли единственное решение у системы и не «схлопывается» ли пространство при преобразовании. Если определитель равен нулю — матрица вырожденная, и многие операции с ней теряют смысл.

Как выбрать метод для нахождения детерминанта матрицы:

  • Матрица 2×2 — используйте прямую формулу.
  • Матрица 3×3 — попробуйте правило Саррюса.
  • Матрица 4×4 и больше — метод Гаусса. Приводите матрицу к треугольному виду и перемножайте элементы диагонали.
  • Матрица любого размера — используйте специализированные библиотеки, например NumPy. Это ускорит расчёты и снизит риск ошибки.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Листая дальше, вы перейдете на страницу Получите 4 курса для старта работы в ИТ
Интересуетесь технологиями? Выберите бесплатный курс и попробуйте себя в IT

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована