Лабораторна робота №2 Операції обчислення матриць та векторів. Матричні функції.
1 Мета роботи
Навчитися будувати різними методами матриці та вектори, виконувати обчислення та перетворення матриць та векторів, використовувати матричні операції та функції.
2 Завдання на лабораторну роботу
2.1 Ознайомитись зі змістом пункту 3 методичних вказівок.
2.2 Відповідно до індивідуального завдання виконати дії по створенню матриць та векторів різними засобами, а також вивченню основних перетворень, обчисленню систем рівнянь.(Додаток 2)
2.3 Скласти звіт, відповісти на контрольні питання.
3 Основні теоретичні відомості
3.1 Формування числових масивів
Використання масивів дозволяє звертатися до декількох чарунок пам’яті, використовуючи одне ім’я. У MatLab є одномірні масиви (вектори), двомірні (матриці) та багатомірні масиви.
Для формування масивів використовують операцію конкатенації, що позначається квадратними дужками [ ]. Наприклад, операція а = [2, 4, 6] формує масив
а =
4 6
Числові масиви у MatLab – елементи типу doable.
Для звернення до елементу масиву використовують операцію індексації, яка позначається круглими дужками:
а(1)
ans =
2
Значення елементу можна присвоїти так а(2) = 93. Тепер масив має вигляд
а =
93 6
У середовищі пакета немає ніякої різниці при визначенні матриці або змінної скалярного типу. Одиночна змінна трактується як матриця розмірністю (1х1).
Введення матриці:
• найпростішим способом введення матриці в середовище пакета є набір всіх її елементів з клавіатури. Елементи матриці вводяться за рядками, які відділяють один від одного символом ";" або переходом на новий рядок. Окремі елементи в рядках відділяються пробілами. Наприклад,
А = [1 2 3; 4 5 6] або А = [1 2 3
4 5 6 ]
вводить у робочу область матрицю
А =
1 2 3
4 5 6
• під час введення матриць великих розмірів вигідніше вводити матрицю за допомогою зовнішнього дискового файла. Варто зауважити, що обмін даними між програмами можна проводити за допомогою команд save (змінна буде записана у файл з розширенням .mat) та load, що забезпечує передачу даних у робочу область;
• у середовищі пакета також передбачені стандартні функції для генерації певних типів матриць (Табл. 2.1):
Таблиця 2.1 – Деякі стандартні функції для генерації певних типів матриць
Назва функції
|
Визначення генерованої матриці |
zeros
|
Матриця, всі елементи якої дорівнюють 0
|
ones
|
Матриця, всі елементи якої дорівнюють 1
|
еуе
|
Одинична матриця
|
rand
|
Матриця випадкових чисел
|
Спосіб виклику цих матриць є однаковим. Аргументом під час їх введення може бути: кількість рядків і стовпців матриці під час генерування прямокутної матриці, кількість рядків або стовпців матриці під час генерування квадратної матриці. Наприклад,
А = zeros (2,4), В = оnes (2,3), С = еуе (3), D = rand (2,5);
A =
0 0 0 0
0 0 0 0
B =
1 1 1
1 1 1
C =
1 0 0
0 1 0
0 0 1
D =
0.2028 0.6038 0.1988 0.7468 0.9318
0.1987 0.2722 0.0153 0.4451 0.4660
Якщо розмір матриці, яка буде створена внаслідок виконання певних розрахунків, є наперед відомим, то доцільним є попереднє резервування пам'яті для неї шляхом утворення спеціальної матриці. Такий підхід дозволяє уникнути збільшення розміру матриці під час проведення обчислень, що дозволяє підвищити швидкодію.
Окремим випадком матриці є вектор (матриця, що складається з одного рядка чи стовпця). Спосіб введення векторів є ідентичним введенню матриці. Окрім цього, для формування векторів у середовищі пакета передбачена ще одна можливість – генерування вектора за допомогою команди:
х = хпоч: крок: хкін
де хпоч - перший елемент вектора; крок - різниця між двома сусідніми елементами вектора, хкін - останній елемент вектора. Значення кроку може бути як додатнім так і від'ємним. У випадку, якщо значення кроку дорівнює 1, то команда для генерування вектора набуде вигляду:
х = хпоч: хкін
Наприклад,
х = 1:5
х =
1 2 3 4 5
х = 5: -2: 1
х =
5 3 1
Оператор ":" забезпечує легкий доступ до заданих рядків, стовпців чи елементів матриці. Перелік різних операцій з матрицями з використанням оператора ":" наведено в Табл. 2.2.
Таблиця 2.2 – Деякі операцій з матрицями з використанням оператора ":"
А(:,j) ,3)
|
виведення j-ї колонки матриці А .1-ї колонки маїриці А
|
А(:,j:k) 3:Ь)
|
виведення колонок A(j), A(j+1),…, A(k) матриці А колонок АО), АО+1), , а(іо маїриці Л
|
А(і,:) , • )
|
виведення i–го рядка матриці А і-і о рядка матриці Л
|
А(i:k,:) К,:)
|
виведення рядків A(i), A(i+1),…, A(k) матриці А рядків А(і), А(і+1), , А(к) магриці А
|
А(:) ;)
|
виведення всіх елементів матриці в колонку всіх елементів матриці в колонку
|
А(j:k)
|
виведення в рядок елементів матриці А, почавши від елемента з індексом j до елемента з індексом k
|
Розглянемо роботу цих операторів на таких прикладах. Нехай задана матриця А :
А=[1 2 3 4
5 6 7 8
9 10 11 12];
тоді:
А ( : , 2 )
аns = 2
6
10
A(:,2:3) ans =2 3
6 7
10 11
A(2:3,:) ans = 5 6 7 8
9 10 11 12
B = A(1:2,1:2)
B =
1 2
5 6
y = B(:)
y =
1
5
2
x = A(4:10)
x =
2 6 10 3 7 11 4
6
Ще одним спеціальним типом матриці, що може існувати в робочій області є порожня матриця. Розмірність такої матриці - 0х0 і визначається вона так А= [ ].
Звичайно пустий масив (яким є така матриця) використовують для того, щоб удалити рядки або стовпці матриць. Наприклад:
А(3, :) = [ ]; А(:, 3) = [ ];
А = 1 2 3 4 А = [1 2 4
5 6 7 8 5 6 8
9 10 12]
Інформацію про всі створені масиви у діючому робочому просторі можна отримати, виконавши команду Whos, яка дає ім’я, розмір та тип масивів (на відміну команди Who, яка дає аналогічну інформацію про звичайні змінні).