Рефераты. Система математических расчетов MATLAB

B = magic(3)

 

                                                               B =

8    1    6

3    5    7

4    9    2

 

Еще один пример использования стандартной матрицы представляет собой прямоугольную   3х2 матрицу случайных целых чисел:


C = fix(10*rand(3,2))

                                                             

                                                              C =

9      4

2      8

 6      7.

 Здесь функция rand(3,2) генерирует 3х2 матрицу равномерно распределенных случайных чисел в диапазоне от 0 до 1, а функция fix  осуществляет округление путем отбрасывания дробной части.

Вектор-столбец есть матрица размера  mх1 matrix, вектор-строка – матрица размера 1х n , а скаляр есть матрица размера 1х1. Объединение отдельных чисел в массивы осуществляется при помощи квадратных скобок, причем отдельные строки разделяются точкой с запятой, а переменные в каждой строке – запятой или пробелом (число пробелов может быть любым). Выражения

u = [3; 1; 4]

 

v = [2 0 -1]

 

                                                                       s = 7

 

дают вектор-столбец u , вектор-строку v и скаляр s (эти векторы также будут использоваться в дальнейшем при решении примеров):


                                                                 u =

3

1

4

 

                                                                 v =

2    0   –1

 

                                                                 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) упорядочены в четыре группы с равными сум-мами элементов, эта сумма должна быть равна

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.