Основы
Обнаружение определителя матрицы
Разблокировка ключевого элемента собственного разложения
В линейной алгебре есть концепции, которые легко понять с первого раза. Вероятно, потому что их приложения и варианты использования относительно очевидны, а концепции несколько осязаемы.
Однако концепция матричного детерминанта сделала для меня полную противоположность — я был скорее сбит с толку, чем просветлен. Мое замешательство в основном было связано с тем, что у меня резко отсутствовала интуиция — я не мог визуализировать или представить себе значение и назначение определителя.
В следующих разделах мы собираемся развить эту интуицию, изучить несколько процедур для вычисления определителя и получить первое представление о его приложениях.
Краткие факты и интуиция
Определитель описывает функцию, которая отображает матрицы в скаляр. Он определяется произведением всех собственных значений, что допускает несколько менее абстрактную, более геометрическую интерпретацию.
В зависимости от размеров матрицы определитель также может интерпретироваться как площадь или объем соответственно. Грубо говоря, он говорит нам, насколько умножение на данную матрицу растягивает или сжимает пространство.
Предположим, у нас есть матрица с определителем, равным нулю. Умножение на эту матрицу сожмет пространство и сожмет все в одну строку. Следовательно, площадь также будет равна нулю.
Теперь, когда у нас появилась некоторая базовая интуиция, мы можем перечислить некоторые факты об определителе, чтобы углубить наше понимание:
- Определитель определен только для квадратных матриц (M x M).
- Матрица имеет ровно один определитель, так как это скаляр, содержащий информацию о матрице.
- Определитель равен нулю для вырожденных матриц. Или, говоря иначе, матрицы с линейными зависимостями ранга
r < M
имеют определитель, равный нулю. - Определитель часто будет обозначаться одним из следующих:
Примечание. Следует иметь в виду одну вещь: определитель великолепен в теории, но его трудно вычислить на практике из-за численной нестабильности при расчете для «больших» матриц.
Как вычислить определитель матрицы?
В предыдущем разделе мы узнали некоторые основные факты об определителе и о том, как его интерпретировать. Но как мы это вычисляем?
Процедура вычисления определителя довольно утомительна. К счастью, есть несколько сокращений, применимых только к маленьким матрицам (2x2, 3x3). Сначала мы поговорим о ярлыках, прежде чем говорить об общей процедуре.
Примечание. К счастью, нам не нужно вычислять определитель вручную, так как встроенная функция NumPy numpy.linalg.det(a) сделает всю работу за нас.
2x2 ярлык
Определитель матрицы 2 на 2 относительно легко вычислить. Нам просто нужно умножить каждый элемент вдоль главной диагонали и вычесть произведение недиагональных элементов.
Давайте поработаем с некоторыми числовыми примерами:
В первом примере мы использовали ярлык для вычисления определителя единичной матрицы 2 на 2, который равен единице. Мы также можем визуализировать это решение как площадь плоскости, где одна сторона определяется единичным вектором v=[1, 0], а другая — единичным вектором w=[0, 1].
Сингулярная матрица имеет определитель, равный нулю, — и это именно то, что мы видим во втором примере. Поскольку оба столбца линейно зависят друг от друга, у нас есть матрица с недостаточным рангом, в результате чего определитель равен нулю. Думая о решении более геометрически, мы должны представить два вектора, образующих всего одну линию с нулевой площадью.
3x3 ярлык
Вычисление определителя для матрицы 3 на 3 уже более сложно, но относительно похоже на сокращение 2 на 2.
Мы суммируем все произведения диагональных элементов от верхнего левого до нижнего правого и вычитаем сумму всех произведений недиагональных элементов от верхнего правого до нижнего левого. Мы можем визуализировать эту процедуру двумя различными способами.
- Один из способов — увеличить матрицу конкатенацией:
2. Другой способ — представить «обход» по диагоналям:
Общая процедура
Теперь все очень быстро усложняется. Таким образом, следующий пример будет основан только на матрице 4 на 4.
В общем, процедура состоит в переборе каждого элемента первой строки, создании подматрицы (3x3) путем исключения столбца текущего элемента первой строки, вычислении определителя подматрицы и умножении на текущий элемент первой строки. Это даст четыре числа, которые мы будем складывать и вычитать в чередующемся порядке [+,-,+,-].
Мы должны визуализировать процедуру, чтобы распутать сложное описание:
Мы видим, что процедура намного сложнее. Для относительно небольшой матрицы 4 на 4 нам нужно вычислить 4 определителя 4 подматриц, из которых нам также необходимо вычислить определители подматриц и т. д. Таким образом, алгоритм можно применять рекурсивно и, таким образом, он требует больших вычислительных ресурсов.
Однако эта общая процедура может масштабироваться до матрицы любого размера — и, к счастью, нам не нужно вычислять ее вручную.
Приложения определителя
Теперь мы знаем, что такое определитель, как его интерпретировать и как его вычислить, но один вопрос все еще остается без ответа — для чего он используется?
Некоторые из его приложений, например, предоставляют способ найти обратную заданную матрицу или найти собственные значения. Последнее особенно важно, поскольку собственные значения и, следовательно, собственное разложение играют центральную роль в анализе главных компонент.
Предположим, у нас есть матрица 2 на 2, и мы уже знаем определитель. Помещение элементов матрицы в одну сторону и определителя в другую часть уравнения позволяет нам найти конкретный элемент матрицы.
Давайте подумаем о числовом примере, чтобы сделать вещи более очевидными.
Теперь, если мы продолжим эту идею и вычтем несколько неизвестных из действительных чисел по главной диагонали и обобщим уравнение, мы получим характеристический полином матрицы.
Характеристический многочлен полезен, поскольку он позволяет нам не только выразить матрицу в терминах полиномиального выражения, но и вычислить собственные значения матрицы. Если характеристический полином равен нулю, λ, являющиеся корнями полинома, описывают собственные значения матрицы.
Заключение
В этой статье мы узнали о понятии определителя матрицы. Как его интерпретировать и вычислить, а также некоторые его приложения.
Двумя наиболее важными приложениями являются вычисление обратной матрицы и, возможно, даже более интересное определение собственных значений.
Как мы кратко упомянули ранее, определитель матрицы — отличная концепция в теории, но ее трудно вычислить на практике, особенно для больших матриц из-за численной нестабильности. Чтобы избежать таких проблем, например, при вычислении собственных значений, существует целое семейство итерационных алгоритмов (например, степенной метод).
Несмотря на практические проблемы, детерминант по-прежнему является важной и фундаментальной концепцией, которую необходимо знать и понимать.
Спасибо за чтение! Обязательно оставайтесь на связи и следите за мной здесь на Medium, Kaggle или просто скажите Привет на LinkedIn.
Понравилась статья? Станьте Medium Member и продолжайте учиться без ограничений. Я получу часть вашего членского взноса, если вы перейдете по следующей ссылке, без каких-либо дополнительных затрат с вашей стороны.
Ссылки/Дополнительные материалы:
- Глубокое обучение (Ян Дж. Гудфеллоу, Йошуа Бенджио и Аарон Курвиль), глава 2, MIT Press, 2016.
- Майк X Коэн, доктор философии. Линейная алгебра: теория, интуиция, код.
- 3Blue1Brown — определяющий