Решение систем линейных уравнений
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Одной из важнейших задач в технических приложениях и расчетах является задача решения систем линейных уравнений. В матричных обозначениях, данная задача может быть сформу-лирована следующим образом. При заданных двух матрицах A and 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, то возможны три случая:

 

1. m = n  Квадратная система. Ищется точное решение.

2. m > n Переопределенная система. Ищется решение методом наименьших квадратов.

3. m < n Недоопределенная система. Находится базовое решение с самым большим

             числом m  ненулевых компонент.

 

Оператор \ использует различные алгоритмы для решения систем линейных уравнений с раз-ными типами матриц коэффициентов. Различные случаи, которые диагностируются автома-тически по типу матрицы коэффициентов, включают:

     • Перестановки треугольных матриц

     • Симметричные, положительно определенные матрицы

     • Квадратные невырожденные матрицы

      Прямоугольные, переопределенные системы

     • Прямоугольные, недоопределенные системы

 

 

Квадратные системы

Наиболее часто встречающейся ситуацией является квадратная матрица коэффициентов A и одномерный вектор-столбец b справа, т.е. Ax = b. Решение x = A\b имеет при этом тот же ра-змер, что и вектор b. Например,

x = A\ u

                                                        

                                                               x =

10

-12

5

где матрица А  есть приведенная выше матрица Паскаля. Легко удостовериться, что 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 близка к сингулярной и сообщение об ошибке, если определено равенство нулю детерминанта матри-цы А.

 

Переопределенные системы

 

Переопределенные системы совместных линейных уравнений часто встречаются в задачах аппроксимации экспериментальных данных при помощи различных эмпирических кривых. Рассмотрим следующий гипотетический пример. Величина y измеряется при различных зна-чениях времени t, что дает следующие результаты

 

T  y

0.0 0.82

0.3 0.72

0.8 0.63

1.1 0.60

1.6 0.55

2.3 0.50

 

Эти данные могут быть введены в MATLAB при помощи выражений:

 

t = [0 .3 .8 1.1 1.6 2.3]';

y = [0.82 0.72 0.63 0.60 0.55 0.50]';

 

Данные могут быть аппроксимированы при помощи убывающей экспоненциальной функ-ции.

 

y(t) = c1 + c2 e-t

 

 Это уравнение показывает, что вектор y может быть представлен в виде линейной комбина-ции двух векторов, один из которых является постоянным вектором, содержащим все едини-цы, а второй вектор имеет компоненты e-t. Неизвестные коэффициенты c1 и c2 могут быть найдены подгонкой кривых по методу наименьших квадратов, которая основана на миними-зации суммы квадратов отклонений экспериментальных данных от модели. Мы имеем шесть уравнений с двумя неизвестными, представленными 6х2 матрицей

 

E = [ ones( size( t)) exp(- t)]

                                              E =

1.0000 1.0000

1.0000 0.7408

1.0000 0.4493

1.0000 0.3329

1.0000 0.2019

1.0000 0.1003

Решение методом наименьших квадратов находится при помощи оператора \ :

 

c = E\ y

                                                            c =

0.4760

0.3413

 

Иными словами, подгонка методом наименьших квадратов дает

 

y( t) = 0.476 + 0.3413 e- t

 

Следующие выражения оценивают модель при равномерно распределенных моментах време-ни (с шагом 0.1), а затем строят график вместе с результатами экспериментальных данных.

 

                                                  T = (0 : 0.1 : 2.5)';

Y = [ones(size(T)) exp(-T)]*c;

                                                   plot(T, Y, '-', t, y, 'o')

 

Можно видеть, что значения E*c не совсем точно совпадают со значениями эксперименталь-ных данных y, но эти отклонения могут быть сравнимы с ошибками измерений.

Прямоугольная матрица A называется матрицей неполного ранга, если ее столбцы линейно-независимы. Если матрица  A имеет неполный ранг, то решение AX = B не является единст-венным. Оператор \ при этом выдает предупреждающее сообщение и определяет основное  решение, которое дает минимально возможное число ненулевых решений.

Недоопределенные системы

Недоопределенные системы линейных уравнений содержат больше неизвестных чем урав-нений. Когда они сопровождаются дополнительными ограничениями, то становятся сферой изучения линейного программирования. Сам по себе, оператор \ работает только с системой без ограничений. При этом решение никогда не бывает единственным. MATLAB находит ос-новное решение, которое содержит по меньшей мере m ненулевых компонент (где m - число уравнений), но даже это решение может быть не единственным. Ниже приводится пример, где исходные данные генерируются случайным образом.

R = fix (10* rand(2,4))

                                                      R =

6 8 7 3

3 5 4 1

b = fix (10*rand(2,1))

                                                       b =

1

2

Система уравнений  Rx = b содержит два уравнения с четырьмя неизвестными. Поскольку матрица коэффициентов R содержит небольшие по величине целые числа, целесообразно представить решение в формате rational (в виде отношения двух целых чисел). Частное ре-шение представленное в указанном формате есть:

 

p = R\ b

                                                                 p =

0

5/7

0

-11/7

Одно из ненулевых решений есть p(2), потому что второй столбец матрицы R имеет наи-большую норму. Вторая ненулевая компонента есть p(4) поскольку четвертый столбец матрицы R становится доминирующим после исключение второго столбца (решение нахо-дится методом QR-факторизации с выбором опорного столбца).

 

 

Дата: 2019-05-28, просмотров: 222.