Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

;

 

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 =

1-2i

3-4i

 

 

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

 

z. =

1+2i

3+4i

 

Для комплексных векторов, два скалярных произведения 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

а

0 : 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. Почему маги-ческая сумма для волшебного к