Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MLab.doc
Скачиваний:
5
Добавлен:
17.11.2018
Размер:
818.69 Кб
Скачать

Операции с векторами и матрицами.

В ML операции с векторами и матрицами подразделяются на два типа: поэлементные операции и векторные операции, которые соответствуют правилам векторного исчисления в математике.

Помимо преобразования векторов с помощью математических функций, в ML можно выполнять поэлементные преобразования векторов с помощью арифметических операторов. Следует помнить, что операции поэлементного преобразования возможны только над векторами одного размера и типа. Оператор поэлементного умножения это совокупность знаков точка и звездочка, записанных без пробела (.*).

<<A=[2 5 7];

<<B=[1 2 3]];

<<C=A.*B

C=

2 10 21

Оператор поэлементного деления и возведения в степень записываются соответственно, как ‘’./’’ ‘’.^’’.

Векторное исчисление предусматривает следующие операции над векторами: сложение и вычитание векторов одного типа, транспонирование векторов, умножение вектора на вектор (при условии, что они одного размера и один из них является вектор - столбцом, а другой – вектор – строкой или наоборот), а также скалярное и векторное произведение векторов.

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

<<A=[1 2 3];

<<B=[1;2;3]:

<<A*B

ans=

44

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

<<B*A

ans=

2 6 10

4 12 20

6 18 30

Для транспонирования векторов применяется апостроф.

<<A=[1 2 3];

<<B=A’

B=

1

2

3

Выполнение операций над матрицами.

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

>> 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(n, m) * B(m, k) → C(n, k)

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

Элементы результирующей матрицы вычисляются по правилу: элементы строки матрицы 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

Создать 2 матрицы.

1-у единичную, 2-ю А=[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)

ans =

1 0 0

0 1 0

0 0 1

>> B=A*eye(3)

B =

1 2 3

4 5 6

7 8 9

>> C=A.*eye(3)

C =

1 0 0

0 5 0

0 0 9

Умножим элементы матрицы А на 2.

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

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

>>C = A * 2

C =

2 4 6

8 10 12

14 16 18

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

Пусть заданы 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 — матрица, а Х — вектор.

А * Х = В и Х * А = В — разные уравнения.

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

Х = А / В = (В *А-1)

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

Х = А \ В =-1 * В)

Решение системы линейных уравнений

2x1 + 3x2 = 11

3x1 – 4x2 = 8

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

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

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

>> B=[11 8 ];

>> C=A\B'

C =

4.0000

1.0000

Проверка

>> A*C

ans =

11.0000

8.0000

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]