Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная работа / Лаба№1 Основы интерактивной компьютерной среды MATLAB.doc
Скачиваний:
33
Добавлен:
22.02.2014
Размер:
190.46 Кб
Скачать

Матрицы.

MATLAB — это сокращенно матричная лаборатория. Мы не будем вдаваться в подроб­ности матричных операций, лежащих в основе вычислений, а лишь рассмотрим интерак­тивные возможности MATLAB, облегчающие анализ и синтез систем управления. Начнем с введения основных понятий, поясняющих действия с матрицами и векторами. Основной вычислительной единицей является матрица. Векторы и скаляры можно рассматривать как частные случаи матрицы. Матрица обычно заключается в квадратные скобки, [•]. Элементы столбца отделяются пробелами или занятыми, а строки разделяют­ся точками с запятой или возвратом каретки. Матрицы можно вводить посредством записи нескольких строк, завершая их точкой с запятой и возвратом каретки или просто возвратом каретки. Это очень удобно при вводе больших матриц. Для разделения столбцов можно использовать различные комбинации пробелов и запятых, а для разделения строк — различные комбинации точек с запятой и возврата каретки.

>> A=[1 -4*j sqrt(2)

log(-1) sin(pi/2) cos(pi/3)

asin(0.5) acos(0.8) exp(0.8)]

A =

1.0000 0 - 4.0000i 1.4142

0 + 3.1416i 1.0000 0.5000

0.5236 0.6435 2.2255

Рис. 5. Способ задания матрицы.

При вводе матриц нет необходимости в специальных инструкциях, указывающих их тип или размерность; память под матрицы отводится автоматически. Заметим также, что элементы матриц могут быть комплексными числами либо содержать тригонометрические и элементарные математические функции. К основным матричным операциям относятся сложение, вычитание, транспонирова­ние, возведение в степень и так называемые операции над массивами. Мы не будем рассматривать деле­ние матриц, но имейте в виду, что в MATLAB имеется возможность левостороннего и правостороннего деления матриц.

Матричные операции требуют согласования размерностей. Это означает, что при сложении и вычитании матриц они должны иметь одинаковую размерность. Если матри­ца А имеет размерность , а матрица В — размерность , то А ± В имеет смысл то­лько тогда, когда n = p, а m = r. Умножение матриц А* В возможно только в случае т = р. Особым случаем является умножение матрицы на вектор. Предположим, что b есть век­тор (столбец) из p элементов. Умножение матрицы А размерности на вектор b воз­можно только в случае т = р. В результате будет получен вектор у = А* b размерности.

>> A=[1 3;5 9]; B=[4 -7;10 0];

>> A+B

ans =

5 -4

15 9

>> b=[1;5];

>> A*b

ans =

16

50

>> A'

ans =

1 5

3 9

Рис. 6. Три основные матричные операции: сложение, умножение и транспонирование.

Транспонирование матрицы обозначается символом апострофа ('). С помощью опе­раций транспонирования и умножения можно получить так называемое внутреннее про­изведение векторов. Поясним это на примере. Предположим, что w и v есть векторы раз­мерности . Тогда их внутреннее произведение (известное также как произведение с точкой) находится как w' * v. Внутреннее произведение двух векторов дает скалярную ве­личину. Аналогично можно вычислить внешнее произведение двух векторов как w * v'. Внешнее произведение двух векторов размерности дает матрицу размерности, ранг которой равен 1. Основные матричные операции можно заменить поэлементными действиями с испо­льзованием периодически действующего предшествующего оператора. Такие процедуры известны как операции над массивами. Операции сложения и вычитания являются простейшими и не требуют указания дополнительного периода, соответствующего предшествующему оператору. Однако при умножении, делении и возведении матрицы в степень обязательно надо ука­зать точку перед символом операции.

>> x=[5;pi;sin(pi/2)]; y=[exp(-0.5);-13;pi^2];

>> x'*y

ans =

-27.9384

Рис. 7. Внутреннее произведение двух векторов.

>> x=[5;pi;sin(pi/2)]; y=[exp(-0.5);-13;pi^2];

>> x*y'

ans =

3.0327 -65.0000 49.3480

1.9055 -40.8407 31.0063

0.6065 -13.0000 9.8696

Рис. 8. Внешнее произведение двух векторов.

Используя двоеточие, можно легко сформировать векторы и, как мы скоро увидим, этот прием весьма полезен при построении графиков. Предположим, что мы хотим построить график функции y=sin(x) для x=0; 0.1; 0.2; … 1.0. Первый шаг состоит в том, чтобы получить таблицу значений x и y. Вектор, соответствующий искомой функции, легко получается с помощью операции умножения массивов. После того, как получена таблица значений x и y, построение графика функции y=xsinx не вызывает затруднений.

>> x=[0:0.1:1]';y=x.*sin(x);

>> [x y]

ans =

0 0

0.1000 0.0100

0.2000 0.0397

0.3000 0.0887

0.4000 0.1558

0.5000 0.2397

0.6000 0.3388

0.7000 0.4510

0.8000 0.5739

0.9000 0.7050

1.0000 0.8415

Рис. 9. Формирование векторов с использованием двоеточия.