Материал: Matlab. Практический подход. Самоучитель

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

Глава 1. Принципы работы Matlab и основы вычислений

ния к элементу матрицы MyVar(1,1). В обоих случаях в качестве результата возвращается значение скалярной переменной MyVar.

Поскольку все переменные в Matlab априори рассматриваются как матрицы, никаких особых инструкций при объявлении матриц выполнять не нужно, за исключением того, что для матрицы необходимо задать значения ее элементов. Делается это достаточно просто. Список элементов матрицы заключается в квадратные скобки, списки значений элементов строки разделяются запятыми или пробелами, а списки значений разных столбцов разделяются точкой с запятой. Например, командой A=[1 2 3] задается вектор-строка (матрица размеров 1×3) с элементами 1, 2 и 3 соответственно. Командой B=[4;5;6] задается вектор-столбец (матрица размеров 3×1) с элементами 4, 5 и 6. Наконец, командой C=[1,2;3,4;5,6] задается матрица размерами 3×2 (3 строки и 2 столбца). Примеры выполнения этих команд приведены в документе на рис. 1.7.

Рис. 1.7. Определение матричных переменных

К элементам матрицы можно обращаться в обычном режиме, указав два индекса (номер строки и номер столбца, на пересечении которых находится элемент). Существует также способ обращения по обобщенному индексу. Обобщенный индекс элемента матрицы определяется как его порядковый номер, если отсчет начинать с верхнего левого элемента сверху вниз и от левого столбика к правому. Так, если матрица X имеет размеры n на m, то

21

Самоучитель Matlab

к элементу с индексами i и j можно обратиться либо как X(i,j), либо как X(n*(j-1)+i). Хотя второй способ индексирования элементов может показаться несколько запутанным, он соответствует техническому способу индексации элементов матрицы в памяти, поэтому вычисления в таком случае выполняются быстрее. На рис. 1.8 приведен фрагмент документа, в котором в различном режиме выполняется обращение к элементам матрицы C., определенной ранее (см. рис. 1.8).

Рис. 1.8. Способы обращения к элементам матрицы

В частности, командой C(1) получаем значение элемента C(1,1) (значение 1). Инструкция C(5) является ссылкой на элемент C(2,2), значение которого равно 4.

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

- Чем хотите пока заняться, Состоятельные Кроты?

- А что, если нам посчитать?! - И то дело!

М/ф "Дюймовочка"

Основные арифметические операторы Matlab позволяют выполнять операции не только со скалярными величинами, но и с матрицами. Более того, можно утверждать, что основная часть операторов ориентирована на выполнение матричных операций. В табл. 1.1 перечислены основные арифметические операторы Matlab с кратким описанием результата их применения к операндам разного типа (если такие допустимы).

22

Глава 1. Принципы работы Matlab и основы вычислений

Табл. 1.1. Основные арифметические операторы Matlab

Оператор

Описание

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

+является матрица той же размерности, что и матрицы-операнды, а ее элементы равны сумме соответствующих элементов складываемых матриц. Если один операнд - скаляр, а другой – матрица, то результатом является матрица, каждый элемент которой равен сумме скаляра и соответствующего элемента матрицы-операнда.

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

-матриц-операндов. Если один операнд – матрица, а другой – скаляр, то результатом является матрица, элементы которой вычисляются как разность соответствующего элемента матрицы-операнда и скаляра (с учетом порядка операндов). Можно вычитать скаляр из матрицы и матрицу из скаляра

Оператор умножения. Бинарный оператор. Если операндами являются скаляры, вычисляется произведение скалярных величин. Для

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

Оператор деления. Бинарный оператор. Если оба операнда – скаляры, то в качестве результата возвращается частное от деления скаляра на

скаляр. Если первый операнд – матрица, а второй – скаляр, в качестве

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

Оператор возведения в степень. Бинарный оператор. Первым операндом может быть скаляр или квадратная матрица. Если первый операнд – скаляр, то второй может быть любым действительным скаляром.

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

определяемую вторым операндом.

Оператор левостороннего деления. Бинарный оператор. Операндами

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

23

Самоучитель Matlab

Оператор

Описание

 

 

 

Оператор поэлементного умножения. Бинарный оператор. Операн-

.*

дами являются матрицы одинакового размера. Результатом является

матрица, элементы которой равны произведению соответствующих

 

элементов матриц-операндов.

 

 

 

Оператор поэлементного деления. Бинарный оператор. Операндами

./

являются матрицы одинакового размера. Результатом является матри-

ца, элементы которой вычисляются как частное от деления элементов

 

матрицы - первого аргумента на соответствующие элементы матрицы

 

- второго аргумента

 

 

 

Оператор поэлементного левостороннего деления. Бинарный опера-

.\

тор. Операндами являются матрицы одинакового размера. Резуль-

татом является матрица того же размера. Выполняется деление эле-

 

ментов матрицы - второго операнда на соответствующие элементы

 

матрицы - первого операнда.

 

 

'

Оператор вычисления сопряженной матрицы. Унарный оператор. Ре-

зультатом является матрица, сопряженная к матрице-оператору.

 

 

.'

Оператор транспонирования. Унарный оператор. Результатом являет-

ся матрица, транспонированная к матрице-операнду.

 

 

 

Оператор поэлементного возведения в степень. Бинарный оператор.

 

Операндами могут быть скаляры или матрицы (в разной комбинации).

 

Если первый аргумент – матрица, а второй – скаляр или матрица той же

 

размерности, то в качестве результата возвращается матрица, элементы

.^

которой получаются возведением элементов первой матрицы в степень,

определяемую вторым операндом-скаляром или соответствующими

 

элементами второго операнда-матрицы. Если первый операнд скаляр-

 

ный, а второй является матрицей, то результатом будет матрица того же

 

размера, что матрица-операнд (второй). Элементы матрицы-результата

 

получаются возведением скаляра (первый операнд) в степень, опреде-

 

ляемую соответствующим элементом второго (матричного) операнда.

 

 

Приведенные операторы практически полностью перекрывают весь спектр возможных операций, которые приходится выполнять с матрицами. Некоторые примеры использования арифметических операторов с матричными операндами приведены в табл. 1.2. Матрицы A и B при этом инициализированы в документе следующими командами (жирным шрифтом выделен ввод пользователя):

>> A=[1,3;-2,4]

A =

1 3 -2 4

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

B =

-1 1

3-2

24

Глава 1. Принципы работы Matlab и основы вычислений

Табл. 1.2. Примеры выполнения арифметических операций с матрицами

Команды

 

Описание

 

 

 

 

>> A*B

 

 

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

ans =

-5

 

Вычисляется по правилам вычисления матриц

8

 

в линейной алгебре

14

-10

 

 

>> A/B

 

 

Деление матриц.

ans =

 

 

Матрица A умножается на матрицу, обратную

11

4

 

 

к матрице B

8

2

 

>> A\B

 

 

Левостороннее умножение матриц.

ans =

 

 

Матрица, обратная к матрице A, умножается на

-1.3000

1.0000

матрицу B

0.1000

0

>> A./B

 

Поэлементное деление матриц.

ans =

 

 

Элементы матрицы A делятся на соответствую-

-1.0000

3.0000

щие элементы матрицы B

-0.6667 -2.0000

>> A.\B

 

Левостороннее поэлементное деление.

ans =

 

 

Элементы матрицы B делятся на соответствую-

-1.0000

0.3333

щие элементы матрицы A

-1.5000 -0.5000

>> A.*B

 

Поэлементное умножение матриц.

ans =

 

 

Элементы матрицы A умножаются на соответ-

-1

3

 

 

ствующие элементы матрицы B

-6

-8

 

>> A+B

 

 

Сумма матриц.

ans =

4

 

Вычисляется по правилам вычисления суммы

0

 

матриц в линейной алгебре (складываются со-

1

2

 

ответствующие элементы матриц A и B)

>> A-B

 

 

Разность матриц.

ans =

2

 

Вычисляется по правилам расчета разности

2

 

двух матриц (от элементов матрицы A вычита-

-5

6

 

ются соответствующие элементы матрицы B)

>> A.'

 

 

Транспонирование матрицы.

ans =

-2

 

Результатом является матрица, транспониро-

1

 

ванная к матрице A

3

4

 

 

 

Однако арифметические операторы далеко не единственные операторы, используемые при вычислениях.

25

Источник: https://studfile.net/preview/16433384/