Материал: Matlab. Практический подход. Самоучитель

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Самоучитель Matlab

одинаковых размеров. Так, если ˆ и ˆ – квадратные матрицы одного раз-

A B

ˆ

ˆ

ˆ

ˆ

мера, то можно вычислить и произведение A B, и произведение B

A, но

результат вычислений в общем случае различный. То есть свойством коммутативности матричное произведение не обладает.

На заметку

ˆ

 

 

 

ЕслиматрицаAсостоитизэлементов aik (индексы i = 1,2,..,m и k = 1,2,..., p ),

ˆ

 

 

(индексы k = 1,2,..., p и j = 1,2,...,n ),

а матрица B состоит из элементов bkj

 

 

 

p

ˆ

ˆ

ˆ

вычисляются как cij = aikbkj , при

то элементы матрицы C

= A B

k =1

условии, что индексы принимают значения i = 1,2,..,m и j = 1,2,...,n .

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

На заметку

Поэтому при вычислении произведения вектора-строки на вектор-столбец получаем скаляр: это матрица, которая состоит из одной строки одного столбца.

Пример вычисления матричного произведения приведен в документе на рис. 4.5.

В командном окне представлен такой код (жирным шрифтом выделен ввод пользователя):

>> A=[1 -2 3 -1;0 -2 1 2;-2 1 1 0]

A =

1

-2

3

-1

0

-2

1

2

-2

1

1

0

>> B=[1 2;-2 1;0 -1;1 0]

B =

12

-2 1

0-1

10

>>C=A*B

C =

4

-3

6

-3

-4

-4

Исходные матрицы имеют размеры 3×4 и 4×2, поэтому матрица-результат имеет размер 3×2.

156

Глава 4. Элементы матричной алгебры

Рис. 4.5. Произведение матриц

На заметку

Результатом произведения двух квадратных матриц размера n ×n является квадратная матрица размера n ×n .

Достаточно тривиальной является процедура транспонирования матрицы. При транспонировании матрица-результат получается из исходной матрицы взаимной заменой строк и столбцов: первая строка исходной матрицы становится первым столбцом матрицы-результата, вторая строка исходной матрицы становится вторым столбцом матрицы-результата и так далее. В Matlab для выполнения операции транспонирования используется оператор .' (или оператор ' для действительных матриц).

На заметку

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

157

Самоучитель Matlab

Если к матрице C из предыдущего примера, где вычислялось матричное произведение, применить процедуру транспонирования, получим результат, как на рис. 4.6.

Рис. 4.6. Транспонирование матрицы

Для вычисления суммы или разности матриц они должны быть одинакового размера. При умножении или делении матрицы на число эта операция применяется к каждому элементу матрицы. В качестве иллюстрации рассмотрим такой код:

>> A=[1 2 3;-2 -1 0]

A =

1 2 3 -2 -1 0

>> B=[0 -1 2;1 -1 2]

B =

0

-1

2

1

-1

2

>> C=2*A-3*B

 

C =

7

0

2

-7

1

-6

Этим кодом вычисляется линейная

ˆ

ˆ

ˆ

комбинация матриц C

= 2A − 3B.

Результат получается так. Каждый

элемент матрицы ˆ умножается на

A

2. От элементов полученной матрицы отнимаются соответствующие

элементы матрицы ˆ, предвари-

B

тельно умноженные на 3 (рис. 4.7).

Определитель, или детерминант,

вычисляется только для квадрат- Рис. 4.7. Линейная комбинация матриц

158

Глава 4. Элементы матричной алгебры

ных матриц. Это число. Методику его вычисления проще всего описать через рекурсивную процедуру. Так, для матрицы размерами 2×2 детерминант вычисляется как разность произведений диагональных и недиагональных эле-

ˆ

a

11

a

12

 

 

 

 

 

 

 

 

 

 

ментов. Другими словами, если матрица A =

 

a

 

, то ее детерминант

 

a

21

22

 

 

 

 

 

 

ˆ

= a11a22 a12a21. Для квадратных матриц размера

вычисляется как det(A)

 

 

n

 

 

 

 

 

ˆ

i+j

aijMij , где

n ×n (n > 2 ) детерминант вычисляется так: det(A) = (−1)

 

 

 

j =1

 

 

 

индекс i

- любой в пределах от 1 до n , а через Mij обозначен дополнитель-

ныйкэлементу aij минор–определительматрицыразмера (n −1)×(n −1),

которая

получается из

исходной матрицы вычеркиванием

 

i -й строки

и j -го столбца. Уже отсюда совершенно очевидно, что вычислять детерминант матрицы лучше с помощью специальных, предназначенных для этой цели, функций, которые в Matlab, к счастью, имеются. В частности, детерминант вычисляется с помощью функции det(). Аргументом функции указывается матрица, для которой вычисляется детерминант. Пример вычисления детерминанта матрицы приведен в документе на рис. 4.8.

Рис. 4.8. Вычисление детерминанта матрицы

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

ˆ называется такая матрица (обычно обозначается ˆ−1), которая, будучи

A A

умноженной на матрицу ˆ, дает единичную матрицу (по диагонали едини-

A

цы, а все прочие элементы равны нулю). Для вычисления обратной матри-

159

Самоучитель Matlab

цы в Matlab используется функция inv(), аргументом которой указывается матрица, для которой нужно вычислить обратную. Пример вычисления обратной матрицы приведен в документе на рис. 4.9.

Рис. 4.9. Вычисление обратной матрицы

Мы использовали такую последовательность команд (жирным шрифтом выделен ввод пользователя):

>> A=[1 2 1;-1 0 1;2 -1 1]

A =

1

2

1

-1

0

1

2

-1

1

>> B=inv(A)

B =

0.1250

-0.3750

0.2500

0.3750

-0.1250

-0.2500

0.1250

0.6250

0.2500

>> A*B

 

 

 

ans =

0

0

 

1

 

0

1

0

 

0

0

1

 

160

Источник: https://studfile.net/preview/16433384/