Одной из важнейших задач в технических приложениях и расчетах является задача решения систем линейных уравнений. В матричных обозначениях, данная задача может быть сформу-лирована следующим образом. При заданных двух матрицах Aand B, существует ли такая единственная матрица X, что AX = Bили XA = B?
Для наглядности рассмотрим одномерный пример. Имеет ли уравнение
7x = 21
единственное решение? Ответ, разумеется, да. Это уравнение имеет единственное решение x = 3. Решение может быть легко получено обычным делением.
x = 21/7 = 3
Решение при этом обычно не состоит в определении обратной величины от числа 7 (т.е. ве-личины 7-1 = 0.142857…), и последующим умножением числа 7-1 на число 21. Это было бы более трудоемко и, если число 7-1 представлено конечным числом цифр (разрядов), менее точно. Аналогичные рассуждения применимы и к системам линейных алгебраических уравнений с более чем одной неизвестной; MATLAB решает такие уравнения без вычисле-ния обратной матрицы. Хотя это и не является стандартным математическим обозначением, система MATLAB использует терминологию, связанную с обычным делением в одномерном случае, для описания общего случая решения совместной системы нескольких линейных уравнений. Два символа деления / (косая черта (по английски - slash)) и \ (обратная косая че-рта (backslash)) используются в двух случаях, когда неизвестная матрица появляется слева или справа от матрицы коэффициентов:
X = A\Bобозначает решение матричного уравненияAX = B
X = B/Aобозначает решение матричного уравненияXA = B.
Вы можете представлять себе это как процесс «деления» обеих частей уравнения AX = Bили XA = Bна A. Матрица коэффициентов A всегда находится в «знаменателе».Условие сов-местимости размерностей для X = A\B требует чтобы две матрицыAи B имели одинаковое число строк. РешениеX тогда имеет такое же число столбцов как и B, а число ее строк будет равно числу столбцов A. Для X = B/A, строки и столбцы меняются ролями. На практике, ли-нейные уравнения в видеAX = Bвстречаются более часто, чем в виде XA = B. Следователь-но, обратная наклонная черта \ используется более часто, чем прямая / . Поэтому, в остав-шейся части данного раздела мы ограничимся рассмотрением оператора \ ; соответствующие свойства оператора / можно вывести из тождества
(B/A)' = (A'\B')
В общем случае не требуется, чтобы матрица коэффициентов Aбыла бы квадратной. Если A имеет размер mхn, то возможны три случая:
m = n Квадратная система. Ищется точное решение.
m > n Переопределенная система. Ищется решение методом наименьших квадратов.
m < n Недоопределенная система. Находится базовое решение с самым большим
числом m ненулевых компонент.
Оператор \ использует различные алгоритмы для решения систем линейных уравнений с раз-ными типами матриц коэффициентов. Различные случаи, которые диагностируются автома-тически по типу матрицы коэффициентов, включают:
•Перестановки треугольных матриц
•Симметричные, положительно определенные матрицы
•Квадратные невырожденные матрицы
•Прямоугольные, переопределенные системы
•Прямоугольные, недоопределенные системы
Квадратные системы
Наиболее часто встречающейся ситуацией является квадратная матрица коэффициентовA и одномерный вектор-столбец b справа,т.е. Ax = b. Решение x = A\bимеет при этом тот же ра-змер, что и вектор b. Например,
x = A\u
x =
-12
где матрица Аесть приведенная выше матрица Паскаля. Легко удостовериться, чтоA*xв точности равно вектору u(численные значения этого вектора даны выше).
ЕслиAиBявляются квадратными и имеют одинаковый размер, то X = A\Bимеет тот же ра-змер, например
X = A\B
X =
19 -3 -1
-17 4 13
6 0 -6
Легко убедиться, что A*Xв точности равно B.
Оба этих примера имеют точное решение в виде целых чисел. Это связано с тем, что в каче-стве матрицы коэффициентов была выбрана матрица Паскаля pascal(3), чей детерминант равен единице. Далее будут рассмотрены примеры влияния ошибок округления, возникаю-щих в более реальных системах.
Квадратная матрица A является сингулярной, если ее столбцы не являются линейно незави-симыми. Если A– сингулярна, то решение AX = Bили не существует, или не является един-ственным. Оператор \ , A\B, выдает предупреждающее сообщение, если матрица A близка к сингулярной и сообщение об ошибке, если определено равенство нулю детерминанта матри-цы А.