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

Вектор-строка и вектор-столбец могут быть перемножены в любом порядке (оператор умно-жения * расположен на верхнем регистре клавиши с цифрой 8). Результатом будет или ска-ляр (внутреннее произведение) или матрица (внешнее произведение). Для приведенных выше векторов v и u имеем :

x = v* u

                                                            x =

2

X = u* v

                                                            X =

6 0 -3

2 0 -1

8 0 -4

Для действительных матриц, операция транспонирования меняет взаимное местоположение элементов aij  aji, симметричных относительно главной диагонали. Для обозначения транс-понирования MATLAB использует одиночную кавычку (апостроф) (‘). Для нашей симметри-чной матрицы Паскаля A’ = A. Однако матрица В не является симметричной и поэтому:

 

X = B'

                                                          X =

8 3 4

1 5 9

6 7 2

Транспонирование превращает вектор-строку в вектор-столбец и наоборот. Если x и y оба яв-ляются действительными векторами, то произведение x*y  не определено, но оба произве-дения x'*y и y'*x дают один и тот же скаляр. Это соотношение используется так часто, что имеет три различных имени: скалярное произведение, внутреннее произведение и точечное произведение.

Для комплексного вектора или матрицы, z, величина z' обозначет комплексно-сопряженное транспонирование. В MATLAB-е предусмотрены также поэлементные операции над элеме-нтами массивов. Признаком поэлементных операций служит точка после обозначения пере-менной. Так, транспонирование элементов матрицы z как массива чисел обозначается z.', по аналогии с другими операциями на массивами чисел. Например, если

z = [1+2i 3+4i]

то

                                                       z' =     

I

I

 

тогда как  z.' есть

 

                                                          z.' =

1+2 i

3+4 i

Для комплексных векторов, два скалярных произведения x'*y и y'*x комплексно сопряжены, а скалярное произведение x'*x комплексного вектора с самим собой есть действительное число.

Произведение матриц

Для произведения двух совместимых А и В матриц в MATLAB–е достаточно записать в ко-мандной строке С = А*В . MATLAB самостоятельно проверит совместимость размерностей матриц и выдаст результат. Если матрицы несовместимы, выдается сообщение об ошибке:

 

Error using ==> *

Inner matrix dimensions must agree.

Индексирование (Subscripts)

Для краткого рассмотрения некоторых основных понятий, связанных с индексированием дву-мерных массивов (матриц), введем «волшебную» матрицу 4-го порядка:

 

F = magic(4)

                                                     F =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

Элемент в i-ой строке и j-ом столбце матрицы F обозначается через F (i,j). Например, F (4,2) есть число в четвертой строке и втором столбце. Для нашего волшебного квадрата, F(4,2) есть 14. Таким образом, можно вычислить сумму элементов четвертого столбца матрицы F, напечатав

 

F (1,4) + F (2,4) + F (3,4) + F (4,4)

 

Это дает ответ

                                                         ans =

34

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

Имеется также возможность обращения к элементам матрицы при помощи одного индекса, F(k). Это обычный способ обращения к элементам векторов (строк или столбцов). Но в MATLAB-е такой способ индексирования можно применить и к двумерным (в общем случае – многомерным) матрицам, так как система MATLAB хранит все многомерные массивы чи-сел в виде одного длинного вектора-столбца, сформированного из столбцов исходной матри-цы. Так, для нашего волшебного квадрата, F (8) есть другой способ обращения к начени 14 хранящемуся в F (4,2).

Если вы попытаетесь использовать элемент, находящийся вне размеров матрицы, это приве-дет к сообщению об ошибке

 

t = F (4,5)

Index exceeds matrix dimensions

(Индекс превышает размерность матрицы)

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

X = A;

X(4,5) = 17

                                                    X =

16 3 2 13 0

5 0 11 8 0

9 6 7 12 0

4 15 14 1 17

Двоеточие (Colon)

Двоеточие, : , является одним из наиболее важных операторов MATLAB-а. Оно встречается в нескольких разных формах. Выражение 1:10 есть вектор-строка, содержащий целвые числа от 1 до 10:

1 2 3 4 5 6 7 8 9 10

Чтобы получить неединичное приращение, нужно задать приращение. Например,

100 : -7 : 50

есть

100 93 86 79 72 65 58 51

а

Pi/4 : pi

есть

 

0 0.7854 1.5708 2.3562 3.1416

 

Индексы, содержащие двоеточия, допускают обращение к частям матриц. Так, выражение

F (1:k, j)

 

дает первые k элементов j-го столбца матрицы F. То есть,

 

Sum(F (1:4, 4))

 

вычисляет, как и в примере выше, сумму элементов 4-го столбца. Но есть еще лучший путь. Двоеточие само по себе означает обращение ко всем  элементам строки или столбца матрицы, а зарезервированное слово end есть обращение к последним строке или столбцу матрицы (в случае векторов-строк или столбцов слово end есть обращение к последнему элементу векто-ра). Значит,

sum( F (:, end))

 

вычисляет сумму элементов последнего столбца матрицы F . Ответ: ans = 34. Почему маги-ческая сумма для волшебного квадрата 4 х 4 равна 34 ? Дело в том, что если целые числа от 1 до 16 (число элементов матрицы размера 4 х 4) упорядочены в четыре группы с равными сум-мами элементов, эта сумма должна быть равна

 

Sum(1:16)/4

 

что, конечно, дает ans = 34.

 

Дата: 2019-05-28, просмотров: 254.