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

Отчет по лабораторной работе №2

.docx
Скачиваний:
52
Добавлен:
03.10.2022
Размер:
32.1 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное бюджетное образовательное

учреждение высшего образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

_____________________________________________________________________________

Кафедра радиосистем и обработки сигналов

Дисциплина «Прикладные пакеты моделирования»

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

Операции с матрицами

Цель работы

Овладеть навыками матричной обработки данных в MATLAB.

ВЫПОЛНЕНИЕ РАБОТЫ

1. Определение длины вектора и размера матрицы

>> A=[34 78 56;34 67 90;12 43 36]

A =

34 78 56

34 67 90

12 43 36

>> Z=[ ]

Z =

[]

>> B=-pi:pi/32:pi

B =

Columns 1 through 10

-3.1416 -3.0434 -2.9452 -2.8471 -2.7489 -2.6507 -2.5525 -2.4544 -2.3562 -2.2580

Columns 11 through 20

-2.1598 -2.0617 -1.9635 -1.8653 -1.7671 -1.6690 -1.5708 -1.4726 -1.3744 -1.2763

Columns 21 through 30

-1.1781 -1.0799 -0.9817 -0.8836 -0.7854 -0.6872 -0.5890 -0.4909 -0.3927 -0.2945

Columns 31 through 40

-0.1963 -0.0982 0 0.0982 0.1963 0.2945 0.3927 0.4909 0.5890 0.6872

Columns 41 through 50

0.7854 0.8836 0.9817 1.0799 1.1781 1.2763 1.3744 1.4726 1.5708 1.6690

Columns 51 through 60

1.7671 1.8653 1.9635 2.0617 2.1598 2.2580 2.3562 2.4544 2.5525 2.6507

Columns 61 through 65

2.7489 2.8471 2.9452 3.0434 3.1416

Пояснения:

  • Размер, матрицы принято указывать произведением m  n, где m, n — число строк и столбцов соответственно. Матрицу размером n  n называют квадратной порядка n. Вектор воспринимается как матрица размером 1  n (строка) или m  1 (столбец), а скаляр — как матрица размером 1  1.

  • Матрица нулевой размерности — пустая матрица — обозначается как A=[]: >> A = []; size(A) ans = 0 0 Имя пустой матрицы сохраняется в Workspace и в дальнейшем может использоваться для формирования матрицы любого размера.

  • Вектор, формирующий регулярную сетку, вводят в виде <начальное значение>:[<шаг>:]<конечное значение>,Шаг, равный единице, можно не указывать, условным признаком чего служат квадратные скобки.

2. Генерирование типовых матриц

>> C=zeros(3,3)

C =

0 0 0

0 0 0

0 0 0

>> D=ones(3,3)

D =

1 1 1

1 1 1

1 1 1

>> D1=eye(3)

D1 =

1 0 0

0 1 0

0 0 1

>> T=toeplitz(D)

T =

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1

>> E=rand(3,3)

E =

0.8147 0.9134 0.2785

0.9058 0.6324 0.5469

0.1270 0.0975 0.9575

>> F=randn(3,3)

F =

1.1006 -1.4916 2.3505

1.5442 -0.7423 -0.6156

0.0859 -1.0616 0.7481

Пояснения:

  • В MATLAB можно генерировать большое разнообразие типовых матриц с помощью встроенных функций, список которых может быть выведен по команде: help elmat

  • Нулевая матрица это матрица состоящая из нулей, матрица единиц это матрица состоящая из единиц, единичная матрица это матрица у которой на главной диагонали единиц ,а остальные элементы нули, матрица теплица это квадратная матрица с одинаковыми элементами на диагоналях, равными соответствующим элементам первого столбца r.

3. Выделение элементов матрицы.

>> F(3:3,2:2)

ans =

-1.0616

>> F(1,:)

ans =

1.1006 -1.4916 2.3505

>> F(:,3)

ans =

2.3505

-0.6156

0.7481

>> F(2:3,1:3)

ans =

1.5442 -0.7423 -0.6156

0.0859 -1.0616 0.7481

Пояснения:

  • К операциям преобразования матриц относятся: □ выделение из матрицы вектора-столбца: A(:,N) где N — номер столбца; □ выделение из матрицы вектора-строки: A(M,:) где M — номер строки; □ выделение подматрицы с указанием граничных индексов: A(M1:M2,N1:N2) где: M1:M2 — номера строк с M1 по M2 включительно; N1:N2 — номера столбцов с N1 по N2 включительно; □ выделение подматрицы с указанием начальных индексов: A(M1:end;N1:end) где: M1:end — строки с M1 до последней включительно; N1:end — столбцы с N1 до последнего включительно;

4. Преобразование матриц

>> G=repmat(F,2,2)

G =

1.1006 -1.4916 2.3505 1.1006 -1.4916 2.3505

1.5442 -0.7423 -0.6156 1.5442 -0.7423 -0.6156

0.0859 -1.0616 0.7481 0.0859 -1.0616 0.7481

1.1006 -1.4916 2.3505 1.1006 -1.4916 2.3505

1.5442 -0.7423 -0.6156 1.5442 -0.7423 -0.6156

0.0859 -1.0616 0.7481 0.0859 -1.0616 0.7481

Пояснения:

  • A=[A1,A2,A3,...] где A1,A2,A3,... — объединяемые подматрицы с одинаковым числом строк; □ вертикальная конкатенация подматриц (по строкам): A=[A1;A2;A3;...] где A1;A2;A3;... — объединяемые подматрицы с одинаковым числом столбцов; □ копирование матрицы, выполняемое с помощью функции: repmat(A,m,n) где: A — исходная матрица как элемент новой матрицы; m, n — число копий матрицы A по строкам и столбцам соответственно; □ копирование квадратных матриц, выполняемое с помощью функции: repmat(A,n) где: A — исходная квадратная матрица как элемент новой квадратной матрицы; n — число копий матрицы A по строкам и столбцам.

5. Поэлементные операции с матрицами.

>> F.*2

ans =

2.2012 -2.9832 4.7009

3.0884 -1.4846 -1.2312

0.1719 -2.1232 1.4962

>> F.*F

ans =

1.2113 2.2248 5.5246

2.3846 0.5510 0.3790

0.0074 1.1270 0.5596

Пояснения:

  • Символ «*».

6. Сложение и вычитание матриц.

L =

-1 -2 -3

-4 -5 -6

-7 -8 -9

>> C1=K-L

C1 =

2 4 6

8 10 12

14 16 18

>> C2=K+L

C2 =

0 0 0

0 0 0

0 0 0

Пояснения:

  • Результаты сложения и вычитания матриц.

  • Коммутативны.

7. Умножение матриц.

>> C=K*L

C =

-30 -36 -42

-66 -81 -96

-102 -126 -150

Пояснения:

  • Да, размеры матриц должны быть согласованны

  • Результат умножения двух матриц

  • Нет, не коммутативны.

8. Транспонирование и эрмитово сопряжение матриц

>> F'

ans =

1.1006 1.5442 0.0859

-1.4916 -0.7423 -1.0616

2.3505 -0.6156 0.7481

P =

1.0000 + 3.0000i 3.0000 + 6.0000i 6.0000 + 4.0000i

23.0000 +78.0000i 4.0000 + 7.0000i 5.0000 + 8.0000i

1.0000 + 1.0000i 7.0000 + 7.0000i 8.0000 + 8.0000i

>> P.'

ans =

1.0000 + 3.0000i 23.0000 +78.0000i 1.0000 + 1.0000i

3.0000 + 6.0000i 4.0000 + 7.0000i 7.0000 + 7.0000i

6.0000 + 4.0000i 5.0000 + 8.0000i 8.0000 + 8.0000i

>> R=P'

R =

1.0000 - 3.0000i 23.0000 -78.0000i 1.0000 - 1.0000i

3.0000 - 6.0000i 4.0000 - 7.0000i 7.0000 - 7.0000i

6.0000 - 4.0000i 5.0000 - 8.0000i 8.0000 - 8.0000i

>> R1=conj(P)

R1 =

1.0000 - 3.0000i 3.0000 - 6.0000i 6.0000 - 4.0000i

23.0000 -78.0000i 4.0000 - 7.0000i 5.0000 - 8.0000i

1.0000 - 1.0000i 7.0000 - 7.0000i 8.0000 - 8.0000i

Пояснения:

  • Операции транспонирования и эрмитова сопряжения выполняются с помощью одного и того же символа " ' " (апостроф). Результат зависит от исходной матрицы — является она вещественной или комплексной. В первом случае получим транспонированную, а во втором — эрмитово сопряженную матрицу

9. Обращение матриц.

>> det(F)

ans =

-3.2316

>> F1=inv(F)

F1 =

0.3741 0.4268 -0.8240

0.3738 -0.1923 -1.3328

0.4875 -0.3219 -0.4599

>> F2=F*F1

F2 =

1.0000 0.0000 -0.0000

0.0000 1.0000 -0.0000

-0.0000 0.0000 1.0000

Пояснения:

  • Операция обращения возможна только для квадратных матриц с определителем (детерминантом), не равным нулю.

  • Определитель матрицы вычисляется с помощью функции: det(A).

  • Для проверки правильности, нахождения обратной матрицы.

10. Решить СЛАУ

>> V=[1 2 3;2 -1 -5;1 -1 -1],N=[14 -15 -4]

V =

1 2 3

2 -1 -5

1 -1 -1

N =

14 -15 -4

>> X=V\N'

X =

1

2

3

>> V*X

ans =

14

-15

-4

Пояснения:

  • Левое матричное деление — A\B, эквивалентное алгебраической операции 1 A B  , т. е. inv(A)*B, Символ левого матричного деления " \" используют при решении систем линейных алгебраических уравнений (СЛАУ): AX=B.

11. Вычисление норм матрицы и вектора.

>> norm(F,1)

ans =

3.7141

>> norm(F,2)

ans =

3.2573

>> norm(F,inf)

ans =

4.9427

>> norm(x,1)

ans =

46.4535

>> norm(x,2)

ans =

5.4866

>> norm(x,inf)

ans =

0.9961

Пояснения:

  • Норма матрицы (вектора) — это скаляр, с помощью которого оцениваются значения элементов матрицы (вектора).

  • Норма матрицы и вектора вычисляется с помощью функции: norm(A,p) где p — параметр, указывающий норму

12. Операции с матрицами в задачах математической статистики.

>> max(F)

ans =

1.5442 -0.7423 2.3505

>> min(F)

ans =

0.0859 -1.4916 -0.6156

>> sum(F)

ans =

2.7308 -3.2955 2.4829

>> prod(F)

ans =

0.1460 -1.1754 -1.0824

>> mean(F)

ans =

0.9103 -1.0985 0.8276

>> std(F,1)

ans =

0.6104 0.3070 1.2122

>> var(F,1)

ans =

0.3725 0.0943 1.4694

Пояснения:

  • max(A) Максимальные элементы столбца min(A) Минимальные элементы столбца sort(A) Сортировка элементов столбца по возрастанию sum(A) Сумма элементов столбца prod(A) Произведение элементов столбца mean(A) Математическое ожидание (среднее значение) элементов столбца.

Вывод:

Овладел навыками матричной обработки данных в MATLAB.

Самостоятельная работа

1С. Операции с матрицами. Привести пример арифметического выражения, в котором все переменные и результат вычисления — матрицы

>> A=[1 2;3 4]

A =

1 2

3 4

>> B=[5 6;7 8]

B =

5 6

7 8

>> Z=A*B

Z =

19 22

43 50

>> norm(Z,1)

ans =

72

>> norm(Z,2)

ans =

72.0694

>> norm(Z,inf)

ans =

93

>> max(Z)

ans =

43 50

>> min(Z)

ans =

19 22

>> sum(Z)

ans =

62 72

>> prod(Z)

ans =

817 1100

>> mean(Z)

ans =

31 36

>> mean(Z)

ans =

31 36

>> std(Z,1)

ans =

12 14

>> var(Z,1)

ans =

144 196

16