Арифметические операции

Набор арифметических операций в MATLAB состоит из стандартных операций сложения-вычитания, умножения-деления, операции возведения в степень и дополнены специальными матричными операциями [1 - 3]. Если операция применяется к матрицам, размеры которых не согласованы, то будет выведено сообщение об ошибке. Для поэлементного выполнения операций умножения, деления и возведения в степень применяются комбинированные знаки (точка и знак операции). Например, если за матрицей стоит знак (^), то она возводится в степень, а комбинация (.^) означает возведение в степень каждого элемента матрицы. При умножении (сложении, вычитании, делении) матрицы на число соответствующая операция всегда производится поэлементно. В табл. 1.5 указаны знаки арифметических операций.

Таблица 1.5

Символ Назначение
+,- Символы плюс и минус обозначают знак числа или операцию сложения и вычитания матриц, причем матрицы должны быть одной размерности
* Знак умножения обозначает матричное умножение; для поэлементного умножения матрицы применяется комбинированный знак (.*)
Апостроф обозначает операцию транспонирования (вместе с комплексным сопряжением); транспонирование без вычисления сопряжения обозначается при помощи комбинированного знака (.‘)
/ Левое деление
\ Правое деление
^ Оператор возведения в степень; для поэлементного возведения в степень применяется комбинированный знак (.^)

Проиллюстрируем различие обычного и поэлементного умножений при помощи следующего примера. Введём матрицу X размера 2х2 и матрицу A из единиц той же размерности:

>> X=[0 3; 1 0], A=ones(size(X))

X =

0 3

1 0

A =

1 1

1 1

Перемножим матрицы, используя обычное умножение:

>> X*A

ans =

2 3

1 1

Теперь применим поэлементную операцию:

>> X.*A

ans =

0 3

1 0

Понятно, что при поэлементном умножении вектора a=[7,2,4] на себя или при поэлементном возведении в квадрат результат получится одинаковым:[49 4 16]. Образуем матрицу умножением вектора столбца, полученного транспонированием из строки, на исходный вектор-строку:

>> L=a'*a

L =

49 14 28

14 4 8

28 8 16

Прибавим к матрице L единичную матрицу той же размерности, умноженную на комплексное число pi+i, и вычтем из полученного результата число 4,полученый результат умножим на 1.5:

>> D=(L+(pi+i)*eye(size(L))-4)*1.5

D =

72.2124 + 1.5000i 15.0000 36.0000

15.0000 4.7124 + 1.5000i 6.0000

36.0000 6.0000 22.7124 + 1.5000i

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

>> ones(2)*eye(3)

??? Error using ==> *