Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

5. Для сохранения изменений нужно выбрать опцию Save из меню File в окне Редактора/ От-ладчика.

 

 

 

Дуальность (двойственность) команд и функций

 

Команды системы MATLAB это выражения вида load или help. Многие команды допускают модификацию за счет определения операндов, например:

 

load August17.dat

help magic

type rank.

 

Альтернативный способ ввода подобных операндов в команды состоит в представлении их в виде символьных строк как аргументы функций.

 

load(August17.dat)

help(magic)

type(rank)

 

В этом состоит дуальность команд/функций системы MATLAB. Любая команда в форме

 

command argument

 

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

 

command(argument)

 

Преимущество функциональной формы записи проявляется когда символьный аргумент формируется машиной программно, из ряда разных кусков. Например, следующий пример загружает в рабочее пространство переменные из 31-го МАТ-файла под названиями August1.dat, August2.dat, и т.д.

for d = 1:31

s = [August int2str(d) .dat]

load(s)

end

 

Здесь использована функция int2str, которая преобразует целые числа в строку символов, что помогает сконструировать название файла, а также используются квадратные скобки для объединение трех символьных переменных в одно.

 

 

 

 

 

Действия над матрицами в системе MATLAB

 

Матрица является двумерным массивом действительных или комплексных чисел. Линейная алгебра и теория матриц определяют множество операций над матрицами, которые непо-средственно поддерживаются (т.е. выполняются как стандартные операции) в MATLAB-е. В частности, сюда входят все элементарные действия над матрицами, решение систем линей-ных уравнений, нахождение собственных значений и векторов, а также сингулярных чисел и т.д. Ниже кратко рассмотрены действия над матрицами в системе MATLAB.

 

Формирование матриц в системе MATLAB

 

В дальнейшем для удобства будем считать термины матрица и массив эквивалентными. Бо-лее точно, матрица есть двумерный прямоугольный массив из действительных или комплек-сных чисел, который характеризует некоторое линейное преобразование. В MATLAB-е име-ется множество встроенных функций, которые формируют (генерируют) различные типы ма-триц. Воспользуемся двумя из них для формирования пары матриц размера 3-by-3, которые будут использоваться в дальнейшем в качестве примеров. Первый пример представляет симметричную матрицу Паскаля. Если ввести команду

 

A = pascal (3)

 

то система ответит

 

A =

1 1 1

1 2 3

1 3 6

 

Второй пример представляет несимметричную матрицу, известную под названием волшеб-ный квадрат (magic square):

 

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