Выполнение операций над матрицами
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Операции с матрицами, как и с векторами, могут выполняться поэлементно, а могут – по правилам матричной алгебры. Операции, выполняемые в ML с матрицами:

· Транспонирование матрицы. Операция обозначается символом апостроф ( ' ).

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> B=A'

B =

1 4 7

2 5 8

3 6 9

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

Размер матриц должен быть одинаковым. При выполнении этих операций производится поэлементное сложение и вычитание.

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> B=[1 4 7;2 5 8;3 6 0]

B =

1 4 7

2 5 8

3 6 0

>> C=A+B

C =

2 6 10

6 10 14

10 14 9

>> D=A-B

D =

0 -2 -4

2 0 -2

4 2 9

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

При умножении A * B должно выполняться условие: число столбцов матрицы A равно числу строк матрицы B .

A(n, m) * B(m, k) → C(n, k)

Элементы результирующей матрицы вычисляются по правилу: каждый элемент строки матрицы A умножается на соответствующий элемент столбца матрицы B , затем произведения складываются, и получается один элемент матрицы С.

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5    6

7 8 9

>> B=[1 4 7;2 5 8;3 6 0]

B =

1 4 7

2 5 8

3 6 0

>> C=A*B

C =

14 32 23

32 77 68

50 122 113

Матрицу можно умножать на число. В результате получим матрицу, в которой каждый элемент получается умножением элемента исходной матрицы на это число.

>> A=[1 2 3;4 5 6;7 8 9];

>>C = A * 2

C =

2 4 6

8 10 12

14 16 18

Если надо, чтобы действия производились поэлементно, то перед знаком операции ставится точка.

Создадим две матрицы: одну - единичную, вторую А=[1 2 3; 4 5 6; 7 8 9].

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> Е=eye(3)

Е =

1 0 0

0 1 0

0 0 1

>> B=A*Е

B =

1 2 3

4 5 6

7 8 9

Матрица В получена в результате матричного умножения матриц А и Е.

>> C=A .*Е

C =

1 0 0

0 5 0

0 0 9

Матрица С получена в результате поэлементного умножения матриц А и Е.

Пусть заданы 2 матрицы C и D одинакового размера.

>> C=[1 2 3; 4 5 6; 7 8 9];

>> D=[2 3 4; 1 2 3; 4 5 6];

>> Y=C.*D

Y =

2 6 12

4 10 18

28 40 54

· Деление (правое и левое)

В ML имеется две разновидности операции деления матриц – правое деление (/) и левое деление (\)

В случае с числами 2/3 в ML трактуется как результат деления 2 на 3.

2 \ 3 соответствует результату деления 3 на 2.

С векторами и матрицами происходит иначе.

Пусть A — матрица, а Х — вектор. А * Х = В и Х * А = В — разные уравнения.

Для решения уравнения  Х * А = В- используется обычное деление

Х = B / A = В *А-1

Для решения уравнения А * Х = В - используется обратное деление

Х = А \ В = А-1 * В

Операция обратного деления используется для решения системы линейных уравнений. Например,

2x1 + 3x2 = 11

3x1 – 4x2 = 8

A — матрица коэффициентов левой части.

B — вектор правых частей.

Решается уравнение вида A*X=B

>> A=[2 3;3 -4];

>> B=[11 8 ];

>> Х=A\B'

Х =

4.0000

1.0000

Для проверки можно выполнить умножение A*X

>> A*X

ans =

11.0000

8.0000

В результате получили вектор правых частей, что доказывает правильность найденного решения.

Специальные функции для матриц

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

det ( A ) – вычисляет определитель (детерминант) матрицы.

inv ( A ) – вычисляет инверсную (обратную) матрицу.

Обратной для квадратной невырожденной (когда детерминант не равен нулю) матрицы А называется матрица А-1, которая при умножении на матрицу А справа и слева даёт единичную матрицу. B называется обратной А, если выполняется АВ=ВА=Е (единичная матрица).

eig ( A ) – определение собственных чисел (характеристических чисел);

norm ( A , 1) – норма матрицы – наибольшая сумма модулей элементов столбцов;

norm ( A , inf ) – наибольшая сумма модулей элементов строки;

trace ( A ) – след матрицы (сумма элементов главной диагонали).

Действия с элементами матрицы

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

Если указать A (2,1), то выберется элемент второй строки первого столбца.

Можно выделить часть матрицы. Это делается с помощью символа двоеточие (:).

Пусть задана матрица:

>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9

Если двоеточие стоит вместо номера строки или столбца, то соответственно выделяются столбец или строка.

Получим 3-ий столбец матрицы А

>> B=A(:,3)

B =

3

6

9

Получим 3-ю строку матрицы А

>> X=A(3,:)

X =

7 8 9

Дата: 2019-02-02, просмотров: 300.