языковых агностиков. Каков наилучший алгоритм для поиска определителя матрицы?
Самый простой способ (и неплохой, на самом деле) найти определитель матрицы размера nxn — это сокращение строк. Имея в виду несколько простых правил об определителях, мы можем решить в форме:
det( A ) = α * det( R ), где R — это эшелонированная форма строки исходной матрицы . A , а α — некоторый коэффициент.
Найти определитель матрицы в виде эшелона строк очень просто; Вы просто находите произведение диагонали. Решение определителя исходной матрицы A затем просто сводится к вычислению α, поскольку вы находите форму эшелона строк R .
Что нужно знать
Что такое эшелонированная форма?
См. эту [ссылку] (http://stattrek.com/matrix-алгебра/echelon-form.aspx) для простого определения
**Примечание:** Не все определения требуют 1 для начальных записей, и это необязательно для этот алгоритм.
Вы можете найти R, используя элементарные операции со строками
Перестановка строк, добавление нескольких строк и т. д.
Вы получаете α из свойств операций над строками для определителей
Если B является матрицей, полученной путем умножения строки A на некоторую ненулевую константу ß, то
det( B ) = ß * det( A )
- Другими словами, вы можете «вынести» константу из строки, просто вытащив ее перед определителем.
Если B — матрица, полученная путем перестановки двух строк по А , затем
дет( В ) = -дет( А )
- Если вы поменяете ряды местами, переверните знак.
Если B является матрицей, полученной прибавлением одной строки к другой строке в A , то
дет( В ) = дет( А )
- Определитель не меняется.
Обратите внимание, что в большинстве случаев определитель можно найти, используя только правило 3 (когда диагональ A не имеет нулей, я полагаю), и во всех случаях только с помощью правил 2 и 3. Правило 1 полезно для людей, выполняющих математику на бумаге, стараясь избегать дробей.
Пример
(я делаю ненужные шаги, чтобы более наглядно продемонстрировать каждое правило)
| 2 3 3 1 | А =| 0 4 3 -3 | | 2 -1 -1 -3 | | 0 -4 -3 2 | R 2 R 3 , -α -> α (Правило 2) | 2 3 3 1 | -| 2 -1 -1 -3 | | 0 4 3 -3 | | 0 -4 -3 2 | Р 2 - Р 1 -> Р 2 (Правило 3) | 2 3 3 1 | -| 0 -4 -4 -4 | | 0 4 3 -3 | | 0 -4 -3 2 | R 2 /(-4) -> R 2 , -4α -> α (Правило 1) | 2 3 3 1 | 4| 0 1 1 1 | | 0 4 3 -3 | | 0 -4 -3 2 | р 3 - 4R 2 -> R 3 , R 4 + 4R 2 -> R 4 (Правило 3, применено дважды) | 2 3 3 1 | 4| 0 1 1 1 | | 0 0 -1 -7 | | 0 0 1 6 | Р 4 + Р 3 -> Р 3 | 2 3 3 1 | 4| 0 1 1 1 | = 4 (2 * 1 * -1 * -1) = 8 | 0 0 -1 -7 | | 0 0 0 -1 |
def echelon_form(A, размер): для я в диапазоне (размер - 1): для j в диапазоне (размер - 1, i, -1): если A[j][i] == 0: Продолжить еще: пытаться: req_ratio = A[j][i] / A[j - 1][i] # A[j] = A[j] - req_ratio*A[j-1] кроме ZeroDivisionError: # А[j], А[j-1] = А[j-1], А[j] для x в диапазоне (размер): темп = А[j][x] А [j] [х] = А [j-1] [х] A[j-1][x] = температура Продолжить для k в диапазоне (размер): A [j] [k] = A [j] [k] - req_ratio * A [j - 1] [k] вернуть А
co.
combinatorics — Найти определитель матрицы, зная определитель всех $p\times p$ подматриц?$\begingroup$
Можно ли найти определитель $n\times n$-матрицы, зная только определитель всех $p\times p$ подматриц в ней? Здесь $p\leq n$ фиксировано. Это, очевидно, верно, если $p=1,n$. Но что происходит в других случаях?
- кокомбинаторика
- линейная алгебра
- матрицы
Разделение $$(Ae_1)\клин\cdots\клин (Ae_n) = [(Ae_1)\клин\cdots\клин (Ae_p)]\клин\cdots\клин [(Ae_{n-p+1})\клин\cdots \клин (Ae_n)], $$ мы видим, что $(Ae_1)\wedge\cdots\wedge (Ae_n)$ — полиномиальная функция от миноров $p\times p$. Поскольку $(Ae_1)\wedge\dotsb\wedge (Ae_n)=(\det A)e_1\wedge\dotsb\wedge e_n$, мы выводим значение $\det A$.
Позвольте мне описать, как это работает, когда $n=4$ и $p=2$. Несовершеннолетние обозначаются $$A\binom{i\alpha}{j\beta}=a_{i\alpha}a_{j\beta}-a_{i\beta}a_{j\alpha}.