Determinants#

Определитель, или детерминант, представляет собой важную числовую характеристику квадратной матрицы. Определителем матрицы называется полилинейная кососимметричная функция от строк матрицы. Точнее говоря, определитель — это функция \(\det \colon \mathbb R^{n\times n} \to \mathbb R\), удовлетворяющая трём аксиомам:

  1. (кососимметричность) \(\det \boldsymbol B = -\det \boldsymbol A\), если матрица \(\boldsymbol B\) получена перестановкой каких-либо двух строк матрицы \(\boldsymbol A\);

  2. (полилинейность) определитель линеен по каждой строке:

    • если матрица \(\boldsymbol B\) получена из матрицы \(\boldsymbol A\) умножением некоторой её строки на число \(\lambda\), то \(\det \boldsymbol B = \lambda \det \boldsymbol A\);

    • если \(i\)-я строка матрицы \(\boldsymbol A\) равна сумме \(i\)-ых строк матриц \(\boldsymbol B\) и \(\boldsymbol C\), а все остальные строки этих матриц совпадают, то \(\det \boldsymbol A = \det \boldsymbol B + \det \boldsymbol C\).

  3. (нормировка) \(\det \boldsymbol I = 1\).

Можно показать, что существует только одна функция, удовлетворяющая этим трём свойствам. Определитель матрицы \(\boldsymbol A\) обозначают также \(\vert \boldsymbol A\vert\).

Properties of determinants#

Из аксиом 1-3 напрямую выводятся следующие свойства определителя:

  • \(\det \boldsymbol A = 0\), если матрица \(\boldsymbol A\) содержит нулевую строку или две пропорциональные строки;

  • определитель не меняется при основном элементарном преобразовании вида

    \[ \boldsymbol a_i^\top := \boldsymbol a_i^\top - \lambda \boldsymbol a_j^\top; \]
  • \(\det (\lambda\boldsymbol A) = \lambda^n \det \boldsymbol A\);

  • определитель диагональной матрицы равен произведению диагональных элементов.

Перечислим ещё несколько широко используемых свойств детерминантов.

  1. Определитель треугольной матрицы равен произведению диагональных элементов.

  2. \(\det \boldsymbol A = 0\) тогда и только тогда, когда матрица \(\boldsymbol A\) вырождена.

  3. \(\vert\boldsymbol{AB}\vert = \vert\boldsymbol{A}\vert \cdot \vert\boldsymbol{B}\vert\).

  4. \(\det \boldsymbol A^\top = \det \boldsymbol A\).

Инвариантность определителя относительно транспонирования означает, что во всех перечисленных выше свойствах детерминантов можно заменить «строки» на «столбцы», и утверждения останутся верными.

Из формулы для определителя произведения матриц вытекает, что детерминант обратной матрицы равен \(\det \boldsymbol A^{-1} = \frac 1{\det \boldsymbol A}\).

Oriented volume#

У определителя есть любопытная геометрическая интерпретация в лице ориентированного объёма. Обозначим через \(V(\boldsymbol u_1, \ldots, \boldsymbol u_n)\) объём параллелепипеда, построенного на векторах \(\boldsymbol u_1, \ldots, \boldsymbol u_n \in \mathbb R^n\). Если записать эти векторы в виде матрицы по столбцам, то оказывается, что модуль её определителя равен объёму параллелепипеда:

(37)#\[V(\boldsymbol u_1, \ldots, \boldsymbol u_n) = \big\vert\det([\boldsymbol u_1 \ldots \boldsymbol u_n])\big\vert. \]

Если же модуль не ставить, то получится ориентированный объём, или объём со знаком: он может быть как положительным, так и отрицательным в зависимости от того, как ориентирован набор векторов \(\boldsymbol u_1, \ldots, \boldsymbol u_n\).

Почему же формула (37) вообще верна? Убедимся, что объём параллелепипеда на векторах удовлетворяет аксиомам определителя.

  1. Обмен двух векторов местами, очевидно, не меняет значение объёма.

  2. Если какое-то ребро параллелепипеда равно сумме двух других, то и объёмы складываются:

    \[ V(\boldsymbol u_1, \ldots, \boldsymbol v + \boldsymbol w, \ldots \boldsymbol u_n) = V(\boldsymbol u_1, \ldots, \boldsymbol v,\ldots, \boldsymbol u_n) + V(\boldsymbol u_1, \ldots, \boldsymbol w, \ldots, \boldsymbol u_n). \]

    А при умножении одного из рёбер на число \(\alpha\) весь объём умножается на него:

    \[ V(\boldsymbol u_1, \ldots, \alpha\boldsymbol u_i, \ldots, \boldsymbol u_n) = \alpha V(\boldsymbol u_1, \ldots, \boldsymbol u_i, \ldots, \boldsymbol u_n). \]
  3. Наконец, объём единичного куба соответствует определителю единичной матрицы, и оба они равны единице.

Big Formula#

Иногда детерминант матрицы

\[\begin{split} \boldsymbol A = \begin{pmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \\ \end{pmatrix} \end{split}\]

определяют по явной формуле

(38)#\[\det \boldsymbol A = \sum\limits_{\sigma \in S_n} (-1)^\sigma a_{1\sigma(1)}\ldots a_{n\sigma(n)}, \]

где \(S_n\) — множество перестановок множества \(\{1, 2, \ldots, n\}\), \((-1)^\sigma = +1\), если перестановка чётная и \(-1\) в противном случае.

Упражнение. Проверьте, что определение детерминанта по формуле (38) согласуется с приведёнными выше аксиомами 1-3.

Формула (38) содержит \(n!\) слагаемых, что делает её бесполезной для практики при хоть сколько-нибудь больших значениях \(n\). Однако при малых \(n\) она довольно удобна: имеем

\[\begin{split} \begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix} = a_{11}a_{22} - a_{12}a_{21}, \end{split}\]
\[\begin{split} \begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \\ \end{vmatrix} = a_{11}a_{22}a_{33} + a_{12}a_{23}a_{31} + a_{13}a_{21}a_{32} - a_{13}a_{22}a_{31} - a_{12}a_{21}a_{33} - a_{11}a_{23}a_{32}. \end{split}\]

Cofactor formula#

Определитель матрицы размера \(3\times 3\) можно переписать как

\[ a_{11}(a_{22}a_{33}-a_{23}a_{32}) + a_{12}(a_{23}a_{31} - a_{21}a_{33}) + a_{13}(a_{21}a_{32} - a_{22}a_{31}), \]

или же как

\[\begin{split} a_{11}\begin{vmatrix} a_{22} & a_{23} \\ a_{32} & a_{33} \end{vmatrix} - a_{12}\begin{vmatrix} a_{21} & a_{23} \\ a_{31} & a_{33} \end{vmatrix} + a_{13}\begin{vmatrix} a_{21} & a_{22} \\ a_{31} & a_{32} \end{vmatrix}. \end{split}\]

Получилась сумма произведений элементов первой строки на дополнительные миноры — определители подматриц исходной матрицы, полученные вычёркиванием первой строки и столбца, в котором находится умножаемый на минор элемент. Заметим также, что второе слагаемое взято со знаком «минус». Такой способ подсчёта детерминанта называется разложением по строке. В общем случае справедливо равенство

(39)#\[\begin{split} \begin{vmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \\ \end{vmatrix} = \sum\limits_{j = 1}^n (-1)^{i+j}a_{ij} M_{ij},\end{split}\]

где \(M_{ij}\) — дополнительный минор, полученный вычёркиванием \(i\)-й строки и \(j\)-го столбца. Аналогичная формула справедлива и для разложения по столбцу.

Упражнение. Докажите формулу разложения детерминанта по строке, проверив, что для правой части равенства (39) выполняются аксиомы 1-3 определителя.

Особенно удобно разлагать определитель по таким строкам/столбцам, которые содержат много нулей, поскольку число слагаемых в таком разложении равно количеству ненулевых элементов.

Пример. Вычислим определитель трёхдиагональной матрицы \(\boldsymbol A_n\)

\[\begin{split} D_n = \det \boldsymbol A_n = \begin{vmatrix} 2 & -1 & 0 & 0 & \dots & 0 & 0 \\ -1 & 2 & -1 & 0 & \dots & 0 & 0 \\ 0 & -1 & 2 & -1 &\dots & 0 & 0 \\ \vdots & \vdots & \ddots & \ddots & \ddots & \vdots & \vdots \\ 0 & 0 & \dots & -1 & 2 & -1 & 0 \\ 0 & 0 & \dots & 0 & -1 & 2 & -1 \\ 0 & 0 & \dots & 0 & 0 & -1 & 2 \\ \end{vmatrix} \end{split}\]

Имеем \(D_1 = 2\), \(D_2 = 4 -1 = 3\). Похоже, что \(D_n = n+1\). Чтобы это доказать, выведем рекуррентную формулу для \(D_n\), разложив его по первой строке:

\[\begin{split} D_n = 2D_{n-1} - (-1) \begin{vmatrix} -1 & -1 & 0 & \dots & 0 \\ \begin{matrix} 0 \\ \vdots\\ 0 \end{matrix} & &\boldsymbol A_{n-2} \end{vmatrix} = 2D_{n-1} - D_{n-2}. \end{split}\]

По индукции отсюда получаем, что \(D_n = 2n - (n-1) = n+1\).

Cofactors and inverse matrix#

Коэффициент при \(a_{ij}\) в разложении определителя по строке называется алгебраическим дополнением: \(C_{ij} = (-1)^{i+j} M_{ij}\). Таким образом,

(40)#\[\det\boldsymbol A = \sum\limits_{j=1}^n a_{ij}C_{ij}. \]

С помощью матрицы алгебраических дополнений \(\boldsymbol C\) можно явно выписать формулу для обратной матрицы:

\[ \boldsymbol A^{-1} = \frac{\boldsymbol C^\top}{\det \boldsymbol A}. \]

Чтобы её доказать, надо проверить равенство

\[ \begin{align}\begin{aligned}\begin{split} \begin{pmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \dots & a_{nn} \\ \end{pmatrix} \begin{pmatrix} C_{11} & C_{21} & \dots & C_{n1} \\ C_{12} & C_{22} & \dots & C_{n1} \\ \vdots & \vdots & \ddots & \vdots \\ C_{1n} & C_{2n} & \dots & C_{nn} \\ \end{pmatrix} =\end{split}\\\begin{split} \begin{pmatrix} \det \boldsymbol A & 0 & \dots & 0 \\ 0 & \det \boldsymbol A & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & \det \boldsymbol A \\ \end{pmatrix}. \end{split}\end{aligned}\end{align} \]

Наличие \(\det \boldsymbol A\) везде на главной диагонали следует из формулы (40).

Вопрос на подумать. Почему все остальные внедиагональные элементы равны нулю?

To calculate a determinant, use np.linalg.det:

import numpy as np
from scipy.linalg import hilbert

A = hilbert(2)
A
array([[1.        , 0.5       ],
       [0.5       , 0.33333333]])
np.linalg.det(A)
0.08333333333333333

Exercises#

  1. Prove that \(\det(\boldsymbol A) = 0\) if \(\boldsymbol A\) is a skew-symmetric matrix of odd shape.

  2. Prove that \(\vert\det \boldsymbol Q\vert = 1\) if \(\boldsymbol Q\) is an orthogonal matrix.

  3. Matrices \(\boldsymbol A\) and \(\boldsymbol B\) are similar (\(\boldsymbol A \sim \boldsymbol B\)) if there exists a nonsingular matrix \(\boldsymbol M\) such that \(\boldsymbol B = \boldsymbol M^{-1} \boldsymbol {AM}\). Prove that \(\det \boldsymbol A = \det \boldsymbol B\) if \(\boldsymbol A \sim \boldsymbol B\).