Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.pdf
Скачиваний:
194
Добавлен:
27.03.2015
Размер:
1.06 Mб
Скачать

R = randn(4,4)

R =

1.0668 0.2944 -0.6918 -1.4410

0.0593 -1.3362 0.8580 0.5711 -0.0956 0.7143 1.2540 -0.3999 -0.8323 1.6236 -1.5937 0.6900

Решение систем линейных уравнений

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

30

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

31

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

Переопределенные системы совместных линейных уравнений часто встречаются в задачах аппроксимации экспериментальных данных при помощи различных эмпирических кривых. Рассмотрим следующий гипотетический пример. Величина 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

32

Следующие выражения оценивают модель при равномерно распределенных моментах времени (с шагом 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 - число уравнений), но даже это решение может быть не единственным. Ниже приводится пример, где исходные данные генерируются случайным образом.

33

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]