Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Завдання по лабораторній з вишки

.pdf
Скачиваний:
10
Добавлен:
11.02.2015
Размер:
452.84 Кб
Скачать

Лабораторная работа №1

Дії з матрицями та визначники в середовищі MatLab

Практичне заняття проводиться після вивчення тем «Матриці. Дії над ними», «Визначники n-го порядку».

Мета заняття:

-закріплення теоретичних знань з матричної алгебри;

-вироблення у студентів навичок розв’язання задач матричної алгебри за допомогою середовища MatLab;

-аналіз та осмислення отриманих результатів.

Завдання:

 

 

 

Визначити в середовищі MatLab матриці A та B розміром 3 3 .

1.

Визначити в середовищі MatLab вектор W як вектор-стовбець.

2.

Обчислити матриці A

B ; A

B ; 3A.

3.

Обчислити матрицю C

AB

BA.

4. Обчислити матрицю A2 та матрицю, що складається з квадратів відповідних елементів матриці A. Порівняти результати.

5.

Перевірити рівність

A B T

BT

AT .

6.

Обчислити вектор-стовпець V , який дорівнює добутку вектора W

та матриці C .

 

 

 

7.

Обчислити вектор Q

5V

3W .

 

8.Обчислити визначник матриці C .

9.Поміняти місцями перший та другий стовпчики матриці C .

Обчислити визначник отриманої матриці C1. Порівняти визначники матриць C та C1.

10. Елементи другого рядка матриці C помножити на 2 . Обчислити визначник отриманої матриці C2 . Порівняти визначники матриць C та C2 .

11.Порівняти визначники матриць C та CT .

12.Перевірити, чи існує обернена матриця до матриці A, і, якщо існує, знайти її і вивести результат у командне вікно так, щоб елементи оберненої матриці були представлені у вигляді звичайних дробів.

13.Якщо обернена матриця була обчислена, довести, що отриманий результат правильний.

18

Теоретичні відомості з функцій системи MatLab, які можуть бути застосовані для роботи з матрицями при розв’язанні задач курсу "Математика для економістів"

В середовищі MatLab існує дуже велика кількість функцій для розв’язання різноманітних задач лінійної алгебри. У таблиці 2.1 наведені деякі основні функції, що використовуються для роботи з матрицями при розв’язанні задач лінійної алгебри курсу "Математика для економістів".

Таблиця 2.1.

Функції MatLab, що використовуються для розв’язання задач

 

матричної алгебри.

 

 

 

 

Функція

 

 

Опис

 

 

 

 

1

 

 

2

 

 

 

Визначення матриці розміру m n . Рядки відокремлюються

 

крапкою з комою, а елементи кожного рядка відокремлюються

 

знаком пробелу. Наприклад:

A=[a11 a12 … a1n;…;

>>A=[1 -3 2; 4 3 8; -2 6 1]

 

 

 

am1 am2 … amn]

A =

 

 

 

1

-3

2

 

4

3

8

 

-2

6

1

 

 

 

 

>>B=[-1;2;6]

 

 

B =

 

 

 

-1

 

 

 

2

 

 

 

6

 

 

 

 

 

Транспонування матриці, яка визначається змінною A.

 

Наприклад, стовпець можна визначити як транспонований

 

рядок:

 

 

 

>>B=[-1 2 6]

 

 

B =

 

 

A'(апостроф)

-1

2

6

 

>>B=B’

 

 

 

B =

 

 

 

-1

 

 

 

2

 

 

 

6

 

 

 

 

 

Визначається сума двох матриць, які визначені змінними A1 і

A1+A2

A2 (матриці повинні мати однаковий розмір). Наприклад:

 

>>A1=[3 4;1 -2;0 -7]

 

 

 

 

19

 

A1 =

 

 

 

 

 

3

 

4

 

 

 

1

 

-2

 

 

 

0

 

-7

 

 

 

>>A2=[2 -5;-9 -6; 8 5]

 

 

A2 =

 

 

 

 

 

2

 

-5

 

 

 

-9

 

-6

 

 

 

8

 

5

 

 

 

>>A1+A2 % сума матриць

 

 

ans =

 

 

 

 

 

5

 

-1

 

 

 

-8

 

-8

 

 

 

8

 

-2

 

 

 

 

 

Лінійна комбінація матриці, які визначені змінними A1 і A2

 

(матриці повинні мати однаковий розмір),

a і b – це числа.

 

Наприклад:

 

 

 

 

a*A1 b*A2

>>3*A1-2*A2

 

 

ans =

 

 

 

 

 

 

 

 

 

 

5

 

22

 

 

 

21

 

6

 

 

 

-16

-31

 

 

 

 

 

Якщо f(x) – це елементарна функція, то означена операція

 

приводить до обчислення матриці того ж розміру, що і матриця

 

A, кожний елемент якої дорівнює значенню елементарної

 

функції від відповідного елемента матриці

A. Наприклад:

 

>>sin(A1)

 

 

 

 

 

ans =

 

 

 

 

f(A)

0.1411

 

-0.7568

 

 

 

 

 

 

 

0.8415

 

-0.9093

 

 

 

0

 

-0.6570

 

 

>>exp(B)

 

 

 

 

 

ans =

 

 

 

 

 

0.3679

 

 

 

 

7.3891

 

 

 

 

403.4288

 

 

 

 

 

 

Поелементний добуток матриць, які визначені матрицями A і

 

C. Результатом є матриця того ж розміру, що і матриці A і C.

 

Наприклад:

 

 

 

 

A.*C

>>C=[2 1 0;3 1 3;4 -2 -7];

 

 

>>A.*C

 

 

 

 

 

ans =

 

 

 

 

 

2

 

-3

0

 

 

 

 

 

 

 

20

 

12

 

3

24

 

 

-8

-12

-7

 

 

Матриці повинні бути одного розміру, інакше буде помилка,

 

наприклад:

 

 

 

 

 

>>A.*B

 

 

 

 

 

??? Error using ==> times

 

Matrix dimensions must agree.

 

 

 

Поелементне ділення матриць, які визначені матрицями A і C.

 

Результатом є матриця того ж розміру, що і матриці A і C.

 

Наприклад:

 

 

 

 

 

>>C=[2 1 0;3 1 3;4 -2 -7];

 

>>A./C

 

 

 

 

A./C

Warning: Divide by zero.

 

ans =

 

 

 

 

 

0.5000

 

-3.0000

Inf

 

1.3333

 

3.0000

2.6667

 

-0.5000

 

-3.0000

0.1429

 

Матриці повинні бути одного розміру.

 

 

 

Кожен елемент матриці, яка визначена змінною A

 

підноситься до степеня a.

 

 

>>A.^2%піднесення до степеня 2

 

ans =

 

 

 

 

 

1

 

9

4

 

 

16

 

9

64

 

A.^a

4

 

36

1

 

 

 

 

 

 

 

Операція може бути застосована до будь якої прямокутної

 

матриці:

 

 

 

 

 

>>A1.^2 % A1-прямокутна матриця

 

ans =

 

 

 

 

 

9

 

16

 

 

 

1

 

4

 

 

 

0

 

49

 

 

 

 

 

Звичайний добуток матриць, які визначені матрицями A і C.

 

Розміри матриць повинні бути узгодженні (кількість стовпців

 

першої матриці - множника повинна дорівнювати кількості

 

рядків другої матрицімножника). Наприклад:

 

>>A*C

 

 

 

 

A*C

ans =

 

 

 

 

1

 

-6

-23

 

 

 

 

 

49

 

-9

-47

 

 

18

 

2

11

 

 

Якщо розміри не узгоджені видається повідомлення про

 

помилку:

 

 

 

 

 

>>A1*A2

 

 

 

 

 

 

 

 

 

 

21

 

??? Error using ==> mtimes

 

 

Inner matrix dimensions must agree.

 

 

>>A1*A2’

%розміри узгоджені – результат

 

 

 

%є добуток матриці A1 та

 

 

 

 

%транспонованої матриці A2

 

 

ans =

 

 

 

 

 

 

 

-14

 

-51

44

 

 

 

 

12

 

3

-2

 

 

 

 

35

 

42

-35

 

 

 

 

 

 

Піднесення матриці, яка визначена змінною A, до степеня

A^n

n(матриця повинна бути квадратною).

 

 

 

>>A^2 %піднесення до степеня 2

 

 

 

 

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

-15

 

0

-20

 

 

 

 

0

 

45

40

 

 

 

 

20

 

30

45

 

 

 

 

 

 

Визначення розміру матриці, яка визначена

 

змінною A. Наприклад:

 

 

 

>>size(A)

 

 

 

 

 

size(A)

ans =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

3

 

 

 

 

 

>>size(B)

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

3

 

1

 

 

 

 

 

 

 

Звернення до елементу матриці, яка

 

визначена

змінною

A, який

розташований в

i-му

 

рядку та j-му стовпцю. Наприклад:

 

 

 

>>A(2,3)

 

 

 

 

 

A(i,j)

ans =

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

>>B(1)

 

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

-1

 

 

 

 

 

 

 

 

 

 

 

 

 

Звернення

до

елементів

матриці,

яка

 

визначена

змінною

A, які розташовані в i-му рядку

 

або j-му стовпцеві. Наприклад:

 

 

A(i,:),A(:,j)

>>A(2,:)%2-й рядок

 

 

 

 

 

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

4

3

8

 

 

 

 

 

>>A(:,1)%1-й стовпець

 

 

 

ans =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

 

1

 

 

 

 

 

4

 

 

 

 

 

-2

 

 

 

 

 

 

 

Обчислення визначника (!)квадратної матриці, яка визначена

 

змінною A. Наприклад:

 

 

det(A)

>>det(A)

 

 

 

 

 

 

 

 

 

 

ans =

 

 

 

 

 

75

 

 

 

 

 

 

 

 

Створення прямокутну матриці розміру m

n ,що складається

 

з нулів. Наприклад:

 

 

 

 

>>zeros(2,3)

 

 

 

zeros(m,n)

ans =

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

 

0

0

0

 

 

 

 

 

 

Створення прямокутну матриці розміру m

n ,що складається

 

з одиниць. Наприклад:

 

 

 

>>ones(2,3)

 

 

 

 

ones(m,n)

ans =

 

 

 

 

 

 

 

 

 

 

1

1

1

 

 

 

1

1

1

 

 

 

 

 

Створення квадратної матриці, у якої на діагоналі стоять

 

елементи вектора, що визначається змінною B, а інші

 

елементи дорівнюють 0. Наприклад:

 

 

>>diag(B)

 

 

 

 

diag(B)

ans =

 

 

 

 

 

 

 

 

 

 

-1

0

0

 

 

 

0

2

0

 

 

 

0

0

6

 

 

 

 

 

 

Створення одиничної матриці розміру n

n . Наприклад:

 

>>eye(3) %

 

 

 

 

 

ans =

 

 

 

 

eye(n)

1

0

0

 

 

 

 

 

 

0

1

0

 

 

 

0

0

1

 

 

 

 

 

 

Обчислення зворотної матриці,

для матриці, що визначена

 

змінною A (визначник повинен не дорівнювати нулю).

 

>>inv(A)

 

 

 

 

 

ans =

 

 

 

 

inv(A)

-0.6000

 

0.2000

0.4000

 

 

 

-0.2667

 

0.0667

 

0

 

0.4000

 

0

0.2000

 

 

prod(x)

Обчислення добутку елементів вектора. Наприклад:

>>x=[1 3 -3 2 -5 1 8]

 

 

 

 

 

 

 

 

 

 

 

23

 

x =

 

 

 

 

 

 

 

1

3

-3

2

-5

1

8

 

 

 

 

 

 

 

 

>>prod(x)

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

720

 

 

 

 

 

 

 

 

 

 

Обчислення суми елементів вектора:

 

 

>>sum(x)

 

 

 

 

 

sum(x)

ans =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

Знаходження мінімального елементу вектора:

 

>>min(x)

 

 

 

 

 

min(x)

ans =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-5

 

 

 

 

 

 

 

 

 

Знаходження максимального елементу вектора:

 

>>max(x)

 

 

 

 

 

max(x)

ans =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

Сортування елементів вектора за зростанням:

 

>>sort(x)

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

-5

-3

1

1

2

3

8

sort(x)

Для сортування за спаданням,

можна використати наступну

 

команду:

 

 

 

 

 

 

>>-sort(-x)

 

 

 

 

 

ans =

 

 

 

 

 

 

 

8

3

2

1

1

-3

-5

 

 

 

Знаходження середнього значення елементів вектора:

 

>>mean(x)

 

 

 

 

 

mean(x)

ans =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приклад виконання завдання

Продемонструємо роботу наведених у табл. 2.1 функцій та операцій для виконання завдання цієї практичної роботи при заданих матрицях A, B і векторі W :

3

1

0

4

5

6

A 6

13

1 ; B

1

0

1 ; W 5 8 0

1

2

1

1

1

2

1. Визначити в середовищі MatLab матриці A та B розміром 3 3 .

>>A=[3 1 0;6 13 1;1 2 1];%визначення матриці А

>>B=[4 5 6;1 0 -1;-1 -1 2];%визначення матриці B

24

>> A, B

 

 

A =

 

 

3

1

0

6

13

1

1

2

1

B =

 

 

4

5

6

1

0

-1

1

-1

2

2.Визначити в середовищі MatLab вектор W як вектор-стовбець.

>>W=[5;-8;0]%визначення вектора-стовпця W

W = 5 8 0

3. Обчислити A B ; A B ; 3A.

>> A+B % обчислення А+В, результат виводиться на екран ans =

7

6

6

7

13

0

0

1

3

>> A-B % обчислення А-В, результат виводиться на екран

ans =

 

 

1

-4

-6

5

13

2

2

3

-1

>> -3*A % обчислення -3А, результат виводиться на екран ans =

9

-3

0

18

-39

-3

3

-6

-3

4. Обчислити матрицю C AB BA.

>> C=A*B-B*A %обчислення C=AB-BA, результат виводиться на екран

C =

35

-66

6

34

30

26

12

14

5

Таким чином, дійсно демонструємо, що для матриць AB BA.

5. Обчислити A2 та матрицю, що складається з квадратів відповідних елементів матриці A. Порівняти результати.

>> A*A %обчислення квадрата матриці А

25

ans =

 

 

15

16

1

97

177

14

16

29

3

>>A.^2 %обчислення матриці, що складається з квадратів відповідних

 

%елементів матриці А.

ans =

 

 

9

1

0

36

169

1

1

4

1

Зазначимо, що в результаті отримано дві різні матриці. A2 - це результат множення матриці A самої на себе, а не піднесення кожного елементу до квадрата.

6. Перевірити рівність A B T BT AT .

>> (A*B)’ %обчислення добутку двох матриць та його транспонування

ans =

 

 

13

36

5

15

29

4

17

25

6

>> B’*A’ %обчислення добутку транспонованих матриць

ans =

 

 

13

36

5

15

29

4

17

25

6

В

результаті

отримали матриці, що співпадають, отже рівність

дійсно виконується.

7. Обчислити вектор-стовбець V , який дорівнює добутку вектора W та матриці C .

>> V=C*W %обчислення вектора V V =

353

70

52

8. Обчислити вектор Q 5V 3W .

>> Q=5*V-3*W

Q=

1750

326

260

26

Дійсно, елемент q1 5 v1 3 w1 5 353 3 5 5 350 1750 , і

подібні рівності виконуються для другого та третього елементів.

9.Обчислити визначник матриці C .

>>det(C)

ans = -1186

10. Поміняти місцями перший та другий стовпчики матриці C . Обчислити визначник отриманої матриці C1. Порівняти визначники матриць C та C1.

>> C1=C;C1(:,1)=C(:,2);C1(:,2)=C(:,1)% поміняно стовпчики місцями C1 =

66

-35

6

30

34

26

14

12

5

>> C % у командне вікно виведено матрицю С

C =

 

 

35

-66

6

34

30

26

12

14

5

>> det(C1) % обчислимо визначник матриці С1 ans =

1186

Зазначимо, що від перестановки сусідніх стовпчиків визначник змінює знак на протилежний.

11. Елементи другого рядка матриці C помножити на 2 . Обчислити визначник отриманої матриці C2 . Порівняти визначники матриць C та C2 .

>> C2=C;C2(2,:)=C2(2,:).*2 % помножено елементи 2-го рядка на 2 C2 =

35

-66

6

68

60

52

12

14

5

>>det(C2) ans =

2372

>>2*det(C) ans =

2372

27