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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Основные математические функции

Напомним, что все данные в системе MATLAB – массивы. Все операции над массивами реализуются посредством функций. С каждой из традиционных операций (с умножением, делением и возведением в степень) связаны по две функции «*», «.*», «/», «./», «^», «.^». «Список этих функций приведен в табл. 3 см. в help MATLAB раздел «Arithmetic Operators.» а также. Л.1 стр. 27). Серым цветом выделены функции, которыми будем пользоваться по мере изучения соответствующих понятий в курсе линейной алгебры.

 

  Таблица 3.
  Символ Выполняемое действие
plus() + Покомпонентное сложение числовых массивов одинаковой размерности. Добавление скалярной величины к каждому элементу массива.
minus() - Покомпонентное вычитание числовых массивов одинаковой размерности. Вычитание скалярной величины от каждого элемента массива.
mtimes() * Умножение скаляра на скаляр Покомпонентное умножение всех элементов массива на скаляр. Матричное умножение. Умножение матриц в соответствии с правилами линейной алгебры (условие выполнения: число столбцов первого сомножителя должно быть равно числу строк второго сомножителя)
times() .* Покомпонентное умножение массивов одинаковой размерности
mrdivide() / Деление скаляра на скаляр. Покомпонентное деление всех элементов массива на скаляр. Правое матричное деление. (A и B – квадратные матрицы одного порядка).
rdivide() . / Правое покомпонентное деление элементов массивов одинаковой размерности.
mpower() ^ Возведение скаляра в степень. Матричное возведение в степень, равносильно умножению матрицы на себя.
power() .^ Поэлементное возведение элементов матрицы степень.
  ' Эрмитово сопряжение – одновременное: комплексное сопряжение и транспонирование:
  . ' Транспонирование матрицы

Ни правым «/», ни левым «\» делением в смысле матричного деления мы пользоваться непосредственно не будем.


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

Сложение и вычитание векторов.

Поскольку числа в пакете MATLAB представляются в виде двумерного массива один на один, то при сложении векторов используется тот же знак плюс «+» - знак поэлементного сложения, что и для сложения чисел.

Если размеры векторов, к которым применяется сложение или вычитание, не совпадают, то выдается сообщение об ошибке.

>> a1=[1 2]

a1 = 1 2

>> a2=[1 2 3]

a2 = 1 2 3

>> a1+a2 % результата не будет, так как матрицы a1 и a2 разной размерности

??? Error using ==> plus

Matrix dimensions must agree.

>> size(a1)

ans = 1 2

>> size(a2)

ans =

1 3

 

Упражнение 5.

1. Вычислите сумму массивов и , запишите результат в массив с1, и выведите все векторы в командное окно.

a = [1.2; 5.3; 6.4]; b = [7.83; 8.72; 9.61];

2. Найдите разность b и a, результат запишите в c2 и выведите его в командное окно.

Поэлементное умножение (операция «.*») и поэлементное возведение в степень (операция «.^»).

1. Операторам «*» и «.*» соответствуют встроенные в MATLAB в ядро функции mtimes() и times(). Первая функция выполняет матричное умножение входных параметров, а вторая их поэлементное умножение. При умножении вектора на скаляр обе функции вернут одинаковый результат. К матричному умножению мы обратимся в последующих модулях.

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

Введем две вектор–строки и перемножим их:

>> u1=[2 -3 4 1]; u2 = [7 5 -6 9];u=u1.*u2

u = 14 -15 -24 9

Проверьте, использование оператора «*» приведет к сообщению об ошибке.

2. При помощи «.^» осуществляется поэлементное возведение в степень:

>> p=u1.^2

p = 4 9 16 1

Проверьте, использование оператора «^» приведет к сообщению об ошибке.

 

Умножение и деление вектора на число.

1. Умножать вектор на число можно как справа, так и слева:

>> p1=2*u, p2=u*2

p1 = 28 -30 -48 18

p2 = 28 -30 -48 18

Проверьте, к чему приведет использование оператора «.*»

2. Делить при помощи знака «/»вектор на число можно:

>> v = p/2

v = 2.0000 4.5000 8.0000 0.5000

Проверьте, к чему приведет использование оператора «./»

!!Попытка деления числа на вектор приводит к сообщению об ошибке:

>> 2/p

??? Error using ==> mldivide

Matrix dimensions must agree.

Проверьте, к чему приведет использование оператора «2./v»

 

Операции над матрицами

Умножение матрицы на число.

Умножение матрицы A на число λ заключается в построении матрицы B, элементы которой получены путём умножения каждого элемента матрицы A на это число λ.

Сложение матриц

Сложение матриц A и B есть операция нахождения матрицы C, все элементы которой равны попарной сумме всех соответствующих элементов матриц A и B.

Комплексное сопряжение

Если элементами матрицы являются комплексные числа, то комплексно сопряжённая матрица состоит из комплексно сопряженных чисел.

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

При транспонировании матрицы строки становятся столбцами.

Эрмитово сопряжение – комплексное сопряжение и транспонирование:

Для матрицы, заданной действительными числами, не комплексными!, операция сопряжения и транспонирования совпадают)

 

 

>> A=[2,1]

A =

2 1

>> A.'

ans =

>> A'

ans =

>> A=[1-i*2,1]

A =

1.0000 - 2.0000i 1.0000

>> A' % 'эрмитово сопряжение, превратит строку в столбец и "сопряжет" комплексное число

ans =

1.0000 + 2.0000i

1.0000

>> B=[1-i*2 1-i*3;1+i*4,1+i*5;2,3]

B =

1.0000 - 2.0000i 1.0000 - 3.0000i

1.0000 + 4.0000i 1.0000 + 5.0000i

2.0000 3.0000

>> B.'

ans =

1.0000 - 2.0000i 1.0000 + 4.0000i 2.0000

1.0000 - 3.0000i 1.0000 + 5.0000i 3.0000

>> B'

ans =

1.0000 + 2.0000i 1.0000 - 4.0000i 2.0000

1.0000 + 3.0000i 1.0000 - 5.0000i 3.0000

Умножение матриц

Умножение матриц A и B – есть операция вычисления матрицы C=AB, элементы которой равны сумме произведений элементов в соответствующей строке первого множителя и столбце второго.

Количество столбцов в матрице A должно совпадать с количеством строк в матрице B. Если матрица A имеет размерность m x n, матрица B имеет размерность n x p, то размерность их произведения, матрицы C=AB, будет m x p.

Операция матричного умножения «*» двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором; в этом случае говорят, что форма матриц согласована.

В частности, умножение всегда выполнимо, если оба сомножителя - квадратные матрицы одного и того же порядка.

Следует заметить, что из существования произведения AB вовсе не следует существование произведения BA.

 

Упражнение 6. Выполнить в тетради + MATLAB.

Для матриц , , c=2, D1=ones(2,3), D2=ones(3,2),E1=eye(2,3), E2=eye(3,2), E3=eye(3), (ввести символьно соответствующие элементы: syms a11 a12 итд.), осуществить операции:

A' % эрмитово сопряжение

A.' % транспонирование

B' % эрмитово сопряжение

B.' % транспонирование

% умножение на число:

A1 = 2*A, A2=A*3, A3=4.*A, A4=A*.5

% сложение матриц:

C1 = A+B, C2=A+D2, C3=B+D1, C4=A+E2, C5=B+C1

%умножение матриц:

% что меняет умножение квадратной матрицы на единичную E?

F1 = A*B, F2=B*A, F3=B' *A'б F4=E2*B, F5=A*E1, F=F1*F1*F1 F6=F1*E3, F7=E3*F1

% поэлементное умножение матриц:

C = A.*D2

% возведение матрицы А в степень, (то же что и B=A*A, выполнимо только для квадратных матриц)

A^2 % невыполнимо

F1^2 % выполнимо

A.^2 % возведение каждого элемента матрицы А в степень

 



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 1603; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.192.3 (0.012 с.)