МАТЛАБ
Лабораторная работа 1
Матрицы и векторы
Задание
1. Создать: А – квадратную матрицу пятого порядка; В – прямоугольную матрицу 3 х 5; С – прямоугольную матрицу 5 х 3; D – вектор-строку 5 порядка; E – вектор-столбец 5 порядка.
Можно использовать команды >> A=rand(n,n);
>> В= rand(n,m);.
2. Из матрицы А выделить элемент A(I,J); из матрицы В выделить эле-мент B(I1,J1); из матрицы C выделить элемент C(I2,J2); из строки D выделить элемент с номером J3; из вектора Е выделить элемент с номером I3. Номера I,J,… выбрать произвольно.
3. Выделение подматриц из исходных матриц
3.1 Из матрицы A выделить второй столбец
3.2.Из матрицы А выделить третью строку
3.3.Из матрицы А выделить подстолбец четвертого столбца с номером строки от2 до 4.
3.4. Из матрицы А выделить подстроку номер 4 с номерами столбцов от 2 до 5.
3.5. Из матрицы А выделить подматрицу с номерами строк от 2 до 4 и номерами столбцов от 3 до 5.
3.6. Из матрицы А вычеркнуть 3-ю строку
3.7. Из матрицы А вычеркнуть 2-й столбец
3.8. Из матрицы А вычеркнуть второй и третий столбец
3.9. Из матрицы А вычеркнуть 2 и 3-ю строку
4. Объединение матриц
4.1 Выполнить вертикальное объединение матриц A,C,E в различных вариантах
4.2. Выполнить горизонтальное объединение матриц A, B, D
5. Умножение и деление матриц
Перемножить матрицы A и E. I-й столбец матрицы A умножить на вектор E (поэлементно). J-й столбец матрицы A поделить на вектор E (поэлементно). I-ю строку матрицы A умножить и поделить на строку D (поэлементно).
6. Степени матрицы.
Возвести матрицу A в положительную, отрицательную, дробную положительную и отрицательную степень. Выполнить поэлементное возведение в степень матриц A,B,C,D,E (положительную, отрицательную, дробную положительную и отрицательную степень).
7. Операции с матрицами
Выполнить следующие операции для матрицы A: транспонирование, обращение, определение собственных чисел, построение характеристическо-го полинома, горизонтальная и вертикальная зеркальная перестановка, вычисление произведения элементов матрицы, вычисление суммы элементов матрицы A.
8. Для матриц A,B,C,D,E вычислить функции sqrt, exp, log; выполнить определение размерности ([M,N]=size(H).
9. Сформировать специальные матрицы eye, ones, zeros, magic, rand,
10. Сформировать матрицу случайных чисел с нормальным распределением, извлечь ее диагональ и заменить единицами. Составить трех-диагональную матрицу с единичными 1-й и (-1)-й диагоналями, нулевыми внедиагональными компонентами и элементами главной диагонали изменяющимися от (-3) до 3
См.: https://old.exponenta.ru/soft/matlab/potemkin/book2/chapter5/diag.asp
Пояснения и примеры
https://helpiks.org/7-65390.html Задание векторов и матриц. Деление (правое и левое)
https://helpiks.org/7-65391.html Создание новых векторов и матриц на основе имеющихся.
https://old.exponenta.ru/soft/matlab/potemkin/book2/chapter5/contens.asp Массивы, матрицы и операции с ними
Способы задания векторов
Вектор – это одномерный массив данных. Вектор в MATLAB (ML) – это матрица из одного столбца или одной строки. Вектор может быть вектором-столбцом или вектором-строкой.
Для задания вектора в системе ML можно воспользоваться одним из приведенных ниже способов.
1. Можно задать значения вектора поэлементно, записав:
<имя пер.>=[<значение1> <значение2> ….<значениеN>]
Например,
>>P=[3 5 7 12]
Значения элементов записываются через пробел или через запятую.
В результате выполнения этой команды создается вектор-строка:
P =
3 5 7 12
Если записать:
P=[3 5 4.15e-5 12]
получим:
P =
3.0000 5.0000 0.0000 12.0000
Выводится 0, т.к. по умолчанию установлен формат Short. Для вывода с большей точностью необходимо установить другой формат отображения.
Если при задании вектора значения элементов разделить точкой с запятой, то получим вектор-столбец:
<<A=[1; 2; 3]
A=
Элементы вектора можно задавать выражениями. Например,
>>B=[5+5^2 4-1 2*4-2]
B =
30 3 6
В таком случае элементы вектора для большей наглядности лучше разделять запятой.
B=[5+5^2, 4-1, 2*4-2]
B =
30 3 6
2. Если элементы вектора являются арифметической прогрессией, то можно задать вектор так:
<имя пер.>=<нач. значение>:<шаг>:<конечное значение>
Например,
>> X=0:4: 25
В результате будет сформирован вектор со значениями:
X =
0 4 8 12 16 20 24
Шаг должен быть всегда больше нуля. Если шаг равен единице, то его можно не указывать:
>>Х = 1: 5
X =
1 2 3 4 5
Чтобы изменить форму вектора (в данном случае из вектора-строки получить вектор-столбец), можно использовать операцию транспонирования.
Для этого надо записать Х’ – тогда вектор примет форму столбца.
Например,
>> Х=X'
Х =1
2
3
4
5
3. Также для формирования арифметической прогрессии можно использовать функцию linspace:
linspace (<нач. значение>,<кон. значение>,<кол. значений>)
Например,
>>B=linspace(0,pi,5)
B =
0 0.7854 1.5708 2.3562 3.1416
Для доступа к элементу вектора необходимо указать его имя и в круглых скобках номер элемента. Например, D(3). Для обращения к последнему элементу вектора, если неизвестна его длина, можно записать: D(length(D)) или D(end).
length – функция, определяющая размер вектора.
Задание матриц
При задании матриц числовые данные строк записываются через пробел или через запятую. Элементы разных строк разделяются знаком «точка с запятой» (;) или записываются каждая с новой строки (Shift+Enter).
Зададим матрицу:
>> A=[1 2 3; 4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
Или
>> A=[1 2 3
4 5 6
7 8 9]
A =
1 2 3
4 5 6
7 8 9
Как мы уже знаем, обращение к какому-либо элементу матрицы будет иметь следующий вид: <имя> (<индексы через запятую>), например, А (2,3).