Поэлементарные операции над матрицами в системе MATLAB

Автор работы: Пользователь скрыл имя, 21 Декабря 2012 в 16:44, курсовая работа

Краткое описание

Система MATLAB (сокращение от MATrix LABoratory - МАТричная Лаборатория) разработана фирмой The MathWorks, Inc. (США, г.Нейтик, шт. Массачусетс) и является интерактивной системой для выполнения инженерных и научных расчетов, которая ориентирована на работу с массивами данных. Система использует математический сопроцессор и допускает обращения к программам, написанным на языках Fortran, C и C++.

Содержание работы

Введение………………………………………………………………………3
Рабочий стол системы MATLAB….………………………………………...6
Действия над матрицами……………………………………………………..9
Элементарные матрицы и операции над ними……………………………..16
Список использованной литературы………………………………………..19

Содержимое работы - 1 файл

курсовик.doc

— 114.50 Кб (Скачать файл)

 

                                                                 s =

 

7

 

 

 

 

 

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

 

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

 

Error using ==> +

Matrix dimensions must agree.

 

Векторное произведение и транспонирование матриц

 

Вектор-строка и вектор-столбец  могут быть перемножены в любом порядке (оператор умножения * расположен на верхнем регистре клавиши с цифрой 8). Результатом будет или скаляр (внутреннее произведение) или матрица (внешнее произведение). Для приведенных выше векторов v и u имеем :

x = v*u

                                                                 x =

2

 

 

X = u*v

                                                                 X =

6    0   -3

2    0   -1

8    0   -4

Для действительных матриц, операция транспонирования меняет взаимное местоположение элементов aij aji, симметричных относительно главной диагонали. Для обозначения транспонирования MATLAB использует одиночную кавычку (апостроф) (‘). Для нашей симметричной матрицы Паскаля A’ = A. Однако матрица В не является симметричной и поэтому:

X = B'

 

                                                               X =

8   3   4

1   5   9

6   7   2

 

Транспонирование превращает вектор-строку в вектор-столбец и  наоборот. Если x и y оба являются действительными векторами, то произведение x*y не определено, но оба произведения x'*y и y'*x дают один и тот же скаляр. Это соотношение используется так часто, что имеет три различных имени: скалярное произведение, внутреннее произведение  и точечное произведение.

Для комплексного вектора или матрицы, z, величина z' обозначат комплексно-сопряженное  транспонирование. В MATLAB-е предусмотрены также поэлементные операции над элементами массивов. Признаком поэлементных операций служит точка после обозначения переменной. Так, транспонирование элементов матрицы z как массива чисел обозначается z.', по аналогии с другими операциями на массивами чисел. Например, если

 

z = [1+2i  3+4i]

 

то

                                                                z' =     

1-2i

3-4i

 

 

тогда как  z.' есть

 

                                                               z.' =

1+2i

3+4i

 

Для комплексных векторов, два скалярных произведения x'*y и y'*x комплексно сопряжены, а скалярное произведение x'*x  комплексного вектора с самим собой есть действительное число.

 

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

 

Для произведения двух совместимых А и В матриц в MATLAB–е достаточно записать в командной строке С = А*В . MATLAB самостоятельно проверит совместимость размерностей матриц и выдаст результат.  Если матрицы несовместимы, выдается сообщение об ошибке:

 

Error using ==> *

Inner matrix dimensions must agree.

 

 

 

Индексирование (Subscripts)

 

Для краткого рассмотрения некоторых основных понятий, связанных  с индексированием двумерных  массивов (матриц), введем «волшебную»  матрицу 4-го порядка:

 

F = magic(4)

                                                          F =

16     2     3    13

5    11    10     8

9     7     6    12

4    14    15     1

 

Элемент в i-ой строке и j-ом столбце матрицы F обозначается через F (i,j). Например, F (4,2) есть число в четвертой строке и втором столбце. Для нашего волшебного квадрата, F(4,2) есть 14. Таким образом, можно вычислить сумму элементов четвертого столбца матрицы F, напечатав

 

F (1,4) + F (2,4) + F (3,4) + F (4,4)

 

Это дает ответ 

                                                              ans =

34

 

но, как мы увидим в  дальнейшем, не является самым элегантным способом суммирования элементов одного столбца.

Имеется также возможность  обращения к  элементам матрицы  при помощи одного индекса, F(k). Это обычный способ обращения к элементам векторов (строк или столбцов). Но в MATLAB-е такой способ индексирования можно применить и к двумерным (в общем случае – многомерным) матрицам, так как система MATLAB хранит все многомерные массивы чи-сел в виде одного длинного вектора-столбца, сформированного из столбцов исходной матрицы. Так, для нашего волшебного квадрата, F (8) есть другой способ обращения к начини 14 хранящемуся в F (4,2).

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

 

t = F (4,5)

Index exceeds matrix dimensions

(Индекс превышает размерность матрицы)

 

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

 

X = A;

X(4,5) = 17

 

                                                         X =

16   3   2   13   0

5   0    11   8    0

9   6     7   12   0

4   15   14    1  17

Двоеточие (Colon)

 

Двоеточие, : , является одним из наиболее важных операторов MATLAB-а. Оно встречается в нескольких разных формах. Выражение 1:10 есть вектор-строка, содержащий целевые числа от 1 до 10:

1  2  3  4  5  6  7  8  9  10

Чтобы получить неединичное  приращение, нужно задать приращение. Например,

100 : -7 : 50

есть

100  93   86   79   72   65   58   51

а

0 : pi/4 : pi

есть

 

0   0.7854  1.5708  2.3562   3.1416

 

Индексы, содержащие двоеточия, допускают обращение к частям матриц. Так, выражение

 

F (1:k, j)

 

дает первые k элементов j-го столбца матрицы F. То есть,

 

sum(F (1:4, 4))

 

вычисляет, как и в  примере выше, сумму элементов 4-го столбца. Но есть еще лучший путь. Двоеточие  само по себе означает обращение ко всем элементам строки или столбца матрицы, а зарезервированное слово end есть обращение к последним строке или столбцу матрицы (в случае векторов-строк или столбцов слово end есть обращение к последнему элементу вектора). Значит,

sum(F (:, end))

 

вычисляет сумму элементов  последнего столбца матрицы F . Ответ: ans = 34. Почему магическая сумма для волшебного квадрата 4 х 4 равна 34 ? Дело в том, что если целые числа от 1 до 16 (число элементов матрицы размера 4 х 4) упорядочены в четыре группы с равными суммами элементов, эта сумма должна быть равна

 

sum(1:16)/4

 

что, конечно, дает ans = 34.

 

 

 

Единичная матрица, нулевая матрицы и матрица из единиц.

Двумерные массивы  случайных чисел

 

Единичная матрица, то есть матрица имеющая единицы на главной  диагонали и нулевые остальные  элементы, в MATLAB-е обозначается eye, причем eye(n) есть единичная квадратная матрица размера nxn, eye(m,n) - прямоугольная единичная матрица размера mxn, а  eye(size(A)) есть единичная матрица, имеющая размерность матрицы A. Например,

 

I = eye(3)

 

                                                            I =

1     0     0

0     1     0

0     0     1

 

                       

I = eye (3,5)

 

                                                            I =

1     0     0     0     0

0     1     0     0     0

0     0     1     0     0

 

 

I = eye (4,2)

                                                           I =

1       0

0       1

0       0

0       0

 

Нулевая матрица, то есть матрица состоящая из нулей (массив нулей), в MATLAB-е обозначается zeros, причем zeros (n) есть нулевая квадратная матрица размера nxn, zeros (m,n) - прямоугольная нулевая матрица размера mxn, а  zeros (size(A)) есть нулевая матрица имеющая размерность матрицы A.

Z = zeros(2,4)

                                                          

                                                             Z =

0  0  0  0

0  0  0  0

 

Наконец, матрица состоящая из единиц (массив единиц), в MATLAB-е обозначается ones, причем ones (n) есть квадратный массив единиц размера nxn, ones (m,n) – прямоугольный массив единиц размера mxn, а  ones (size(A)) есть массив единиц, имеющий размерность матрицы A.

S = 5*ones(3, 3)

 

                                                               S =

5   5   5

5   5   5

5   5   5

 

Аналогично, функция rand дает возможность сформировать соответствующие массивы случайных чисел в диапазоне от 0 до 1, распределенных по равномерному закону, а функция randn – по нормальному закону.

 

N = fix(10*rand(1,10))

                                                       N =

4  9  4  4  8  5  2  6  8  0

 

R = randn(4,4)

            

R =

1.0668  0.2944  -0.6918   -1.4410

0.0593   -1.3362   0.8580   0.5711

-0.0956   0.7143   1.2540  -0.3999

-0.8323   1.6236   -1.5937   0.6900

 

 

 

Список использованной литературы

 

  1. В.Г.Потемкин "Справочник по MATLAB" Работа с разреженными матрицами
  2. Гильберт А.. «Как работать с матрицами»
  3. Matlab R2007 с нуля! Brian R. Hunt, Ronald L.Lipsman, Jonathan M.Rosenber
  4. MATLAB.»Учебное пособие».Гаспарян Олег Николаевич

 




Информация о работе Поэлементарные операции над матрицами в системе MATLAB