Скачиваний:
3
Добавлен:
08.06.2022
Размер:
43.55 Кб
Скачать

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

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

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

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

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

_____________________________________________________________________________

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

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

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

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

Выполнили: ст. гр.

Проверил: А.С. Леонюк

Санкт-Петербург

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

>> A = [10 20; 66 99]

A =

10 20

66 99

>> Z = [ ]; size(Z)

ans =

0 0

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

B =

Columns 1 through 9

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

Columns 10 through 18

-2.2580 -2.1598 -2.0617 -1.9635 -1.8653 -1.7671 -1.6690 -1.5708 -1.4726

Columns 19 through 27

-1.3744 -1.2763 -1.1781 -1.0799 -0.9817 -0.8836 -0.7854 -0.6872 -0.5890

Columns 28 through 36

-0.4909 -0.3927 -0.2945 -0.1963 -0.0982 0 0.0982 0.1963 0.2945

Columns 37 through 45

0.3927 0.4909 0.5890 0.6872 0.7854 0.8836 0.9817 1.0799 1.1781

Columns 46 through 54

1.2763 1.3744 1.4726 1.5708 1.6690 1.7671 1.8653 1.9635 2.0617

Columns 55 through 63

2.1598 2.2580 2.3562 2.4544 2.5525 2.6507 2.7489 2.8471 2.9452

Columns 64 through 65

3.0434 3.1416

Пояснение:

  • что такое длина вектора и размер матрицы, и как они определяются в MATLAB

Размер матрицы — число строк и столбцов — определяется с помощью функции: size(x)

Длина вектора — число элементов строки (столбца) — определяется с помощью функции: length(x)

  • с какой целью и как вводится пустая матрица и каков ее размер

Матрица нулевой размерности — пустая матрица — обозначается как A=[]

  • как вводится регулярная сетка; в каком случае допускается не указывать шаг изменения значения переменной

Вектор, формирующий регулярную сетку, вводят в виде:

<начальное значение>:[<шаг>:]<конечное значение>

Шаг, равный единице, можно не указывать, условным признаком чего служат квадратные скобки.

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

>> C = zeros(3,3)

CC =

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,3)

D1 =

1 0 0

0 1 0

0 0 1

>> r = [3;2;1]

r =

3

2

1

>> T = toeplitz(r)

T =

3 2 1

2 3 2

1 2 3

>> E = rand(3,3)

E =

0.7922 0.0357 0.6787

0.9595 0.8491 0.7577

0.6557 0.9340 0.7431

>> F = randn(3,3)

F =

-0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

Пояснение:

  • как выполняется генерация указанных матриц в MATLAB

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

helpelmat

  • что собой представляют матрицы: нулевая, единицы, единичная и Теплица

Нулевая матрица M×N

zeros(M,N)

Матрица единиц M×N

ones(M,N)

Единичная матрица порядка N

eye(N)

Матрица Теплица — квадратная матрица с одинаковыми элементами на диагоналях, равными соответствующим элементам первого столбца r

Toeplit

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

>> F

F =

-0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

>> F(3,2)

ans =

-1.0689

>> diag(F)

ans =

-0.3034

-1.1471

1.4384

>> F(1,:)

ans =

-0.3034 0.8884 -0.8095

>> F(:,3)

ans =

-0.8095

-2.9443

1.4384

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

ans =

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

Пояснение:

  • как происходит выделение подматриц

Выделение подматрицы с указанием граничных индексов:

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. Преобразование матриц:

>> F

F =

-0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

>> H = [F,C]

H =

-0.3034 0.8884 -0.8095 0 0 0

0.2939 -1.1471 -2.9443 0 0 0

-0.7873 -1.0689 1.4384 0 0 0

>> S = [F;D]

S =

-0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

1.0000 1.0000 1.0000

1.0000 1.0000 1.0000

1.0000 1.0000 1.0000

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

G =

-0.3034 0.8884 -0.8095 -0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443 0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384 -0.7873 -1.0689 1.4384

-0.3034 0.8884 -0.8095 -0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443 0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384 -0.7873 -1.0689 1.4384

Пояснение:

  • как выполняются указанные преобразования

Горизонтальная конкатенация (объединение) подматриц (по столбцам):

A=[A1,A2,A3,...]

где A1,A2,A3,... — объединяемые подматрицы с одинаковым числом строк

Вертикальная конкатенация подматриц (по строкам):

A=[A1;A2;A3;...]

где A1;A2;A3;... — объединяемые подматрицы с одинаковым числом столбцов

Копирование квадратных матриц, выполняемое с помощью функции:

repmat(A,n)

где:

A — исходная квадратная матрица как элемент новой квадратной матрицы;

n — число копий матрицы A по строкам и столбцам

5. Поэлементные операции с матрицами. Для всех элементов матрицы F (см. п. 2) выполнить операцию возведения в квадрат и умножения на 2.

>> F.^2

ans =

0.0921 0.7892 0.6553

0.0864 1.3158 8.6688

0.6198 1.1425 2.0689

>> F.*2

ans =

-0.6069 1.7768 -1.6190

0.5877 -2.2941 -5.8886

-1.5746 -2.1377 2.8768

Пояснение:

  • какие символы арифметических операций использованы

Признаком поэлементных арифметических операций является точка перед символом операции

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

>> A = [ 33 22 11; 25 12 2; 1 2 3]

A =

33 22 11

25 12 2

1 2 3

>> B = [4 8 2; 5 90 33; 32 33 1]

B =

4 8 2

5 90 33

32 33 1

>> C1 = A+B

C1 =

37 30 13

30 102 35

33 35 4

>> C2=A-B

C2 =

29 14 9

20 -78 -31

-31 -31 2

Пояснение:

  • что собой представляют переменные C1 и С2

сумма и вычитание двух матриц

  • является ли операция сложения (вычитания) матриц коммутативной

Для операций сложения и вычитания матриц справедливы обычные законы арифметики:

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

>> C = A*B

C =

594 2607 803

224 1346 448

110 287 71

Пояснение:

  • Как должны быть согласованы размеры матриц A и B, чтобы для них была возможна операция умножения

Операция умножения возможна только в том случае, если число столбцов матрицы A равно числу строк матрицы B

  • Что собой представляет переменная C

Произведением матрицы A размером m  n на матрицу B размером n  p называется матрица C размером m  p, элемент i-й строки и k-го столбца которой равен сумме произведений соответственных элементов i-й строки матрицы A и k- го столбца матрицы B:

𝑛

𝑐𝑖𝑘 = ∑ 𝑎𝑖𝑗 𝑏𝑖𝑗; 𝑖 = 1,2, … , 𝑚; 𝑘 = 1,2, … , 𝑝

𝑗=1

  • Является ли операция умножения матриц коммутативной

В общем случае умножение матриц не коммутативно:

𝐴𝐵 ≠ 𝐵𝐴

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

>> F

F =

-0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

>> F'

ans =

-0.3034 0.2939 -0.7873

0.8884 -1.1471 -1.0689

-0.8095 -2.9443 1.4384

>> P = [1+2i 3-4i 1-6i; 12+11i 11-2i 15-14i; 2+6i 5+6i 8-4i]

P =

1.0000 + 2.0000i 3.0000 - 4.0000i 1.0000 - 6.0000i

12.0000 +11.0000i 11.0000 - 2.0000i 15.0000 -14.0000i

2.0000 + 6.0000i 5.0000 + 6.0000i 8.0000 - 4.0000i

>> P'

ans =

1.0000 - 2.0000i 12.0000 -11.0000i 2.0000 - 6.0000i

3.0000 + 4.0000i 11.0000 + 2.0000i 5.0000 - 6.0000i

1.0000 + 6.0000i 15.0000 +14.0000i 8.0000 + 4.0000i

>> R = P'

R =

1.0000 - 2.0000i 12.0000 -11.0000i 2.0000 - 6.0000i

3.0000 + 4.0000i 11.0000 + 2.0000i 5.0000 - 6.0000i

1.0000 + 6.0000i 15.0000 +14.0000i 8.0000 + 4.0000i

>> R1 = conj(P)

R1 =

1.0000 - 2.0000i 3.0000 + 4.0000i 1.0000 + 6.0000i

12.0000 -11.0000i 11.0000 + 2.0000i 15.0000 +14.0000i

2.0000 - 6.0000i 5.0000 - 6.0000i 8.0000 + 4.0000i

Пояснение:

  • как указанные операции выполняются в MATLAB

  • Транспонирование матрицы — это операция замены каждой строки столбцом с тем же номером.

  • Эрмитово сопряжение матрицы — это операция транспонирования матрицы с одновременной заменой ее элементов на комплексно сопряженные.

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

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

>> F

F =

-0.3034 0.8884 -0.8095

0.2939 -1.1471 -2.9443

-0.7873 -1.0689 1.4384

>> det(F)

ans =

4.1247

>> F1 = inv (F)

F1 =

-1.1630 -0.1000 -0.8593

0.4595 -0.2603 -0.2743

-0.2951 -0.2482 0.0211

>> F2 = F.*F1

F2 =

0.3529 -0.0889 0.6956

0.1350 0.2986 0.8076

0.2323 0.2653 0.0303

Пояснение:

  • для какой матрицы возможна операция обращения

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

  • какая функция служит для вычисления определителя матрицы

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

det(A)

а обратная матрица — с помощью функции:

inv(A)

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

>> O = [ 1 2 3; 2 -1 -5; 1 -1 -1]

O =

1 2 3

2 -1 -5

1 -1 -1

>> I = [14; -15; -4]

I =

14

-15

-4

>> X = O\I

X =

1

2

3

>> O*X

ans =

14

-15

-4

Пояснение:

  • какая операция матричного деления используется и почему

  • Символ левого матричного деления " \" используют при решении систем линейных алгебраических уравнений (СЛАУ):

  • 𝐴𝑋 = 𝐵

где: A — матрица коэффициентов при неизвестных; B, X — векторы- столбцы свободных членов и неизвестных соответственно.

  • Деление B/A будет ошибочным, т. к. эта операция соответствует

𝐵𝐴−1(B*inv(A)), а умножение матриц в общем случае не коммутативно:

𝐴−1𝐵 ≠ 𝐵𝐴−1

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

>> NORMS = [norm(F,1) norm(F) norm(F,inf)]

NORMS =

5.1922 3.4364 4.3852

>> X = rand (1,100)

X =

Columns 1 through 9

0.6948 0.3171 0.9502 0.0344 0.4387 0.3816 0.7655 0.7952 0.1869

Columns 10 through 18

0.4898 0.4456 0.6463 0.7094 0.7547 0.2760 0.6797 0.6551 0.1626

Columns 19 through 27

0.1190 0.4984 0.9597 0.3404 0.5853 0.2238 0.7513 0.2551 0.5060

Columns 28 through 36

0.6991 0.8909 0.9593 0.5472 0.1386 0.1493 0.2575 0.8407 0.2543

Columns 37 through 45

0.8143 0.2435 0.9293 0.3500 0.1966 0.2511 0.6160 0.4733 0.3517

Columns 46 through 54

0.8308 0.5853 0.5497 0.9172 0.2858 0.7572 0.7537 0.3804 0.5678

Columns 55 through 63

0.0759 0.0540 0.5308 0.7792 0.9340 0.1299 0.5688 0.4694 0.0119

Columns 64 through 72

0.3371 0.1622 0.7943 0.3112 0.5285 0.1656 0.6020 0.2630 0.6541

Columns 73 through 81

0.6892 0.7482 0.4505 0.0838 0.2290 0.9133 0.1524 0.8258 0.5383

Columns 82 through 90

0.9961 0.0782 0.4427 0.1067 0.9619 0.0046 0.7749 0.8173 0.8687

Columns 91 through 99

0.0844 0.3998 0.2599 0.8001 0.4314 0.9106 0.1818 0.2638 0.1455

Column 100

0.1361

>> NORMq = [norm(X,1) norm(X) norm(X,inf)]

NORMq =

48.8802 5.6605 0.9961

Пояснение:

  • смысл указанных норм и способ их вычисления в MATLAB

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

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

>> max(F)

ans =

0.2939 0.8884 1.4384

>> min(F)

ans =

-0.7873 -1.1471 -2.9443

>> sum(F)

ans =

-0.7969 -1.3275 -2.3154

>> prod(F)

ans =

0.0702 1.0892 3.4282

>> mean(F)

ans =

-0.2656 -0.4425 -0.7718

>> std(F,1)

ans =

0.4422 0.9416 1.7894

>> var(F,1)

ans =

0.1955 0.8867 3.2020

Пояснение:

  • какие функции MATLAB использованы в каждом из этих случаев (кроме std и var)

max(F) – Максимальные элементы столбцов min(F) – Минимальные элементы столбцов sum(F) – Сумма элементов столбца

prod(F) – Произведение элементов столбца

mean(F) – Математическое ожидание (среднее значение) элементов столбца

12

Соседние файлы в предмете Прикладные пакеты моделирования