Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАТЛАБ 1 - матрицы (дополн. Интер).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
143.36 Кб
Скачать

5. Умножение и деление матриц

5.1 Стандартное умножение

A =

34 12 3 5 1

2 4 6 8 11

9 8 7 2 3

9 9 9 7 6

0 1 3 5 6

E =

43

65

87

12

32


>> A*E

ans =

2595

1316

1636

2031

578

5.2. Поэлементное умножение и деление

УМНОЖЕНИЕ:

>> A(:,2).*E

ans =

516

260

696

108

32

ДЕЛЕНИЕ

A =

34 12 3 5 1

2 4 6 8 11

9 8 7 2 3

9 9 9 7 6

0 1 3 5 6

E =

43

65

87

12

32

>> A(:,3)./E % поэлементное обычное

деление

ans =

0.0698

0.0923

0.0805

0.7500

0.0938

>> A(:,2).\E % поэлементное обратное деление

ans =

3.5833

16.2500

10.8750

1.3333

32.0000

A =

34 12 3 5 1

2 4 6 8 11

9 8 7 2 3

9 9 9 7 6

0 1 3 5 6

D =

34 23 21 65 34

> A(2,:).*D% поэлементное

умножение

ans =

68 92 126 520 374

>> A(2,:)./D % поэлементное обычное деление

ans =

0.0588 0.1739 0.2857 0.1231 0.3235

>> A(3,:).\D % поэлементное обратное деление

ans =

3.7778 2.8750 3.0000 32.5000 11.3333

6. Степени матрицы

6.1 Стандартная степень

>> A^2

ans =

1252 526 243 312 211

202 171 177 165 178

403 217 151 152 148

468 285 225 214 213

74 79 90 79 86

6.2. Поэлементное возведение в степень

>> A.^2

ans =

1156 144 9 25 1

4 16 36 64 121

81 64 49 4 9

81 81 81 49 36

0 1 9 25 36

>> D.^(1/2)

ans =

5.8310 4.7958 4.5826 8.0623 5.8310

>> E.^(-1/2)

ans =

0.1525

0.1240

0.1072

0.2887

0.1768

7. Ввод матриц в виде арифметических выражений.

>> g=[(-1)^(1/2) exp(-2) sqrt(-10)]

g =

0.0000 + 1.0000i 0.1353 0 + 3.1623i

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

8.1 Транспонирование

A'

ans =

34 2 9 9 0

12 4 8 9 1

3 6 7 9 3

5 8 2 7 5

1 11 3 6 6

8.2 Обращение матриц

>> s=inv(A)

s =

0.0382 -0.2373 0.1901 -0.1704 0.5040

-0.0223 0.8506 -0.5179 0.4132 -1.7100

-0.0310 -0.7730 0.5403 -0.2512 1.4035

0.0107 -0.0155 -0.4045 0.3676 -0.1387

0.0103 0.2577 0.1532 -0.2496 -0.1345

>> s*A

ans =

1.0000 0 0 0 -0.0000

-0.0000 1.0000 0 0 0

0 0.0000 1.0000 0 -0.0000

0 -0.0000 0.0000 1.0000 -0.0000

0 0.0000 0.0000 -0.0000 1.0000

8.3 Определение собственных чисел

>> eig(A) % eigenvalues–собственные значения матрицы_А

ans =

40.4154

15.9036

0.4913 + 2.5786i

0.4913 - 2.5786i

0.6984

8.4 Вычисление определителя матрицы

>> det(A)

ans =

3093

8.5 Построение характеристического полинома и определение корней

>> p=poly(A)

p =

1.0e+003 *

0.0010 -0.0580 0.7450 -1.5120 5.1410 -3.0930

>> roots(p)

ans =

40.4154

15.9036

0.4913 + 2.5786i

0.4913 - 2.5786i

0.6984

    1. Перестановки элементов матриц

Для перестановок элементов матриц служат следующие функции: В = fiiplr(A) — зеркально переставляет столбцы матрицы А относительно верти-кальной оси; flipud(A) –зеркально переставляет столбцы матрицы А относи-тельно горизонтальной оси

> fliplr(A)

ans =

1 5 3 12 34

11 8 6 4 2

3 2 7 8 9

6 7 9 9 9

6 5 3 1 0

>> flipud(A)

ans =

0 1 3 5 6

9 9 9 7 6

9 8 7 2 3

2 4 6 8 11

34 12 3 5 1

8.7. Вычисление произведений

Несколько простых функций служат для перемножения элементов массивов:

prod(A) — возвращает произведение элементов массива, если А — вектор, или вектор-строку, содержащую произведения элементов каждого столбца, если А — матрица; prod (A, dim) — возвращает матрицу (массив размерности два) с произведением элементов массива А по столбцам (dim=l), по стро-кам(dim=2), по иным размерностям в зависимости от значения скаляра dim.

>> prod(A)

ans =

0 3456 3402 2800 1188

>> prod(B)

ans =

3564 2925 1848 1127 32

>> prod(C)

ans =

810810 1210880 834372

>> prod(A,1)

ans =

0 3456 3402 2800 1188

>> prod(A,2)

ans =

6120

4224

3024

30618

0

cumprod(A) — возвращает произведение с накоплением. Если А — вектор, cumprod(A) возвращает вектор, содержащий произведения с накоплением элементов вектора А. Если А — матрица, cumprod(A) возвращает матрицу того же размера, что и А, содержащую произведения с накоплением для каждого столбца матрицы А (Первая строка без изменений, во второй строке произведение первых двух элементов каждого столбца, в третьей строке элементы второй строки матрицы-результата умножаются на элементы третьей строки матрицы входного аргумента по столбцам и т. д.); cumprod(A,dim) — возвращает произведение с накоплением элементов по строкам или столбцам матрицы в зависимости от значения скаляра dim.

>> cumprod(A,1)

ans =

34 12 3 5 1

68 48 18 40 11

612 384 126 80 33

5508 3456 1134 560 198

0 3456 3402 2800 1188

>> cumprod(A,2)

ans =

34 408 1224 6120 6120

2 8 48 384 4224

9 72 504 1008 3024

9 81 729 5103 30618

0 0 0 0 0

cross(U, V) — возвращает векторное произведение векторов U и V в трехмерном пространстве, т. е. W=UV. U и V — обязательно векторы с тремя элементами; cross(U,V,dim) — возвращает векторное произведение U и V по размерности, определенной скаляром dim. U и V — многомерные мас-сивы, которые должны иметь одну и ту же размерность, причем размер век-торов в каждой размерности size(U,dim) и size(V,dim) должен быть равен 3.

>> a=[2 3 5]

a =

2 3 5

>> b=[7 8 9]

b =

7 8 9

>> cross(a,b)

ans =

-13 17 -5

8.8. Суммирование элементов

sum(A) — возвращает сумму элементов массива, если А — вектор, или век-тор-строку, содержащую сумму элементов каждого столбца, если А — мат-рица; sum(A,dim) — возвращает сумму элементов массива по столбцам (dim=1), строкам (dim=2) или иным размерностям в зависимости от значения скаляра dim.

>> a=magic(4)

a =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

>> b=sum(a)

b =

34 34 34 34

> sum(A,1)

ans =

54 34 28 27 27

>> sum(A,2)

ans =

55

31

29

40

15

>> sum(D,1)

ans =

34 23 21 65 34

>> sum(D,2)

ans =

177

cumsum(A) — выполняет суммирование с накоплением. Если А — вектор, cumsum(A) возвращает вектор, содержащий результаты суммирования с накоплением элементов вектора А. Если А — матрица, cumsum(A) возвращает матрицу того же размера, что и А, содержащую суммирование с накоплением для каждого столбца матрицы А;

cumsum(a)

ans =

16 2 3 13

21 13 13 21

30 20 19 33

34 34 34 34

>> cumsum(a,1)

ans =

16 2 3 13

21 13 13 21

30 20 19 33

34 34 34 34

>> cumsum(a,2)

ans =

16 18 21 34

5 16 26 34

9 16 22 34

4 18 33 34

8.9. Функции формирования матриц

Для создания матриц, состоящих из других матриц, используются следую-щие функции: repmat (А, m, n) — возвращает матрицу В, состоящую из mn копий матрицы А (т. е. в матрице mn каждый элемент заменяется на копию матрицы А); repmat(А,n) — формирует матрицу, состоящую из nn копий матрицы А; repmat(A,[m, n]) — дает тот же результат, что и repmat(A,m,n); repmat(A,[m n р...]) — возвращает многомерный массив (mnp...), состоящий из копий многомерного массива или матрицы А; repmat (A, m, n) — когда А — скаляр, возвращает матрицу размера mn со значениями элементов, заданных А, Это делается намного быстрее, чем A*ones(m,n).

>> repmat(A,2,1)

ans =

34 12 3 5 1

2 4 6 8 11

9 8 7 2 3

9 9 9 7 6

0 1 3 5 6

34 12 3 5 1

2 4 6 8 11

9 8 7 2 3

9 9 9 7 6

0 1 3 5 6

>> repmat(D,1,2)

ans =

34 23 21 65 34 34 23 21 65 34

>> repmat(D,2,1)

ans =

34 23 21 65 34

34 23 21 65 34

>> repmat(E,2,2)

ans =

43 43

65 65

87 87

12 12

32 32

43 43

65 65

87 87

12 12

32 32

>> repmat(A,2)

ans =

34 12 3 5 1 34 12 3 5 1

2 4 6 8 11 2 4 6 8 11

9 8 7 2 3 9 8 7 2 3

9 9 9 7 6 9 9 9 7 6

0 1 3 5 6 0 1 3 5 6

34 12 3 5 1 34 12 3 5 1

2 4 6 8 11 2 4 6 8 11

9 8 7 2 3 9 8 7 2 3

9 9 9 7 6 9 9 9 7 6

0 1 3 5 6 0 1 3 5 6

reshape(A,m,n) — возвращает матрицу В размерностью mn, сформирован-ную из А путем последовательной выборки по столбцам. Если число элемен-тов А не равно m  n, то выдается сообщение об ошибке;

reshape(A,m,n,p,...) или В = reshape(A,[m, n, р...]) — возвращает N-мерный массив с элементами из А, но имеющий размер m n p.... Произведение mn p... должно быть равно значению prod(size(A)).

reshape(A, size) — возвращает N-мерный массив с элементами из А, но перестроенный к размеру, заданному с помощью вектора size.

B =

4 5 6 7 8

99 65 44 23 1

9 9 7 7 4

>> size(B)

ans =

3 5

>> reshape(B,5,3)

ans =

4 9 23

99 6 7

9 44 8

5 7 1

65 7 4

>> size(D)

ans =

1 5

>> reshape(D,5,1)

ans =

34

23

21

65

34

Поворот матриц

Следующая функция обеспечивает поворот матрицы (по расположению эле-ментов): rot90(A) — осуществляет поворот матрицы А на 90° против часовой стрелки; rot90(A,k) — осуществляет поворот матрицы А на величину 90*k градусов, где k — целое число.

Пример:

a =

1 2 3 4

7 6 5 4

98 65 34 12

33 22 44 55

>> rot90(a)

ans =

4 4 12 55

3 5 34 44

2 6 65 22

1 7 98 33

>> rot90(a,2)

ans =

55 44 22 33

12 34 65 98

4 5 6 7

4 3 2 1

8.10 Матричные функции

ехрm(Х) — матричная экспонента – возвращает ехp от матрицы X. Комплексный результат получается, если X имеет неположительные собственные значения.

Пример:

f =

32 23 12

2 3 6

7 5 3

>> expm(f)

ans =

1.0e+015 *

9.0387 6.7798 4.3986

0.8865 0.6649 0.4314

1.9967 1.4977 0.9717

>> b=[i 2i -1; 2+i -3i 1/i; 2-3i 1+4i i]

b =

0 + 1.0000i 0 + 2.0000i -1.0000

2.0000 + 1.0000i 0 - 3.0000i 0 - 1.0000i

2.0000 - 3.0000i 1.0000 + 4.0000i 0 + 1.0000i

>> expm(b)

ans =

-0.6417 + 0.2870i 0.4812 - 0.6678i 0.1580 - 0.8727i

-0.0003 - 1.2086i -0.9349 - 2.3955i -1.1866 - 0.4947i

3.0891 + 3.0731i 4.3875 + 1.5792i 1.0155 - 1.6050i

>> sqrtm(A)

ans =

Columns 1 through 4

5.7728 + 0.0000i 1.6108 + 0.0000i 0.1321 + 0.0000i 0.4209 - 0.0000i

0.0376 + 0.0000i 1.0538 - 0.0000i 0.8133 - 0.0000i 1.4589 - 0.0000i

1.1039 + 0.0000i 1.8432 + 0.0000i 2.3899 + 0.0000i -0.1565 + 0.0000i

0.9206 - 0.0000i 1.4836 + 0.0000i 1.7187 + 0.0000i 1.9924 - 0.0000i

-0.1679 - 0.0000i -0.2815 - 0.0000i 0.2316 - 0.0000i 1.2368 + 0.0000i

Column 5

-0.4830 - 0.0000i

2.9651 + 0.0000i

-0.3782 - 0.0000i

0.6043 - 0.0000i

2.4686 + 0.0000i

>> logm(A)

ans =

3.4843 1.0961 -0.1282 0.1991 -0.9378

-0.0474 -0.1816 0.6040 0.8641 3.7342

0.5936 2.1095 1.5684 -0.3561 -1.6653

0.3599 1.0586 1.5375 1.0579 0.1376

-0.1802 -0.6858 -0.1722 1.2779 2.1079

>> log(D)

ans =

3.5264 3.1355 3.0445 4.1744 3.5264

>> sqrt(E)

ans =

6.5574

8.0623

9.3274

3.4641

5.6569

> size(A)

ans =

5 5

>> size(A,1)

ans =

5

>> size(A,2)

ans =

5

>> size(B)

ans =

3 5

>> size(B,1)

ans =

3

>> size(B,2)

ans =

5

>> [M,N]=size(B)

M =

3

N =

5