Решение систем линейных уравнений
0.0593 -1.3362 0.8580 0.5711
1.0668 0.2944 -0.6918 -1.4410
4 9 4 4 8 5 2 6 8 0
5 5 5
5 5 5
5 5 5
0 0 0 0
0 0 0 0
0 0
0 0
0 1
1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
0 0 1
0 1 0
1 0 0
Двумерные массивы случайных чисел
Единичная матрица, нулевая матрицы и матрица из единиц.
0 0.7854 1.5708 2.3562 3.1416
100 93 86 79 72 65 58 51
100 : -7 : 50
1 2 3 4 5 6 7 8 9 10
Двоеточие (Colon)
4 15 14 1 17
9 6 7 12 0
5 0 11 8 0
16 3 2 13 0
Двоеточие, : , является одним из наиболее важных операторов MATLAB-а. Оно встречается в нескольких разных формах. Выражение 1:10есть вектор-строка, содержащий целвые числа от 1до 10:
Чтобы получить неединичное приращение, нужно задать приращение. Например,
есть
а
0 : pi/4 : pi
есть
Индексы, содержащие двоеточия, допускают обращение к частям матриц. Так, выражение
F (1:k, j)
дает первые k элементов j-го столбца матрицыF.То есть,
sum(F (1:4, 4))
вычисляет, как и в примере выше, сумму элементов 4-го столбца. Но есть еще лучший путь. Двоеточие само по себе означает обращение ко всем элементам строки или столбца матрицы, а зарезервированное слово end есть обращение к последним строке или столбцу матрицы (в случае векторов-строк или столбцов слово end есть обращение к последнему элементу векто-ра). Значит,
sum(F (:, end))
вычисляет сумму элементов последнего столбца матрицы F . Ответ: ans = 34. Почему маги-ческая сумма для волшебного квадрата 4 х 4 равна 34 ? Дело в том, что если целые числа от 1 до 16 (число элементов матрицы размера 4 х 4) упорядочены в четыре группы с равными сум-мами элементов, эта сумма должна быть равна
sum(1:16)/4
что, конечно, дает ans = 34.
Единичная матрица, то есть матрица имеющая единицы на главной диагонали и нулевые ос-тальные элементы, в MATLAB-е обозначается eye, причем eye(n)есть единичная квадратная матрица размера nxn, eye(m,n)- прямоугольная единичная матрица размера mxn, аeye(size(A))есть единичная матрица, имеющая размерность матрицы A.Например,
I = eye(3)
I =
I = eye (3,5)
I =
I = eye (4,2)
I =
Нулевая матрица, то есть матрица состоящая из нулей (массив нулей), в MATLAB-е обоз-начается zeros, причем zeros (n)есть нулевая квадратная матрица размера nxn, zeros (m,n)- прямоугольная нулевая матрица размера mxn, аzeros (size(A))есть нулевая матрица имею-щая размерность матрицы A.
Z = zeros(2,4)
Z =
Наконец, матрица состоящая из единиц (массив единиц), в MATLAB-е обозначается ones, причем ones (n)есть квадратный массив единиц размера nxn, ones (m,n)– прямоугольный массив единиц размера mxn, аones (size(A))есть массив единиц, имеющий размерность матрицы A.
S = 5*ones(3, 3)
S =
Аналогично, функция randдает возможность сформировать соответствующие массивы слу-чайных чисел в диапазоне от 0 до 1, распределенных по равномерному закону, а функция randn– по нормальному закону.
N = fix(10*rand(1,10))
N =
R = randn(4,4)
R =
-0.0956 0.7143 1.2540 -0.3999
-0.8323 1.6236 -1.5937 0.6900
Одной из важнейших задач в технических приложениях и расчетах является задача решения систем линейных уравнений. В матричных обозначениях, данная задача может быть сформу-лирована следующим образом. При заданных двух матрицах 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 ненулевых компонент.
Оператор \ использует различные алгоритмы для решения систем линейных уравнений с раз-ными типами матриц коэффициентов. Различные случаи, которые диагностируются автома-тически по типу матрицы коэффициентов, включают:
•Перестановки треугольных матриц
•Симметричные, положительно определенные матрицы
•Квадратные невырожденные матрицы
•Прямоугольные, переопределенные системы
•Прямоугольные, недоопределенные системы