Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



К арифметическим операциям в ML относятся: cложение (+), вычитание (-), умножение (*), деление (/), обратное деление (\), возведение в степень(^ ), транспонирование (‘).

Приоритеты АО:

· возведение в степень, транспонирование;

· умножение, деление;

· сложение, вычитание.

Все арифметические операции являются “матричными” и осуществляются по правилам линейной алгебры.

При необходимости поэлементного выполнения операций над матрицами и векторами перед знаками операций ^, *, /, \ следует ставить точку:

 

> > X=[1 2 3 4];

> > X.^2

ans =

1 4 9 16

В данном случае каждый элемент исходного вектора возводится в квадрат. Выполнение команды X ^ 2 невозможно, так как это противоречит правилам матричной алгебры.

Транспонирование тоже бывает с точкой, тогда для комплексных чисел оно выполняется без комплексного сопряжения.

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

Каждой арифметической операции в ML соответствует определенная функция. Например, plus(x, y) – сложение массивов, times(x, y) – поэлементное умножение массивов, mtimes(x, y) – матричное умножение и т.д.:

 

> > 2+3

ans =

> > plus(2, 3)

ans =

> > X=[1 2 3 4];

> > Y=[5 6 7 8];

> > times(X, Y)

ans =

5 12 21 32

> > X.*Y

ans =

5 12 21 32

 

Выполнение арифметических операций с матрицами будет подробно рассмотрено далее.

Операции отношения

К операциям отношения в ML относятся: равно ( = = ), не равно ( ~ = ), меньше( < ), меньше или равно (< =), больше (> ), больше или равно (> =).

Операции отношения используются для поэлементного сравнения двух операндов (чисел, матриц, векторов одинакового размера). Результатом операции отношения может быть соответственно число, матрица или вектор, состоящие из элементов,
обозначающих «истина» или «ложь». В ML это 1 и 0 соответственно:

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

> > B=[8 -9 1; 7 2 2];

> > A> B

ans =

0 1 1

0 1 0

 

В результате получили матрицу, каждый элемент которой имеет значение «истина» или «ложь»:

 

> > x=1; y=2; z=3;

> > ((x+y)==z)+(y< z)+(x< =y)

ans =

 

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

 

В ML существует возможность представления логических выражений с помощью логических операторов и логических операций. Логические операции предназначены для выполнения поэлементных логических операций над векторами и матрицами одинаковых размеров. К логическим операциям относятся логическое
И(& ), логическое ИЛИ (|), логическое НЕ (~).

Вместо логических операций можно пользоваться логическими операторами (функциями) and, or, not соответственно. Логические операторы определены над матрицами одинаковой размерности и выполняются над каждым из элементов.

В логических выражениях используются логические операции и операции отношения.

 

Приоритет операций в ML

 

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

1) логическая операция НЕ (~);

2) транспонирование(.’, ’), возведение в степень(.^, ^);

3) унарный плюс (+), унарный минус (-);

4) умножение и деление(.*, ./, .\, *, /, \);

5) сложение и вычитание (+, -);

6) операции отношения (<, >, < =, > =, ==, ~=);

7) логическая операция И(& );

8) логическая операция ИЛИ(|).

Элементарные функции

 

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

Существуют встроенные тригонометрические и гиперболические функции: sin(x), cos(x), tan(x), cot(x), asin(x), acos(x), atan(x), acot(x), sinh(x) и т.д. Аргументы этих функций могут задаваться в радианах и градусах (в следующих версиях, начиная с версии 7.0). У функций в градусной мере после названия добавляется буква d. sin(x) – аргумент в радианах, а sind(x) – аргумент в градусах.

Некоторые часто используемые математические функции:

· exp(x)–экспонента числа x;

· log(x)– натуральный логарифм;

· log10(x)– десятичный логарифм;

· sqrt(x)– квадратный корень;

· abs(x)– абсолютное значение x;

· real(z)– вещественная часть комплексного числа;

· imag(z)– мнимой часть комплексного числа;

· mod(x, y)– остаток от целочисленного деления;

· round(x)– округление до ближайшего целого.

Для работы с датами можно воспользоваться функциями:

· calendar – выводит календарь на текущий месяц;

· date – выводит текущую дату.

Все элементарные функции, приведенные выше, можно применять к векторам и матрицам. Если введен вектор X, то, задав функцию Y=sin(X), получим вектор, элементами которого будут значения синусов элементов исходного вектора:

 

> > X=[1 2 3 4];

> > Y=sin(X)

Y =

0.8415 0.9093 0.1411 -0.7568

 

Информацию о любой функции ML можно получить, выполнив команду: help < имя функции>.

Особые матрицы

 

B ML можно не только задавать матрицы своими значениями или формировать их по формулам, но можно с помощью специальных функций получать особые матрицы:

1. Матрица случайных чисел:

rand(n, m) –формирует матрицу из n строк и m столбцов, заполненную случайными равномерно распределенными числами в интервале от 0 до 1.

rand(n) – формирует квадратную матрицу случайных чисел.

 

> > A=rand(3)

A =

0.9501 0.4860 0.4565

0.2311 0.8913 0.0185

0.6068 0.7621 0.8214

 

Можно задавать размер матрицы, используя вектор из двух элементов, равных числу строк и столбцов. Например,

 

> > B=rand([3 4])

B =

0.9501 0.4860 0.4565 0.4447

0.2311 0.8913 0.0185 0.6154

0.6068 0.7621 0.8214 0.7919

 

Если надо сгенерировать матрицу такого же размера, как и существующая матрица, то необходимо выполнить команду

 

> > rand(size(A))

ans =

0.4103 0.3529 0.1389

0.8936 0.8132 0.2028

0.0579 0.0099 0.1987

size(A) – функция, возвращающая размер матрицы А в виде вектора.

 

2. Магический квадрат (матрица, у которой суммы элементов в строках, столбцах и диагоналях одинаковы) – magic(n, m):

 

> > magic(3)

ans =

8 1 6

3 5 7

4 9 2

 

3. Единичная матрица – eye(n, m):

 

> > eye(3)

ans =

1 0 0

0 1 0

0 0 1

 

4. Матрица из 0 – zeros(n, m):

 

> > zeros(3)

ans =

0 0 0

0 0 0

0 0 0

 

5. Матрица из 1 – ones(n, m):

 

> > ones(3)

ans =

1 1 1

1 1 1

1 1 1

 

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

 

> > V=[1 2 3 4 5];

> > diag(V)

ans =

1 0 0 0 0

0 2 0 0 0

0 0 3 0 0

0 0 0 4 0

0 0 0 0 5

 

7. Выделение диагонали из матрицы:

 

> > diag(A)

ans =

0.9501

0.8913

0.8214

 

Результат – вектор-столбец, состоящий из элементов, расположенных на главной диагонали. Иными словами, при исполь-
зовании этой функции, если параметром является матрица, результатом будет вектор, а если параметр – вектор, результат – матри-
ца.

Для увеличения быстродействия работы программы бывает полезно заранеезадать размерность матрицы, для этого создать матрицу с нулевыми элементами – zeros(n, m), а затем заполнять ее значениями.

 

Операции с векторами и матрицами

 

В ML операции с векторами и матрицами подразделяются на два типа: поэлементные преобразования и матричные (векторные) операции, которые соответствуют правилам линейной алгебры.

 

Выполнение операций с векторами

 

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

 

> > A=[2 5 7];

> > B=[1 2 3];

> > C=A.*B

C=

2 10 21

Каждый элемент вектора А умножается на один соответствующий ему элемент вектора В, и таким образам получается каждый элемент вектора С.

Операторы поэлементного деления и возведения в степень записываются соответственно как (./), (.^).

Векторное исчисление предусматривает следующие операции над векторами: сложение и вычитание векторов одного размера и типа, транспонирование векторов, умножение вектора на вектор (при условии, что они одного размера и один из них является вектор-столбцом, а другой – вектор-строкой или наоборот).

В соответствии с правилами векторного исчисления, если первый вектор – строка, а второй – столбец, то результат умножения – число:

 

> > A=[1 2 3];

> > B=[1; 2; 3];

> > A*B

ans=

 

Если первый вектор – столбец, а второй – строка, то результат умножения – квадратная матрица:

 

> > B*A

ans=

2 6 10

4 12 20

6 18 30

 

Для обозначения операции транспонирования векторов применяется апостроф:

 

> > A=[1 2 3];

> > B=A’

B=

 

При транспонировании вектор-строка преобразуется в столбец и наоборот.

 


Поделиться:



Популярное:

  1. Активны операции центрального банка.
  2. АНАЛИЗ СИЛЬНЫХ И СЛАБЫХ СТОРОН, ВОЗМОЖНОСТЕЙ И УГРОЗ организации (предприятия) системы потребительской кооперации
  3. Больной оперируется по поводу острой кишечной непроходи-мости через 12 часов с момента заболевания. На операции об-
  4. В электроустановках напряжением до 1000В операции по установке и снятию заземлений разрешается выполнять одному работнику, имеющему группу III, из числа оперативного персонала.
  5. Векторы, операции над векторами. Скалярное, векторное, смешанное произведения векторов
  6. Влияние структуры операции на производительность
  7. Внешнеторговые операции и их виды
  8. Внешнеэкономические операции
  9. Вопрос 2. Структура и организация платежной системы. Базовая схема операции с банковской кредитной карточкой.
  10. Диаграммы кооперации и их нотация
  11. Добавление операции в таблице операций


Последнее изменение этой страницы: 2016-04-11; Просмотров: 890; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.046 с.)
Главная | Случайная страница | Обратная связь