Вычисление определителя

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Определитель)
(Определитель)
Строка 106: Строка 106:
'''Пример.''' Вычислите определитель матрицы [[Изображение:22.png‎]].
'''Пример.''' Вычислите определитель матрицы [[Изображение:22.png‎]].
-
'''Решение.''' Первую строку оставляем без изменения. Ко второй строке прибавляем первую, умноженную на число : [[Изображение:23.png‎]]
+
'''Решение.''' Первую строку оставляем без изменения. Ко второй строке прибавляем первую, умноженную на число -<tex> -\frac{3}{2} </tex>: [[Изображение:23.png‎]]
-
Определитель не меняется. К третьей строке прибавляем первую, умноженную на число : [[Изображение:24.png‎]]
+
Определитель не меняется. К третьей строке прибавляем первую, умноженную на число <tex> -\frac{-4}{2} = 2 </tex>: [[Изображение:24.png‎]]
-
Определитель не меняется. К четвертой строке прибавляем первую, умноженную на число : [[Изображение:25.png‎]]
+
Определитель не меняется. К четвертой строке прибавляем первую, умноженную на число <tex> -\frac{-6}{2} = 3 </tex>: [[Изображение:25.png‎]]
Определитель не меняется. В результате получаем [[Изображение:26.png‎]]
Определитель не меняется. В результате получаем [[Изображение:26.png‎]]
Строка 121: Строка 121:
-
Ответ. .
+
Ответ. <tex> |A| = 497 </tex>.
=== Обратная матрица ===
=== Обратная матрица ===

Версия 18:25, 20 октября 2008

Название статьи необходимо изменить. Текст статьи нуждается в существенной переработке (см. Обсуждение).--Strijov 12:53, 20 октября 2008 (MSD)


Содержание

Постановка задачи

Задание подразумевает знакомство пользователя с основными понятиями численных методов, такими как определитель и обратная матрица, и различными способами их вычислений. В данном теоретическом отчете простым и доступным языком сначала вводятся основные понятия и определения, на основании которых проводится дальнейшее исследование. Пользователь может не иметь специальных знаний в области численных методов и линейной алгебры, но с легкостью сможет воспользоваться результатами данной работы. Для наглядности приведена программа вычисления определителя матрицы несколькими методами, написанная на языке программирования C++. Программа используется как лабораторный стенд для создания иллюстраций к отчету. А также проводится исследование методов для решения систем линейных алгебраических уравнений. Доказывается бесполезность вычисления обратной матрицы, поэтому в работе приводится более оптимальные способы решения уравнений не вычисляя ее. Рассказывается почему существует такое количество различных методов вычисления определителей и обратных матриц и разбираются их недостатки. Также рассматриваются погрешности при вычислении определителя и оценивается достигнутая точность. Помимо русских терминов в работе используются и их английские эквиваленты для понимания, под какими названиями искать численные процедуры в библиотеках и что означают их параметры.

Основные определения и простейшие свойства

Определитель

Введем определение определителя квадратной матрицы любого порядка. Это определение будет рекуррентным, то есть чтобы установить, что такое определитель матрицы порядка  n , нужно уже знать, что такое определитель матрицы порядка n - 1. Отметим также, что определитель существует только у квадратных матриц.

Определитель квадратной матрицы  A будем обозначать  |A| или det  A .


Определение 1. Определителем квадратной матрицы Изображение:1.png‎ второго порядка называется число Изображение:2.png‎.

Определителем Изображение:3.png‎ квадратной матрицы порядка  n ,  n \geq 3 , называется число Изображение:4.png‎

где  M_k - определитель матрицы порядка  n - 1 , полученной из матрицы  A вычеркиванием первой строки и столбца с номером  k .

Для наглядности запишем, как можно вычислить определитель матрицы четвертого порядка: Изображение:5.png‎

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

Замечание. В определении 1 было бы точнее сказать, что определитель есть функция, определенная на множестве квадратных матриц порядка и принимающая значения в множестве чисел.

Замечание. В литературе вместо термина "определитель" используется также термин "детерминант", имеющий тот же самый смысл. От слова "детерминант" и появилось обозначение det  A .


Рассмотрим некоторые свойства определителей, которые сформулируем в виде утверждений.

Утверждение 1. При транспонировании матрицы определитель не меняется, то есть  |A^T| = |A| .

Утверждение 2. Определитель произведения квадратных матриц равен произведению определителей сомножителей, то есть  |AB| = |A||B| .

Утверждение 3. Если в матрице  A поменять местами две строки, то ее определитель сменит знак.

Утверждение 4. Если матрица  A имеет две одинаковые строки, то ее определитель равен нулю.

В дальнейшем нам потребуется складывать строки и умножать строку на число. Эти действия над строками (столбцами) мы будем выполнять так же, как действия над матрицами-строками (матрицами-столбцами), то есть поэлементно. Результатом будет служить строка (столбец), как правило, не совпадающая со строками исходной матрицы. При наличии операций сложения строк (столбцов) и умножения их на число мы можем говорить и о линейных комбинациях строк (столбцов), то есть суммах с числовыми коэффициентами.

Утверждение 5. Если строку матрицы умножить на число  \alpha , то ее определитель умножится на это число.

Утверждение 6. Если матрица содержит нулевую строку, то ее определитель равен нулю.

Утверждение 7. Если одна из строк матрицы равна другой, умноженной на число (строки пропорциональны), то определитель матрицы равен нулю.

Утверждение 8. Пусть в матрице  A i-ая строка имеет вид  (p_1 + q_1, p_2 + q_2 ... p_n + q_n) . Тогда  |A| = |A_p| + |A_q| , где матрица  A_p получается из матрицы  A заменой i-ой строки на строку  (p_1 p_2 ... p_n) , а матрица  A_q - заменой i-ой строки на строку  (q_1, q_2 ... q_n) .

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

Утверждение 10. Если одна из строк матрицы является линейной комбинацией других ее строк, то определитель матрицы равен нулю.


Определение 2. Алгебраическим дополнением к элементу  a_{ij} матрицы  A называется число, равное  (-1)^{i+j} * M_{ij} , где  M_{ij} - определитель матрицы, полученной из матрицы вычеркиванием i-ой строки и j-ого столбца. Алгебраическое дополнение к элементу  a_{ij} матрицы  A обозначается  A_{ij} .

Пример. Пусть Изображение:7.png‎. Тогда Изображение:8.png‎ Изображение:9.png‎

Замечание. Используя алгебраические дополнения, определение 1 определителя можно записать так: Изображение:10.png‎

Утверждение 11. Разложение определителя по произвольной строке.

Для определителя матрицы  A справедлива формула Изображение:11.png‎

Пример. Вычислите Изображение:12.png‎.

Решение. Воспользуемся разложением по третьей строке, так выгоднее, поскольку в третьей строке два числа из трех - нули. Получим Изображение:13.png‎

Утверждение 12. Для квадратной матрицы  A порядка  n при  j \neq k выполнено соотношение Изображение:14.png‎.

Утверждение 13. Все свойства определителя, сформулированные для строк (утверждения 1 - 11), справедливы и для столбцов, в частности, справедливо разложение определителя по j-ому столбцу Изображение:15.png‎ и равенство Изображение:16.png‎ при  j \neq k .

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

Следствие. Определитель единичной матрицы равен единице,  |E| = 1 .

Вывод. Перечисленные выше свойства позволяют находить определители матриц достаточно высоких порядков при сравнительно небольшом объеме вычислений. Алгоритм вычислений следующий.

Алгоритм создания нулей в столбце. Пусть требуется вычислить определитель  A порядка  n . Если  a_{11} , то поменяем местами первую строку и любую другую, в которой первый элемент не нуль. В результате определитель  A , будет равен определителю новой матрицы с противоположным знаком. Если же первый элемент каждой строки равен нулю, то матрица  A имеет нулевой столбец и по утверждениям 1, 13 ее определитель равен нулю.

Итак, считаем, что уже в исходной матрице  a_{11} \neq 0 . Первую строку оставляем без изменений. Прибавим ко второй строке первую строку, умноженную на число  (-\frac{a_{21}}{a_{11}}) . Тогда первый элемент второй строки будет равен Изображение:17.png‎.

Остальные элементы новой второй строки обозначим  a^{(1)}_{2k} ,  k = 2, 3, ... , n . Определитель новой матрицы по утверждению 9 равен  |A| . Первую строку умножим на число  (-\frac{a_{31}}{a_{11}}) и прибавим к третьей. Первый элемент новой третьей строки будет равен Изображение:18.png‎

Остальные элементы новой третьей строки обозначим  a^{(1)}_{3k} ,  k = 2, 3, ... , n . Определитель новой матрицы по утверждению 9 равен  |A| .

Процесс получения нулей вместо первых элементов строк продолжим дальше. Наконец, первую строку умножим на число  (-\frac{a_{n1}}{a_{11}}) и прибавим к последней строке. В результате получается матрица, обозначим ее  A^{(1)} , которая имеет вид Изображение:19.png‎

причем  |A| = |A^{(1)}| . Для вычисления определителя матрицы  A^{(1)} используем разложение по первому столбцу Изображение:20.png‎

Так как  (-1)^{1+1} = 1 , то Изображение:21.png‎

В правой части стоит определитель матрицы порядка  n - 1 . К нему применим тот же алгоритм, и вычисление определителя матрицы сведется к вычислению определителя матрицы порядка  n - 2 . Процесс повторяем до тех пор, пока не дойдем до определителя второго порядка, который вычисляется по определению.

Если матрица  A не обладает какими-то специфическими свойствами, то заметно уменьшить объем вычислений по сравнению с предложенным алгоритмом не удается. Еще одна хорошая сторона этого алгоритма - по нему легко составить программу для компьютера для вычисления определителей матриц больших порядков. В стандартных программах вычисления определителей используется этот алгоритм с не принципиальными изменениями, связанными с минимизацией влияния ошибок округления и погрешностей входных данных при вычислениях компьютера.

Пример. Вычислите определитель матрицы Изображение:22.png‎.

Решение. Первую строку оставляем без изменения. Ко второй строке прибавляем первую, умноженную на число - -\frac{3}{2} : Изображение:23.png‎

Определитель не меняется. К третьей строке прибавляем первую, умноженную на число  -\frac{-4}{2} = 2 : Изображение:24.png‎

Определитель не меняется. К четвертой строке прибавляем первую, умноженную на число  -\frac{-6}{2} = 3 : Изображение:25.png‎

Определитель не меняется. В результате получаем Изображение:26.png‎

По тому же алгоритму считаем определитель матрицы порядка 3, стоящий справа. Первую строку оставляем без изменений, ко второй строке прибавляем первую, умноженную на число Изображение:27.png‎: Изображение:28.png‎

К третьей строке прибавляем первую, умноженную на число Изображение:29.png‎: Изображение:30.png‎

В результате получаем Изображение:31.png‎


Ответ.  |A| = 497 .

Обратная матрица

Вычисление определителя и обратной матрицы с помощью метода Гаусса

Прагматика

Классификация методов

Обращение матрицы методом Гаусса

Вычисление определителя методом триангуляции

Примеры работы алгоритма

Руководство пользователя

Руководство программиста

Литература

  1. http://e-lib.gasu.ru/eposobia/metody/
  2. http://www.exponenta.ru/educat/systemat/slivina/lection/lection2/lection2.asp
  3. http://elib.ispu.ru/library/math/sem1/index.html
  4. Киселёв В.Ю., Пяртли А.С., Калугина Т.Ф. Высшая математика.
  5. Боглаев Ю.П. Вычислительная математика и программирование. - М., Высшая школа, 1990, 544с.


См. также