Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Matlab BSU.doc
Скачиваний:
11
Добавлен:
08.09.2019
Размер:
1.04 Mб
Скачать

Арифметические операторы и массивы.

За исключением некоторых матричных операторов, арифметические операторы MATLAB работают с элементами массивов одинаковой размерности. Если в качестве операндов выступают вектора или прямоугольные массивы, то их размерность должна быть одинаковой. Если один из операндов является скаляром, а другой нет, то скаляр применяется к каждому элементу другого операнда. Это правило известно как скалярное расширение.

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

A = magic(3)

A =

8 1 6

3 5 7

4 9 2

3 * A

ans =

24 3 18

9 15 21

12 27 6

Для возведения матрицы в степень следует использовать оператор ‘^’, например:

B = A^2

B =

91 67 67

67 91 67

  1. 67 91

здесь A – магическая матрица из предыдущего примера. Для возведения в степень каждого отдельного элемента матрицы A следует использовать оператор ‘.^’, например:

C = A.^2

C =

64 1 36

9 25 49

16 81 4

Для правого матричного деления используется оператор ‘/’, по определению B/A = (A'\B')':

B/A

ans =

8.0000 1.0000 6.0000

3.0000 5.0000 7.0000

4.0000 9.0000 2.0000

Почленное правое деление С./A образует матрицу с элементами C(i, j)/ A(i, j) :

C./A

ans =

8 1 6

3 5 7

4 9 2

Для левого матричного деления используется оператор ‘\’, грубо говоря, A\B означает то же, что и inv(A)*B, за исключением способа реализации:

A\B

ans =

8.0000 1.0000 6.0000

3.0000 5.0000 7.0000

4.0000 9.0000 2.0000

Eсли A – квадратная матрица с размерностью nxn, а B – вектор-столбец с n компонентами или матрица с несколькими такими столбцами, то X = A\B есть решение системы уравнений AX = B вычисленное методом исключения Гаусса. Если матрица A плохо масштабирована или близка к сингулярной (определитель матрицы равен нулю), то система выдает соответствующее предупреждение. Если A не является квадратной матрицей, то X = A\B является квази-решением недоопределенной (число уравнений меньше числа неизвестных) или переопределенной (число уравнений больше числа неизвестных) системы уравнений AX = B.

Оператор почленного левого деления A.\B создает матрицу с элементами B(i,j)/A(i,j). Матрицы A и B должны иметь одинаковую размерность. Пример:

A.\C

ans =

8 1 6

3 5 7

4 9 2

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

D=[1 1-2i; 1+3i 2]

D =

1.0000 1.0000 - 2.0000i

1.0000 + 3.0000i 2.0000

Почленное транспонирование комплексной матрицы операцию комплексного сопряжения не проводит:

D.'

ans =

1.0000 1.0000 + 3.0000i

1.0000 - 2.0000i 2.0000

При сложении двух матриц A+B (или вычитании A-B) требуется, чтобы они имели одинаковую размерность. Если одна из матриц является константой, то при сложении эта константа прибавляется к каждому элементу другой матрицы:

A+B

ans =

99 68 73

70 96 74

  1. 76 93

A+4

ans =

12 5 10

7 9 11

8 13 6

Следует отметить, что каждый арифметический оператор имеет аналогичную по своему названию функцию. Например, вместо оператора матричного сложения A+B можно использовать функцию plus(A, B). Полный список операторов можно получить по команде help ops. Соответствие функций операторам позволяет одновременно использовать элементы как операторного, так и функционального программирования.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]