
Практикум 5. Матрицы и определители
Матрицы. Создание матриц в MATLAB. Операции над матрицами. Операции над элементами матриц. Определитель матрицы. |
1. Способы задания матриц
Матрицей размерности
называется прямоугольная таблица,
состоящая из n строк
и m столбцов. Традиционно
в математике эту таблицу заключают в
круглые скобки. Например,
- матрица размерности
;
Если матрица имеет размер
,
т.е. состоит только из одной строки, то
ее называют вектором-строкой. Например,
- матрица размерности
,
т.е. вектор-строка.
Если матрица имеет размер
,
т.е. состоит только из одного столбца,
то ее называют вектором-столбцом.
Например,
- матрица размерности
,
т.е. вектор-столбец.
Если матрица имеет размер
,
т.е. состоит из одного столбца и одной
строки, то ее называют скаляром. Например,
- матрица размерности
,
т.е. скаляр.
MATLAB поддерживает несколько способов ввода матриц:
Ввод полного списка элементов матрицы.
Генерация матрицы с заданными свойствами, используя встроенные функции.
Загрузка матрицы из текстового или двоичного файла.
Задание матрицы в m файле с помощью скрипта.
Первый способ был подробно рассмотрен в работе 1. Матрица задается путем перечисления ее элементов с использованием следующих основных правил:
Элементы строки матрицы отделяются пробелами или запятыми.
Строки матрицы отделятся точкой с запятой.
Весь список элементов матрицы окружается квадратными скобками.
Пример 1.
>> A=[1 2 3 4;0 1 3 2]
A =
1 2 3 4
0 1 3 2
Второй способ: MATLAB содержит ряд встроенных функций для создания основных (наиболее часто используемых) матриц специального вида. Список функций приведен в таблице 1.
Таблица 1. Встроенные функции генерации матриц. |
|
Реализующая функция |
Описание |
zeros (n) zeros (n,m) |
Создает матрицу размера n x m, все элементы которой равны 0. Функция с одним параметров создает квадратную матрицу размера n x n. |
ones (n) ones (n,m) |
Создает матрицу размера n x m, все элементы которой равны 1. Функция с одним параметров создает квадратную матрицу размера n x n. |
eye (n) eye (n, m) |
Функция с одним параметром создает единичную матрицу размера n x n, элементы главной диагонали которой равны 1, остальные элементы равны 0. Функция с двумя параметрами создает прямоугольную матрицу размера n x m. Главная диагональ для прямоугольной матрицы – элементы с совпадающими номерами строки и столбца. |
diag ([a1 … an]) |
Создает квадратную диагональную матрицу на главной диагонали которой расположены элементы заданные в скобках, остальные элементы матрицы равны 0. Размер матрицы определяется числом элементов. |
diag ([a1 … an],k) |
Создает квадратную матрицу размерности n + abs(k), где n – число элементов массива (первый параметр). Элементы массива размещаются по правилу: элемент с индексом i в создаваемой матрице помещается на место элемента матрицы с индексами (i, i+k). Все остальные элементы задаются равными 0. |
rand (n) rand (n,m) |
Создает матрицу размера n x m со случайными значениями элементов из диапазона от 0 до 1. Функция с одним параметром создает квадратную матрицу размера n x n. |
magic (n) |
Создает магический квадрат размера n x n, т.е. матрицу с целыми элементами от 1 до n^2, у которой суммы элементов по строкам, столбцам и на главной и побочной диагонали равны одному и тому-же числу. |
diag (A) |
Создает вектор-столбец, составленный из элементов главной диагонали матрицы А. |
tril (A) |
Создает нижнюю треугольную матрицу, составленную из элементов A (т.е. матрицу у которой элементы на и под главной диагональю совпадают с соответствующими элементами матрицы А, элементы выше главной диагонали равны 0) |
triu (A) |
Создает верхнюю треугольную матрицу, составленную из элементов A (т.е. матрицу у которой элементы на и над главной диагональю совпадают с соответствующими элементами матрицы А, элементы ниже главной диагонали равны 0) |
Пример 2.
>> B=ones(2,3)
B =
1 1 1
1 1 1
>> C=eye(3)
C =
1 0 0
0 1 0
0 0 1
>> D=diag([1 2 3], 2)
D =
0 0 1 0 0
0 0 0 2 0
0 0 0 0 3
0 0 0 0 0
0 0 0 0 0
>> E=tril(B)
E =
1 0 0
1 1 0
Очень часто возникает необходимость создать матрицу со случайными значениями из диапазона [a; b], отличного от стандартного диапазона [0; 1]. В этом случае, осуществляют дополнительное преобразование полученной матрицы к нужному диапазону с помощью операции вида
>> a + (b-a) * rand(n, m)
Для создании случайной матрицы, состоящей из целых чисел, результат предыдущей команды дополнительно округляют с помощью встроенной функции round. Начиная с версии 2008b (в компьютерных классах эта возможность не доступна) в MATLAB появилась функция randi, которая позволяет создать целочисленную случайную матрицу используя одну команду.
Пример 2 (продолжение).
>> F=-3+7*rand(3) % матрица со случайными значениями от -3 до 4
F =
2.7031 3.3936 -1.0505
3.3405 1.4265 0.8282
-2.1111 -2.3172 3.7025
>> G=round(1+10*rand(2,4)) % матрица со случайными целыми значениями от 1 до 11
G =
11 11 6 2
3 11 9 5
Упражнение 1.
1) Задать матрицу размерностью
из нулей.
2) Задать квадратную диагональную матрицу с последовательными элементами от 1 до 5 на главной диагонали.
3) Задать матрицу размера 4 x 6 со случайными значениями элементов от -10 до 20.
4) Задать матрицу