Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робот №2.doc
Скачиваний:
2
Добавлен:
23.09.2019
Размер:
93.18 Кб
Скачать

7

Лабораторна робота №2 Операції обчислення матриць та векторів. Матричні функції.

1 Мета роботи

Навчитися будувати різними методами матриці та вектори, виконувати обчислення та перетворення матриць та векторів, використовувати матричні операції та функції.

2 Завдання на лабораторну роботу

2.1 Ознайомитись зі змістом пункту 3 методичних вказівок.

2.2 Відповідно до індивідуального завдання виконати дії по створенню матриць та векторів різними засобами, а також вивченню основних перетворень, обчисленню систем рівнянь.(Додаток 2)

2.3 Скласти звіт, відповісти на контрольні питання.

3 Основні теоретичні відомості

3.1 Формування числових масивів

Використання масивів дозволяє звертатися до декількох чарунок пам’яті, використовуючи одне ім’я. У MatLab є одномірні масиви (вектори), двомірні (матриці) та багатомірні масиви.

Для формування масивів використовують операцію конкатенації, що позначається квадратними дужками [ ]. Наприклад, операція а = [2, 4, 6] формує масив

а =

  1. 4 6

Числові масиви у MatLab – елементи типу doable.

Для звернення до елементу масиву використовують операцію індексації, яка позначається круглими дужками:

а(1)

ans =

2

Значення елементу можна присвоїти так а(2) = 93. Тепер масив має вигляд

а =

  1. 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, яка дає аналогічну інформацію про звичайні змінні).