Начало:
Предыдущий урок:
На уроке Математика для чайников. Глава 10. Линейная алгебра мы изучили основы линейной алгебры. В частности, узнали, что такое вектор, что такте матрица, как матрицы можно складывать и перемножать. Изучили, что такое система линейных уравнений и как ее решать при помощи матричных исчислений. Кратко напомню матричный метод решения системы линейных уравнений:
Итак, у нас есть вот какая вот система линейных уравнений:
Ее можно представить в матричной форме:
Или, если сокращенно:
Откуда:
Как выводится эта формула, вы можете прочитать в Математика для чайников. Глава 10. Линейная алгебра, а мы, тем временем, пойдем дальше и узнаем, как найти это самое «A в минус первой степени». Напомню, что это – обратная матрица. Для того, чтобы научиться вычислять обратную матрицу, надо сначала научиться вычислить определитель матрицы (или детерминант).
По своей сути определить матрицы – это ее модуль. Он часто так и записывается, как модуль:
Что такое модуль для одного числа, вы, наверное, помните. Это значения числа, если впереди убрать знак. Для положительного числа – само число, для отрицательного – просто убираем минус. То есть
На самом деле, число – это, по своей сути, матрица из одного элемента, то есть, его определитель равен модулю этого единственного элемента:
Теперь перейдем к матрице с двумя строками и двумя столбцами. В этом случае определитель будет вычисляться вот по такой формуле:
или немножко другой вариант формулы:
То есть, мы перемножаем элементы по первой диагонали (начинается влево и вверх и идет вправо и вниз) и вычитаем перемноженные элементы по второй диагонали (начинается справа сверху и идет влево вниз). Геометрический смысл такого вот «финта» заключается в том, что мы вычисляем площадь параллелограмма, который описывает данная матрица:
Давайте докажем, что площадь параллелограмма, действительно ad-bc. Данный параллелограмм вписан в прямоугольник, площадь которого (a+c)(b+d):
Для того, чтобы найти площадь параллелограмма, вычтем из площади прямоугольника все лишнее:
Определим для начала площади тех фигур, которые мы исключаем:
Прямоугольник 1:
Треугольник 2:
Треугольник 3:
Прямоугольник 4:
Треугольник 5:
Треугольник 6:
Теперь вычислим площадь параллелограмма:
Что и требовалось доказать.
Теперь перейдем к матрицам 3 на 3. В этом случае нам необходимо разбить ее на три специальные подматрицы, которые образуются, если из матрицы вычеркнуть один столбец и одну строку. Мы будем вычеркивать первую строку, а столбцы, соответственно, первый, второй и третий. У каждой из подматриц мы посчитаем определитель (определитель такой подматрицы называется минор), а потом мы умножим первый минор на элемент первой строки и первого столбца, вычтем второй минор, умноженный на элемент первой строки и второго столбца и прибавим третий минор, умноженный на элемент первой строки и третьего столбца.
И так, вот наша матрица:
А вот ее подматрицы:
Таким образом, определитель будет вычисляться по формуле:
Ну, и вишенка на торте, определитель для матрицы любого размера n на n:
где M – это минор (определитель подматрицы, которая образуется после вычеркивания из матрицы строки и столбца).
По сути, мы берем первую строку матрицы, и на ее основе считаем определитель. То есть, мы прибавляем и вычитаем миноры, умноженные на элементы этой строки, и знаки «+» и «-» просто чередуются. Для определения минора нам потребуется применить тот же самый алгоритм уже к подматрице. По сути, у нас получиться куча таких вот вложенных друг в друга циклов расчета. У айтишников это называется рекурсивный алгоритм (рекурсия).
Вы, наверное, уже обратили внимание, что мы можем посчитать определитель только квадратной матрицы. В этом тоже есть глубокий смысл. Один из таких смыслов, что мы не сможет решить через матрицы систему уравнений, где количество неизвестных не равно количеству уравнений (тогда матрица будет не квадратная и у нее не получиться вычислить определитель). Действительно, систему уравнений, если количество переменных не равно количеству неизвестных нельзя вот так вот взять и однозначно решить. Если неизвестных больше – то нет однозначного решения, тут мы имеем дело с неопределенностью. Например:
Мы можем, например, попытаться выразить y через x и z:
Упростим:
Подставим z:
То есть, мы решили уравнение не полностью, у нас все равно остались неизвестные. Кстати, давайте сразу проверим, правильно ли мы его решили:
Как видим, решили правильно, но получили неоднозначность. В числах, как вы поняли, решить не получится.
А что, если наоборот, у нас уравнений больше чем переменных. В этом случае у нас есть два варианта:
1. Решение нет (скорее всего)
2. Систему можно упросить до количества уравнений, равное количеству неизвестных.
Рассмотрим пример:
Мы можем выразить y:
У нас получается, что неизвестная x равна сразу двум разным значениям. Но так не бывает! То есть, тут решения нет: в системе уравнений обнаружено противоречие.
Рассмотрим другой пример:
Решаем:
У нас из двух уравнений выводиться один и тот же x. Значит, одно из них (любое!) можно просто вычеркнуть. Например, третье:
И теперь мы можем решить эту систему уравнений:
Проверим:
Все решено верно.
Вернемся, однако, к определителю. Как я уже говорил, определитель нам нужен, чтобы посчитать обратную матрицу. А считается она вот по такой формуле:
Что такое det(A) вы уже знаете – это определитель матрицы, мы его только что разобрали. Теперь разберемся с adj(A). А это у нас так называемая присоединенная матрица. Она получается из алгебраических дополнений для соответствующих элементов транспонированной матрицы.
То есть, пусть у нас есть вот такая вот матрица:
Тогда присоединенная матрица будет выглядеть так:
Где Aij – это как раз и есть алгебраическое дополнение.
Разберемся, что такое алгебраическое дополнение. А это минор, умноженный на минус единицу в степени суммы номера столбца и строки. Что такое минор я уже говорил, но напомню – это определитель подматрицы, которая образуется после вычеркивания из матрицы строки и столбца.
И так, алгебраическое дополнение мы можем выразить вот такой вот формулой:
Математический смысл алгебраического дополнения состоит в том, что это коэффициент, с которым данный элемент входит в определитель матрицы.
Таким образом, для того, чтобы найти обратную матрицу, нужно воспользоваться следующим алгоритмом:
1. Заменить каждый элемент матрицы на его алгебраическое дополнение.
2. Транспонировать полученную матрицу.
3. Каждый элемент полученной матрицы разделить на определитель исходной матрицы.
Теперь рассмотрим пример. Решим систему уравнений:
Запишем уравнение в матричном виде:
Согласно формуле
Решением данного уравнения будет матрица:
Для начала вычислим:
Находим алгебраические дополнения:
В итоге у нас получается вот такая вот матрица:
Транспонируем ее:
Теперь вычислим определитель исходной матрицы (обратите внимание, что для вычисления определителя мы можем использовать рассчитанные ранее алгебраические дополнения):
Теперь мы можем найти обратную матрицу:
Оставим матрицу в таком виде, и умножаем ее на вектор Y:
Таким образом, у нас получается:
Проверим найденное решение:
Как видим, решение верное.
Надо сказать, что не все системы можно решить таким вот способом, даже если решение есть. Это связано с тем, что определитель матрицы может оказаться нулем. А на нуль делить нельзя, поэтому мы не сможем посчитать обратную матрицу. Приведу пример:
Решением данной системы является вектор столбец:
Можно, кстати, проверить:
Теперь посчитаем определитель:
Вычислим определители подматриц:
Находим определитель:
Как видите, решение у системы уравнений есть, а решить этим методом его нельзя. Что делать? Решать другими методами, но о них я расскажу в будущих уроках.