Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
цос / Лаб_раб_ №1.doc
Скачиваний:
74
Добавлен:
02.02.2015
Размер:
258.05 Кб
Скачать

1.2.4 Поэлементное преобразование матриц

Для поэлементного преобразования матрицы пригодны все указанные ранее алгебраические функции. Каждая такая функция формирует матрицу того же размера, что и заданная, каждый элемент которой вычисляется как указанная функция от соответствующего элемента заданной матрицы. Кроме этого, в MatLAB определены операции поэлементного умножения матриц одинакового размера (совокупностью знаков ' .* ', записываемой между именами перемножаемых матриц), поэлементного деления (совокупности './ ' и '.\'), поэлементного возведения в степень (совокупность '.^' ), когда каждый элемент первой матрицы возводится в степень, равную значению соответствующего элемента второй матрицы.

Приведем несколько примеров:

» A = [1,2,3,4,5; -2, 3, 1, 4, 0]

A =

1 2 3 4 5

-2 3 1 4 0

» B = [-1,3,5,-2,1; 1,8,-3,-1,2]

B =

-1 3 5 -2 1

1 8 -3 -1 2

» sin(A)

ans =

0. 8415 0. 9093 0. 1411 -0. 7568 -0. 9589

-0. 9093 0. 1411 0. 8415 -0. 7568 0

» A . * B

ans =

-1 6 15 -8 5

-2 24 -3 -4 0

» A . / B

ans =

-1. 0000 0. 6667 0. 6000 -2. 0000 5. 0000

-2. 0000 0. 3750 -0. 3333 -4. 0000 0

» A . \ B

Warning: Divide by zero

ans =

-1. 0000 1. 5000 1. 6667 -0. 5000 0. 2000

-0. 5000 2. 6667 -3. 0000 -0. 2500 Inf

» A . ^ B

ans =

1. 0e+003 *

0. 0010 0. 0080 0. 2430 0. 0001 0. 0050

-0. 0020 6. 5610 0. 0010 0. 0002 0

Оригинальной в языке MatLAB является операция прибавления к матрице числа. Она записывается следующим образом: A + x, или х + A (А - матрица, а x - число). Такой операции нет в математике. В MatLAB она эквивалентна совокупности операций А + х * Е, где Е - обозначение матрицы, которая состоит только из единиц, тех же размеров,что и матрица А. Например:

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

A =

1 2 3 4 5

6 7 8 9 11

» A + 2

ans =

3 4 5 6 7

8 9 10 11 13

» 2 + A

ans =

3 4 5 6 7

8 9 10 11 13

1.2.5 Матричные действия над матрицами

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

Базовые действия с матрицами - сложение, вычитание, транспонирование, умножение матрицы на число, умножение матрицы на матрицу, возведение матрицы в целую степень - осуществляются в языке MatLAB с помощью обычных знаков арифметических операций. При использовании этих операций важно помнить условия, при которых эти операции являются возможными:

при сложении или вычитании матрицы должны иметь одинаковые размеры;

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

Невыполнение этих условий приведет к появлению в командном окне сообщения об ошибке. Приведем несколько примеров.

Пример сложения и вычитания:

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

» B = [ 0 -1 -2 -3 -4; 5 6 7 8 9 ]

» A + B

» A - B

Пример умножения на число:

» 5*A

» A*5

Пример транспонирования матрицы:

» A'

Пример умножения матрицы на матрицу:

» A' * B

» С = A * B'

Возведение матрицы в целую степень осуществляется в MatLAB с помощью знака "^": А^n. При этом матрица должна быть квадратной, а n - целым (положительным или отрицательным) числом. Это матричное действие эквивалентно умножению матрицы А на себя n раз (если n - положительно) или умножениюбратной матрицы на себя (при n отрицательно).

Приведем пример:

» A^2

» A^(-2)

Оригинальными в языке MatLAB являются две новые, неопределяемые в математике функции деления матриц. При этом вводятся понятие деления матриц слева направо и деление матриц справа налево. Первая операция записывается с помощью знака ' / ' , а вторая - ' \ '.

Операция В / A эквивалентна последовательности действий B * inv(A), где функция inv осуществляет обращение матрицы. Ее удобно использовать для решения матричного уравнения: Х * А = В.

Аналогично операция A\B равносильна совокупности операций inv(A)*B, которая представляет собой решение матричного уравнения: А * Х = В.

Для примера рассмотрим задачу отыскания корней системы линейных алгебраических уравнений:

x1 + 2x2 + 3x3 = 14

2x1 - x2 - 5x3 = -15

x1 - x2 - x3 = -4

В среде MatLAB это можно сделать таким образом:

» A = [ 1 2 3; 2 -1 -5; 1 -1 -1]

» B = [ 14;-15;-4]

» x = A \ B

x =

1

2

3

При анализе векторов по столбцам или строкам используют операторы:

max - максимальное значение из всех элементов столбца(строки);

min - минимальное значение;

mean - среднее значение;

median - медиана;

std - стандартное отклонение;

sort - сортировка элементов в порядке возрастания;

sum - сумма элементов;

prod - произведение элементов;

length - длина (число элементов) вектора.

Например, вычисление функции x=m! можно выполнить, используя последовательность операторов

i=1:m; % создается вектор i=[1 2... m]

x=prod(i); % вычисляется m!.

Оператор z=sum(i.*y) вычисляет сумму произведений i*y(i) элементов вектора i=1:m и m-мерного вектора y=[y1 y2 ...ym].

Соседние файлы в папке цос