Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 324

.pdf
Скачиваний:
6
Добавлен:
30.04.2022
Размер:
880.78 Кб
Скачать

ФГБОУ ВПО “Воронежский государственный технический университет”

Кафедра робототехнических систем

РАБОТА С ПАКЕТОМ MATLAB

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторным работам по дисциплине “ Компьютерные технологии ”

для студентов направления подготовки бакалавров 221000 “Мехатроника и робототехника” (профиль “Промышленная и специальная робототехника”)

очной формы обучения

Воронеж 2013

Составитель канд. техн. наук Ю.С. Слепокуров

УДК 681.513.2

Работа с пакетом MATLAB: методические указания к лабораторным работам по дисциплине “Компьютерные

технологии”

для

студентов

направления подготовки

бакалавров 221000 “Мехатроника и

робототехника” (профиль

“Промышленная и

специальная

робототехника”) очной

формы

обучения / ФГБОУ

ВПО

“Воронежский

государственный технический

университет”;

сост. Ю.С.

Слепокуров. Воронеж, 2013. 40

с.

 

 

Методические указания предназначены для организации и проведения лабораторных работ по дисциплине “Компьютерные технологии”, содержат описание базовых операторов системы MATLAB, знание которых позволит производить выполнять сложные математические расчеты и графический вывод их результатов, решать и исследовать системы дифференциальных уравнений.

Методические указания подготовлены в электронном виде и содержатся в файле МетMATLAB.pdf

Рецензент канд. техн. наук, доцент О.Ю. Таратынов

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А.И. Шиянов

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

ФГБОУ ВПО «Воронежский государственный технический университет», 2013

ОСНОВЫ РАБОТЫ С ПАКЕТОМ MATLAB

Система MATLAB (сокращение от MATrix LABarotatory)

является интерактивной системой для выполнения инженерных

инаучных расчетов, ориентированной на работу с массивами данных.

Система поддерживает выполнение операций с векторами, матрицами и массивами данных, реализует сингулярное и спектральное разложения, вычисление ранга и чисел обусловленности матриц, поддерживает работу с алгебраическими полиномами, решение нелинейных уравнений

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

Основным объектом системы MATLAB является прямоугольный числовой массив, допускающий комплексные элементы и ввод матриц без явного указания их размеров. Система позволяет решать многие вычислительные проблемы за значительно более короткое время, чем то, которое потребовалось бы для написания соответствующих программ на языках FORTRAN, BASIC или С.

ВВ О Д И П Р Е О Б Р А З О В А Н И Е М А Т Р И Ч Н Ы Х

ПЕ Р Е М Е Н Н Ы Х

Рассмотрим основные способы создания векторов и матриц в рабочей области системы MATLAB.

Поскольку MATLAB – матрично-ориентированная система, то необходимо отметить, как она выполняет основные операции над векторами и матрицами. Прежде всего необходимо отметить, что вектор рассматривается как вырожденная в одну строку или один столбец матрица. Обычная переменная – это матрица размером 1 1.

Например, если задано Х = 1, то это значит, что Х есть вектор с единственным элементом, имеющим значение 1. Если

надо задать вектор из трех элементов, то их значения надо перечислить в квадратных скобках, разделяя пробелами:

N = [1 2 3].

Задание матрицы требует указания различных строк. Для разделения строк используется знак “ ; ” (точка с запятой):

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

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

F = [1

2

3

4

5

6

7

8

9].

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

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

Матрицы можно расширять, используя матрицы малых размеров как элементы матрицы больших размеров:

R = [10 11 12];

 

 

Y = [F; R]

 

 

Y =

 

 

1

2

3

4

5

6

7

8

9

10

11

12

Для добавления новой страницы того же размера можно воспользоваться следующей командой:

» Y(:,:,2)=[14 15 16;17 18 19;20 21 22;23 24 25]

Y(:,:,1) =

1

2

3

4

5

6

7

8

9

10

11

12

2

Y(:,:,2) =

 

14

15

16

17

18

19

20

21

22

23

24

25

Для удаления строк, столбцов или вообще размерности массива необходимо присвоить выбранному элементу значение пустого вектора [ ]. Например, для удаления первой страницы трехмерного массива Y можно воспользоваться командой

»Y(:,:,1)=[]

Y =

 

 

14

15

16

17

18

19

20

21

22

23

24

25

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

Помимо поэлементного ввода векторов и матриц возможна генерация векторов и матриц специального типа. Например, вектор с целочисленными элементами можно задать в виде:

X = 1: 5;.

Знак двоеточие указывает, что элементы вектора будут принимать значения 1, 2, 3, 4, 5.

Можно задать вектор с другим, в том числе и нецелочисленным шагом приращения:

X = 0 : 0.25 : 2;.

Начальное, шаг и конечное значение элементов можно задавать с помощью арифметических выражений.

При работе с матрицами и векторами можно использовать двоеточие для выделения определенной последовательности элементов и создания новых векторов или матриц:

А = [1 2 3; 4 5 6];

B = A(:) B =

3

1

2

3

4

5

 

 

6

A(:) = 10 : 15

A =

 

 

10

12

14

11

13

15

В этих примерах создан новый вектор В и изменена матрица А.

Следующие примеры иллюстрируют операции вырезки из матрицы:

А =[1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15; 16 17 18 19 20]

A =

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

A (1 : 3, 3)

 

 

 

 

ans =

 

 

 

 

3

 

 

 

 

8

 

 

 

 

13

 

 

 

 

A(2 : 4, 2 : 5)

 

 

 

 

ans =

 

 

 

 

7

8

9

10

 

12

13

14

15

 

17

18

19

20

 

Транспонирование вектора означает, что строка элементов становится столбцом:

V = [1 2 3] V =

4

1 2 3

V’ ans =

1

2

3

Для создания многомерных массивов удобно использовать следующие функции:

ones (n1, n2, … , nn) создание массива с единичными элементами;

zeros (n1, n2, … , nn) создание массива с нулевыми элементами;

Хорошим примером на применение матричных операций

является решение

системы

линейных уравнений [1]. Пусть

требуется решить систему уравнений:

X

+

2Y

=

11

2X

+

3Y

=

18

Введем матрицу коэффициентов А и вектор правой части

системы уравнений В:

 

 

А = [1 2; 2

3]

 

 

 

ans =

 

 

 

 

12

23

B = [11; 18] ans =

11

18

A\B ans =

3

4.

5

УП Р А В Л Е Н И Е П Е Р Е М Е Н Н Ы М И И Р А Б О Ч Е Й С Р Е Д О Й

Рабочая область системы MATLAB - это область памяти, в которой размещены переменные системы. Содержимое этой области можно просмотреть из командной строки с помощью команд who и whos. Команда who выводит только имена переменных, а команда whos - информацию о размерах массивов и типе переменной, а также, в отдельной строке, информацию об общем количестве элементов в рабочей области и объеме используемой памяти.

Команды who global и whos global выводят списки глобальных переменных рабочей области.

clear

Освобождение области памяти

Синтаксис:

clear удаляет все переменные из рабочей области;

clear Х удаляет переменную или функцию с именем Х из рабочей области. Если Х глобальная переменная, то команда удаляет переменную Х из текущей рабочей области, но оставляет ее доступной для любой функции, где эта переменная объявлена глобальной;

ОП Е Р А Т О Р Ы , К О Н С Т А Н Т Ы , С Л У Ж Е Б Н Ы Е

ПЕ Р Е М Е Н Н Ы Е

Язык MATLAB – это язык операторов. Операторы, вводимые пользователем в командной строке, исполняются системой MATLAB в режиме интерпретации. Операторы имеют две формы записи:

с явным присваиванием: переменная = выражение;

с неявным присваиванием: выражение.

6

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

Для изменения стандартного порядка выполнения операций используются круглые скобки (квадратные скобки используются для задания элементов массива переменных).

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

При записи нескольких операторов в одной строке следует использовать разделители.

При использовании операторов с неявным присваиванием система MATLAB автоматически создает переменную с именем ans и присваивает ей значение результата. Переменная ans сохраняет значение результата выполнения только последнего оператора с неявным присваиванием.

Длина буфера командной строки ограничена 256 символами. Если оператор настолько сложен, что полностью не помещается на одной строке, то следует ввести несколько точек (не менее двух), нажать клавишу ENTER и продолжить ввод оператора в следующей строке.

Вычисления в системе MATLAB ведутся в поле вещественных и комплексных чисел с двойной точностью.

Операторы системы MATLAB делятся на 3 категории:

арифметические операторы - позволяют конструировать арифметические выражения и выполнять числовые вычисления;

операторы отношения - позволяют сравнивать числовые операнды;

логические операторы – позволяют строить логические выражения.

7

Логические операторы имеют самый низкий приоритет относительно операторов отношения и арифметических операторов.

+ - * / \ ^ ‘

Арифметические операторы

При работе с массивом чисел установлены следующие уровни приоритета среди арифметических операций:

уровень 1:

Поэлементное

транспонирование

(.’),

 

поэлементное возведение в степень (.^),

 

эрмитово

сопряженное

транспонирование

 

матрицы (), возведение матрицы в степень (^);

уровень 2:

Унарное сложение (+), унарное вычитание (-);

уровень 3: Умножение массивов (.*), правое деление (./), левое деление массивов (.\), умножение матриц (*), решение систем линейных уравнений - операция (/), операция (\);

уровень 4: сложение (+), вычитание (-); уровень 5: оператор формирования массивов (:).

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

Арифметические операторы системы MATLAB работают, как правило, с массивами одинаковых размеров. Для векторов и прямоугольных массивов оба операнда должны быть одинакового размера, за исключением единственного случая, когда один из них - скаляр. Если один из операндов скалярный, а другой нет. в системе MATLAB принято, что скаляр расширяется до размеров второго операнда и заданная операция

8