Здавалка
Главная | Обратная связь

Теоретическая часть



ОСНОВЫ Работы в сРЕДЕ MATHLAB.

Методические указания по выполнению лабораторных

работ по курсу «Моделирование систем»

для студентов направлений 550200 – Автоматизация и управление

и 657900 – Автоматизация технологических процессов и производств (в нефтегазовой отрасли) Института дистанционного обучения

 

Томск 2006


УДК 681.32

 

Основы работ в среде MATHLAB. Методические указания по выполнению лабораторных работ по курсу «Моделирование систем» для студентов направлений 550200 – Автоматизация и управление и 657900 – Автоматизация технологических процессов и производств (в нефтегазовой отрасли) Института дистанционного обучения – Томск: Изд.ТПУ, 2006. – 11 с.

 

 

Составитель: Воронин А. В.

 

Рецензент: доцент кафедры ИКСУ ТПУ Громаков Е.И.

 

 

Методические указания рассмотрены и рекомендованы к изданию методическим семинаром кафедры интегрированных компьютерных систем управления “____” ______________ 2006 г.

 

Зав. кафедрой ИКСУ,

Д.т.н., профессор _________________ А. М. Малышенко

 

 

ЛАБОРАТОРНАЯ РАБОТА №3.

 

Знакомство с программой MATLAB. РАБОТА В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ.

 

 

Целью работы является изучение основных свойств и методики прямых вычислений в программной среде MATLAB [2].

 

Теоретическая часть

 

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

Работа с системой в режиме прямых вычислений носит диалоговый характер. Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) и завершает ввод нажатием клавиши <Enter>. При этом действует простейший строчный редактор с достаточно привычными командами.

Отметим некоторые особенности ввода информации в диалоговом режиме.

В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки – 80 символов. В этом случае часть выражения можно перенести на новую строку с помощью знака многоточия «…» (три или более точек), например

>> s=1-1/2+1/3-1/4+1/5+1/6-1/7+...

1/8-1/9+1/10

При работе с числовыми данными можно задавать различные форматы представления чисел (при этом все вычисления проводятся с предельной, так называемой двойной точностью). Для установки формата представления чисел используется команда

n format name

где name – имя формата. Для числовых данных name может быть следующим сообщением: short – короткое представление в фиксированном формате (5 знаков); short e – короткое представление в экспоненциальном формате (5 знаков мантиссы и 3 порядка); long – длинное представление в фиксированном формате (15 знаков); long e – длинное представление в экспоненциальном формате (15 знаков мантиссы и 3 порядка).

Иногда в ходе вывода данных вычислений появляется сокращение NaN (от слов Not a Number – не число). Оно обозначает операцию неопределенности, например вида 0/0 или Inf/Inf, где Inf – системная переменная со значением машинной бесконечности.

Система содержит несколько системных переменных: pi – число «пи»; inf – значение машинной бесконечности; ans – переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея. Эти переменные можно использовать в математических выражениях.

Для вычисления математических выражений достаточно набрать их по общепринятым правилам (как на Бейсике) и нажать ввод. Значение вычисленного выражения будет присвоено переменной ans и выведено на экран.

>> 2*sin(1)

ans = 1.6829

В системе MATLAB можно задавать переменные. Для этого используется операция присваивания, вводимая знаком равенства в следующем выражении:

>> Имя_переменной = Выражение [;].

Имя переменной не должно совпадать с именами функций и процедур системы. Переменные могут быть обычными и индексированными, т.е. элементами матриц и векторов. Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например ‘Demo’.

В арифметических выражениях можно использовать следующие знаки арифметических операций: + (сложение), - (вычитание), * (умножение), / (деление слева направо), \ (деление справа налево; ^ (возведение в степень). В выражениях можно использовать и доступные системе функции (алгебраические, тригонометрические, обратные тригонометрические и т.д.).

Matlab – система, специально предназначенная для проведения сложных вычислений с векторами, матрицами и многочленами. При этом она по умолчанию предполагает, что каждая заданная переменная – это вектор или матрица. Все определяется конкретным значением переменной. Например, если задано x=1, то это значит, что x есть вектор с единственным элементом, имеющим значение 1. Если надо задать вектор из 3-х элементов, то их значения надо перечислить в квадратных скобках, разделяя их пробелами. Например, ввод

>> v=[1 2 3]

v =

1 2 3

задает вектор v, имеющий три элемента со значениями 1,2 и3. после ввода вектора система выводит его на экран, если строка не заканчивается знаком «;». В противном случае вывод не производится.

Задание матрицы требует указания строк. Для разделения строк используется знак «;» (точка с запятой). Например, выведем на экран матрицу 3 на 3.

>> M=[1 2 3; 4 5 6; 7 8 9]

M =

1 2 3

4 5 6

7 8 9

матрицы можно вводить и следующим образом:

>> М=[1 2 3

4 5 6

7 8 9] .

такой способ может оказаться предпочтительным при вводе больших матриц. Возможен ввод элементов матрицы в виде арифметических выражений, содержащих доступные системе функции.

Строка, первым элементом которой является знак % воспринимается как комментарий.

Для указания отдельного элемента вектора или матрицы используются выражения вида v(i) или M(i, j).

Наряду с операциями над отдельными элементами матриц и векторов система позволяет производить операции умножения, деления и возведения в степень сразу над всеми элементами – массивами. Для этого перед операцией ставится точка. Например, знак (*) означает умножение для векторов или матриц, а знак (.*) - умножение всех элементов в виде массива. Так, если М матрица, то М.*2 даст матрицу, все элементы которой умножены на 2.

 

Можно указать еще ряд операторов и функций для задания векторов и матриц специального вида. Так, функция logspace создает вектор, необходимый для задания логарифмических шкал. Другая функция meshdorn используется для задания матриц, необходимых для построения графиков трехмерных поверхностей (см. также функции rotQO, diag, tril и triu).

Транспонированием квадратной матрицы называют перестановку ее строк и столбцов (т.е. у транспонированной матрицы столбцы содержат те элементы, которые были в строках исходной матрицы). Пусть задана матрица А:

>> A =[12:34]

Для задания транспонирования после матрицы ставится знак «'» (апостроф):

>> B=A’

B=

1 3

2 4

Здесь матрица В есть транспонированная матрица А.

Сложение и вычитание матриц (векторов) сводится к поэлементномусложению и вычитанию.

>> C=A + B;

Более сложными являются следующие матричные операции: умножение, деление и обращение матриц.

Хорошим примером на применение матричных операций явля­ется решение системы линейных уравнений в режиме прямых вычислений. При этом используется операция обращения матрицы. Пусть требуется решить следующую систему линейных уравнений:

Эту систему можно более компактно представить в матричном виде:

или

Решение системы в матричной форме имеет очень простой вид:

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

В MATHLABе эта задача решается просто:

 

>> A=[3 1 1; 2 1 -2; 1 -1 1]; % Ввод столбцов матрицы А

>> B=[4 1 3]; % Ввод вектора свободных членов В

>> x=B/A % Вычисление вектора неизвестных Х

X=

1.700 -0.6000 0.1000 % Система выдала результат

 

Отсюда видно, что матрицы и векторы являются типичными элементами данных, и математические операции над ними стали столь же простыми, как над обычными числами и переменными. Это резко облегчает проведение сложных расчетов.

Для матриц возможно возведение в степень (оператор ^), а также вычисление ряда матричных функций:

ехрm(М) - матричный экспоненциал;

logm(M) - матричный логарифм;

sqrtm(M) - матричный квадратный корень.

Все эти функции возвращают матрицу, элементы которой подвер­гаются соответствующему преобразованию.

Кроме того, реализуются следующие матричные функции:

poly(M) - возвращает вектор с коэффициентами характеристического многочлена матрицы,

det(M) - возвращает значение определителя матрицы,

trace(M) - возвращает след матрицы,

kron(M, N) - возвращает Кронекерово (тензорное) произве­дение матриц М и N,

eig(M) - возвращает вектор собственных значений матрицы М.

 

 

Система MATHLAB имеет достаточно развитые графические средства. Отметим основные операции графики:

Plot – построение графика в линейном масштабе;

Loglog – построение графика в логарифмическом масштабе;

Polar – построение нрафика в полярной системе координат;

Mesh – построение графика трехмерной поверхности;

Bar – построение графика столбцовой гистограммы.

Многие из этих операторов имеют различные формы представления. Например, оператор plot позволяет строить графики с различным типом линий, цветом и метками опорных точек. Построение простых графиков можно выполнить даже в режиме непосредственных вычислений. Следующая программа иллюстрирует алгоритм построения фигуры Лиссажу:

% Построение фигуры Лиссажу

V=[-.2 1.2 -1.2 1.2]; %Задание вектора масштаба

axis(V); % Установка масштаба

axis(‘square’); % установка равных соотношений

k=3; % установка соотношения частот

x=0:.1:2*pi*.1; % задание вектора х

plot(sin(x),cos(k*x)); % построение фигур Лиссажу

 

Система MATHLAB позволяет на одном графике строить одновременно несколько кривых. Чтобы предшествующие кривые не стирались, используется режим наложения графиков друг на друга, включаемый командой hold on (hold off отключает этот режим). Ниже приводится программа построения семейства кривых экспоненциальной функции:

 

% Пример построения семейства кривых

echo off; %отключение отображения листинга

clg; % очистка графического окна

axis([0 5 0 1]); % установка масштабов по осям

plot(1,5); % построение точки (1,5) и осей

hold on; % установка режима наложения

for i=1:10;

clear x; %построение десяти графиков

x=5:-.1:0; % функций с наложением

plot(x,1-exp(

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.