Материал: MATLAB2

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

23

  1. Элементарные математические вычисления

    1. Арифметические операторы и функции

Арифметические операторы наиболее распространены и известны. Каждый оператор имеет аналогичную по назначению функцию. Так оператору матричного умножения «*» соответствует функция mtimes(Ml, M2). Примеры применения арифметических операторов приводились ранее. В табл. 3.1 представлен список арифметических операторов и их синтаксис.

Таблица 3.1

Функция

Название и символ

обозначения оператора

Синтак-сис

Функция

Название и символ

обозначения оператора

Синтак-сис

Plus

Плюс +

М1 + М2

Minus

Минус –

М1 – М2

Uplus

Унарный плюс +

Uminus

Унарный минус –

–М

Mtimes

Матричное умножение *

М1*М2

Times

Поэлементное умножение массивов .*

А1.*А2

Mpower

Возведение матрицы в степень ^

М1^х

Power

Поэлементное возведение массива в степень .^

А1.^х

Mrdivide

Деление матриц слева направо /

М1/М2

Rdivide

Поэлементное деление массивов слева направо ./

А1./А2

Mldivide

Обратное (справа налево) деление матриц \

M1\M2

Ldivide

Поэлементное деление массивов справа налево .\

А1.\А2

Kron

Тензорное умножение Кронекера kron

kron(X, Y)

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

    1. Вычисление произведений

Три функции перемножают элементы матриц (примеры в табл. 3.2):

  • prod(A) возвращает произведение элементов массива, если А – вектор, или вектор-строку, содержащую произведения элементов каждого столбца, если А – матрица; prod (A, dim) возвращает матрицу (массив размерности два) с произведением элементов массива А по столбцам (dim = 1), по строкам (dim = 2), по иным размерностям в зависимости от значения скаляра dim;

  • cumprod(A) возвращает произведение с накоплением. Если А – вектор, то cumprod(A) возвращает вектор, содержащий произведения с накоплением элементов вектора А. Если А – матрица, то cumprod(A) возвращает матрицу того же размера, что и А, содержащую произведения с накоплением для каждого столбца матрицы А (первая строка – без изменений, во второй строке – произведение первых двух элементов каждого столбца, в третьей строке – элементы второй строки матрицы-результата умножаются на элементы третьей строки матрицы входного аргумента по столбцам и т. д.); cumprod(A, dim) возвращает произведение с накоплением элементов по строкам или столбцам

матрицы в зависимости от значения скаляра dim;

Таблица 3.2

Матрица

Операция

Матрица

Операция

»A = [1234; 2457; 6]

A =

1234

2457

6

»B = prod(A)

B =

18191628

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

A =

1 2 3

4 5 6

7 8 9

»В = cumprod(A)

B =

1 2 3

4 10 18

28 80 162

  • cross(U, V) возвращает векторное произведение векторов U и V в трехмерном пространстве, т. е. = U  V (U и V – обязательно векторы с тремя элементами); cross(U, V, dim) возвращает векторное произведение U и V по размерности, определенной скаляром dim. Здесь U и V – многомерные массивы, которые должны иметь одну и ту же размерность, причем размер векторов в каждой размерности size(U, dim) и size(V, dim) должен быть равен 3.

    1. Суммирование элементов

Определены следующие функции суммирования элементов массивов (примеры в табл. 3.3):

  • sum(A) возвращает сумму элементов массива, если А – вектор, или вектор-строку, содержащую сумму элементов каждого столбца, если А – матрица; sum(A, dim) – сумму элементов массива по столбцам (dim = 1), строкам (dim = 2) или иным размерностям в зависимости от значения скаляра dim;

Таблица 3.3

Матрица

Операция

Матрица

Операция

»A = magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

»B = sum(A)

B =

34 34 34 34

»A = magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

»В = cumsum(A,1)

B =

16 2 3 13

21 13 13 21

30 20 19 33

34 34 34 34

  • cumsum(A) выполняет суммирование с накоплением. Если А – вектор, то cumsum(A) возвращает вектор, содержащий результаты суммирования с накоплением элементов вектора А. Если А – матрица, то cumsum(A) возвращает матрицу того же размера, что и А, содержащую суммирование с накоплением для каждого столбца матрицы А; cumsum(A, dim) выполняет суммирование с накоплением элементов по размерности, определенной скаляром dim. Например, cumsum(A, 1) выполняет суммирование по столбцам.

    1. Операторы отношения и их функции

Над массивами можно выполнять операции отношения для сравнения двух величин, векторов или матриц одинакового размера:

A < B , A <= B , A > B , A >= B (только для действительных частей), A = = B, ~ =B (равно/не равно – для действительных и мнимых частей), которые порождают массив с единицами (истина) и нулями (ложь) той же размерности. Все операторы отношения имеют 2 операнда, например x и y, и записываются, как показано в табл. 3.4. Примеры использования даны в табл. 3.5.

Таблица 3.4

Функция

Название

Оператор

Пример

Eq

Равно

= =

x = = y

Ne

He равно

~ =

x ~ = y

Lt

Меньше чем

<

x < y

Gt

Больше чем

>

x > y

Le

Меньше или равно

<=

x <= y

Ge

Больше или равно

>=

x >= y

Таблица 3.5

Дано

Равно

He равно

Больше

Меньше

Больше

или равно

Меньше

или равно

»d = [4 3]

d =

4 3

»f = [2 3]

f =

2 3

»d = = f

ans =

0 1

»d ~ = f

ans =

1 0

»d > f

ans =

1 0

»d < f

ans =

0 0

»d >= f

ans =

1 1

»d <= f

ans =

0 1

Если один из операндов – скаляр, происходит сравнение всех элементов второго операнда-массива со значением этого скаляра.

    1. Логические операции

Аналогично реализуются и логические операции. Логические операторы и соответствующие им функции (табл. 3.6) служат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов: отрицания ~A, конъюнкции (И) A&B, дизъюнкции (ИЛИ) A|B и т. д. Аргументами логических операторов могут быть числа и строки. Если аргумент – число, логический нуль соответствует числовому нулю, а любое отличное от нуля число – логической единице. Для строк действует правило – каждый символ строки представляется своим ASCII-кодом.

Таблица 3.6

Функция

Название

And

Логическое И (AND) &

Or

Логическое ИЛИ (OR) |

Not

Логическое НЕ (NOT) ~

Хоr

Исключающее ИЛИ (EXCLUSIVE OR)

Any

Верно, если не все элементы вектора равны нулю

All

Верно, если все элементы вектора не равны нулю

Таблица 3.7

Дано

Логическое И

Логическое ИЛИ

Логическое НЕ (NOT)

»d = [1 1 1]

d =

1 1 1

»f = [0 0 1]

f =

0 0 1

»d & f

ans =

0 0 1

» df

ans =

1 1 1

»~f

ans =

1 1 0

Исключающее ИЛИ

Верно, если не все элементы вектора равны нулю

Верно, если все элементы вектора не равны нулю

»xor(d,f)

ans =

1 1 0

»any(f)

ans =

1

»all(f)

ans =

0

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

    1. Системные переменные и константы

Системные переменные и константы устанавливаются системой при ее загрузке или автоматически формируются в процессе вычислений. Некоторые

из них приведены в табл. 3.8.

Таблица 3.8