Определитель матрицы. Альтернативный взгляд.

Определитель матрицы. Альтернативный взгляд.

До последнего времени  на нашем сайте использовалась сторонняя бибилиотека расчета определителя матрицы. Несмотря на то, что считала правильно, у неё был существенный недостаток- она была очень медленной. Определитель матрицы 7*7 посчитать уже не могла и сваливалась в креш. Это сильно напрягало и автор сайта изыскивал возможность рассчитатать определитель своими силами.  Идти по проторенной дорожке и считать хотя бы по методике Гаусса, не хотелось и автор пошёл другим путём.

Толчком стало написание статьи Метод Горнера. Деление многочлена после которой автору пришла интересная мысль.

Пусть у  нас есть матрица такого вида

 1&-5&6\\2&3&0\&-2&4

Определитель этой матрицы равен -116

Представим  первую строку  как многочлен  с известными коэффициентами

x^2-5x+6=0

Один из корней этого уравнения равен 2.

Разделим каждую строку представленную в виде многочленов на x-2

Получим \frac{x^2-5x+6}{x-2}=x-3+O(0)

где O- остаток от деления. В нашем примере он равен нулю.

делим также вторую строку 

\frac{2x^2+3x+0}{x-2}=2x+7+O(14)

Делим третью строку

\frac{8x^2-2x+4}{x-2}=8x+14+O(32)

Запишем полученные коэффициенты и остаток в новую матрицу

1&-3&0\\2&7&14\\8&14&32\end{pmatrix}

Для кого то покажется удивительным, но детерминант этой матрицы также равен -116 !

Интересно не правда ли?

Давайте повторим то же самое  теперь у нас в первой строке многочлен  x^2-3x+0=0

Корень равен 3, и  после повторения всех действий что делели на первом этапе получим матрицу

1&0&0\\2&13&53\\8&38&146\end{pmatrix}

И опять же детерминант равен -116

Теперь на этом этапе мы получили возможность понизить размер матрицы, так как в первой строке стоят все нули, кроме первого значения

а значит детерминант можно  вычислить как 13&53\\38&146\end{pmatrix}

Теперь можно применить метод Горнера уже к матрице не 3*3 а всего лишь 2*2

В конечном итоге мы получим диогональную матрицу 

1&0&0\\2&13&53\\8&38&146\end{pmatrix}

где мы знаем определитель есть произведение чисел стоящих на главной диагонали то есть -116

Метод красив, но не удобен, так как при матрицах 5 и более высокого порядка нам будет необходимо рассчитывать корни полинома такого же порядка.

Поэтому для практических расчетов используется не вся матрица а только два соседних столбца, и тогда у нас получается линейное уравнение, где легко высчитывается корень, и метод Горнера  сворачивается в фактически решение Гаусса. Как бы автор этого не хотел :)

Вот пример

1&-5&6\\2&3&0\&-2&4

возьмем только два столбца 1 и 2 и применим метод Горнера разделив линейные уравнения

x-5

2x+3=0

8x-2=0

на (x-5)

получим 

1&0&6\\2&13&0\\8&38&4\end{pmatrix}

детерминант тоже равен -116

перенесем  столбец где появился 0 в правую часть и получили 

1&6&0\\2&0&13\\8&4&38\end{pmatrix}

По свойствам определителя матрицы мы получили что детерминант матрицы поменял знак и стал +116

Далее применяя второй раз такую же методику мы также получим в первой строке все нули кроме одного значения и сможем понизить размер матрицы.

Здесь вычисления намного проще. Затруднения может лишь вызвать определение - какой же знак поставить у детерминаната.

Для этого нам надо на каждом промежуточном этапе рассчитывать количество транспозиций, и если в конечном итоге количество транспозиций нечетное, то результат произведения значений на главной диагонали необходимо умножить на (-1).

Зачем же надо было делать такой крюк, что бы вернутся к фактически методике Гаусса?

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

Применение метода Горнера  к матрицам позволит нам, легко генерировать "псевдослучайные" матрицы с определенно заданным детерминантом, или превращать матрицу с вещественными коэфициентами, в матрицу с комплексными значениями при неизменном детерминанте.

Теперь примеры расчета детерминанта по такой методике. Примеров полно 3 и 4 размерных матриц, поэтому мы начнем с матриц 10 порядка

Det\begin{pmatrix}0&-7&0&0&5&0&-1&1&2&3\\4&5&1&-7&1&5&0&-5&1&0 \\15&5&0&0&-1&2&7&2&-8&2 \\-14&0&-11&0&1&1&2&2&1&-1\\-2&4&7&1&4&-7&8&-5&0&0\\-7&0&0&5&0&-1&1&2&3&4\\5&1&-7&1&5&0&0&1&0&15\\ 5&0&5&0&1&7&2&-8&2&-1 \&-11&0&1&1&2&2&1&-1&-2 \\4&1&2&3&4&3&5&0&-1&-1\end{pmatrix}=

 

Det\begin{pmatrix}-2&7&0&0&5&0&-1\\1&2&3&4&5&1&-7\\1&5&0&-5&1&0&15\\5&0&0&-1&2&7&2\\-8&2&-1&0&-11&0&1\\1&2&2&1&0&1&2\\3&-1&-3&-9&0&1&-8\end{pmatrix}=

 

Удачных расчетов!

Поиск по сайту