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

Методическое пособие (Лаб.1-2)

.pdf
Скачиваний:
11
Добавлен:
02.04.2015
Размер:
724.42 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ

Информатика

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

Санкт-Петербург 2014

Содержание

 

Лабораторная работа №1. Введение в MATLAB.............................................................................

3

Лабораторная работа №2. Программы в MATLAB.......................................................................

14

2

Лабораторная работа №1. Введение в MATLAB

Краткая характеристика MATLAB

MATLAB (сокращение от англ. «Matrix Laboratory») – это пакет прикладных программ для решения задач технических вычислений и одноименный язык программирования, используемый в этом пакете.

Система MATLAB предлагается разработчиками (корпорация The MathWorks, Inc.) как лидирующий на рынке, в первую очередь на предприятиях военно-промышленного комплекса, в энергетике, в аэрокосмической отрасли и в автомобиле строении язык программирования высокого уровня для технических вычислений, расширяемый большим числом пакетов прикладных программ – расширений. Самым известным из них стало расширение Simulink, обеспечивающее блочное имитационное моделирование различных систем и устройств. Но и без пакетов расширения MATLAB представляет собой мощную операционную среду для выполнения огромного числа математических и научно технических расчетов и вычислений и создания пользователями своих пакетов расширения и библиотек процедур и функций.

Робота в среде MATLAB может осуществляться в двух режимах:

в интерактивном режиме, когда вычисления осуществляются сразу после набора очередного оператора или команды MATLAB; при этом значение результатов вычисления могут присваиваться некоторым переменным, или результаты получаются непосредственно, без присваивания (как в обычных калькуляторах);

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

Именно с интерактивного режима мы начнем работу в MATLAB.

Описание интерфейса MATLAB

После запуска можно будет увидеть следующее окно системы MATLAB, представленное на рисунке 1.

3

Рисунок 1. Окно системы MATLAB R2013b после запуска

Далее рассмотрим основные элементы графического интерфейса MATLAB, отмеченные на рисунке 2, и кратко опишем из назначение.

Рисунок 2. Основные элементы пользовательского интерфейса MATLAB Основные элементы интерфейса MATLAB:

1.Командное окно, предназначенное для интерактивной работы в MATLAB;

2.Рабочая область, в которой отображаются текущие переменные;

3.Рабочий каталог, где содержатся пользовательские скрипты и функции;

4

4.Содержимое рабочего каталога;

5.История команд введенных в командное окно.

Работа с MATLAB в режиме командной строки

Простые вычисления

Рассмотрев основные элементы интерфейса прейдем непосредственно к работе с

MATLAB в интерактивном

режиме. Для этого вычислим значение полинома

y=3 x24 x +10 при значении

x=2 . Для этого в командное окно надо ввести:

>>3 * 2 ^ 2 - 4 * 2 + 10

инажать Enter. Символом >>, как и в MATLAB, будем в дальнейшем обозначать

приглашение к вводу. После нажатия Enter в ответ MATLAB выведет: ans =

14

 

 

 

 

 

 

 

 

 

Теперь

попробуем

вычислить

более

сложное

выражение

y=cos(a)cos(b)−sin (a)sin(b)

при

a= π

,

b=−

π

. Заметим, что для

вычисления

 

 

 

 

2

 

6

 

 

 

представленного выражения необходимо будет использовать функции MATLAB sin, cos и константу pi (технически так же является функцией). Так же отметим, что все тригонометрические функции в MATLAB принимают значения угла в радианах. Теперь вычислим данное выражение:

>> cos(pi/2)*cos(-pi/6)-sin(pi/2)*sin(-pi/6)

ans =

0.5000

Объявление переменных

Для создание переменной в MATLAB необходимо просто присвоить ей значение с помощью оператора присваивания «=». Например создадим переменную x:

>> x = 2

x =

2

В данном случае, когда MATLAB встречает имя новой переменной, он автоматически

5

допустимые имена переменных
x6

создает новую переменную и выделяет для нее нужный объем памяти. Если данная переменная уже существовала, то он изменит ее значение, и при необходимости выделит дополнительную память.

Тип созданной переменной определяется типом присваиваемого значения. В данном примере переменная x будет иметь тип double (число с плавающей точкой двойной точности), так как все числа по умолчанию в MATLAB имеют тип double.

Теперь немного остановимся на именах переменных. Имя переменной может содержать:

латинские буквы (A-Z и a-z)

цифры (0-9)

знак подчеркивания (_)

При этом имя обязательно должно начинаться с буквы и не должно совпадать с ключевым словом MATLAB. Так же необходимо учитывать, что MATLAB чувствителен к регистру, и поэтому будет считать переменные x и X разными. В таблице 1 приведены примеры допустимых и недопустимых имен переменных:

Таблица 1: Примеры имен переменных

недопустимые имена переменных

6x

lastValue

end

n_factorial

n!

Далее проделаем те же вычисления, что и в предыдущем пункте, но с использованием

переменных:

 

>>x = 2;

>>y = 3 * x ^ 2 - 4 * x + 10;

Отметим, что в данном случае после выражения был поставлен символ «;». Данный символ подавляет вывод в консоль значения вычисленного выражения или результата присвоенного переменной. Поэтому для того чтобы вывести значение данной переменной достаточно просто ввести ее имя:

>> y

y =

14

Теперь произведем аналогичные действия для второго примера:

>>a = pi / 2;

>>b = - pi / 6;

6

>> cos(a) * cos(b) - sin(a) * sin(b)

ans =

0.5000

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

Удаление созданных переменных

Все созданные переменные и их значения можно отображаются в окне workspace (рисунок 3).

Рисунок 3. Текущие переменные

Для удаления переменных в MATLAB из рабочей области предусмотрена команда clear. Так для удаления переменной x нужно ввести:

>> clear x

Для удаления нескольких переменных сразу необходимо после команды сlear перечислить имена переменных через пробел. Если нужно удалить сразу все переменные, то нужно ввести команду clear без аргументов:

>> clear

Для очистки командного окна нужно ввести следующую команду:

>> clc

7

Создание матриц и векторов

Почти все переменные в MATLAB являются матрицами, даже скалярные значения, созданные в примерах выше, считаются матрицами размером 1 на 1. Матрицы в MATLAB являются важнейшим типом для данного языка, поэтому рассмотрим способы ввода матрицы

с указания полного списка элементов. Для примера создадим матрицу A=[4.31.2

5.32.4

6.43.1] :

>> A = [1.2 2.4 3.1; 4.3 5.3 6.4]

 

 

A =

 

 

 

 

1.2000

2.4000

3.1000

 

 

4.3000

5.3000

6.4000

 

 

В данном случае элементы матрицы, находящиеся в одной строке, разделяют пробелами, а строки разделяются символом «;». Так же элементы находящиеся в одной строке можно разделить с помощью запятых:

>> A = [1.2, 2.4, 3.1; 4.3, 5.3, 6.4]

A =

1.2000

2.4000

3.1000

4.3000

5.3000

6.4000

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

>> x = [1 2 3]

x =

1 2 3

>> y = [1; 2; 3]

y =

1

2

3

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

8

Рассмотрим еще один важный способ задания вектора-строки — оператор двоеточия «:». Например:

>> 1:10

ans =

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

В данном случае был создан вектор-строка со значениями от 1 до 10 с шагом 1. В

случае необходимости шаг можно указать явно:

 

 

 

 

 

>> 1:2:10

 

 

 

 

 

 

 

 

 

ans =

 

 

 

 

 

 

 

 

 

1

3

5

7

9

 

 

 

 

 

В данном случае значение 10 не содержится в векторе, так как оно задает лишь максимальное значение (или минимальное, при отрицательном шаге), которое будет содержаться в векторе.

Шаг так же может быть отрицательным:

 

 

>> 0 : -pi/4 : -2

* pi

ans =

 

 

 

0

-0.7854

-1.5708 -2.3562 -3.1416 -3.9270

-4.7124

-5.4978

 

-6.2832

Поэлементные операции над матрицами

Рассмотрим поэлементные операции над матрицами/векторами, которые понадобятся в дальнейшем для построения графиков.

Многие функции MATLAB могут работать с матрицами и векторами. Рассмотрим в качестве примера функцию sin:

>> x = 0 : pi/6 : pi

x =

0

0.5236

1.0472

1.5708

2.0944

2.6180

3.1416

>> sin(x)

ans =

0

0.5000

0.8660

1.0000

0.8660

0.5000

0.0000

9

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

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

>>x = [1 2 3];

>>y = [3 2 1];

>>x + y

ans =

4 4 4

>> x - y

ans =

-2 0 2

>> x .* y

ans =

3 4 3

>> x ./ y

ans =

0.3333 1.0000 3.0000

>> x .^ y

ans =

1 4 3

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

>>x = [1 2 3];

>>y = [3; 2; 1];

>>x .* y

Error using .*

Matrix dimensions must agree.

Отметим, что для поэлементного умножения, деления и возведения в степень необходимо перед операцией ставить точку: «.*», «./», «.^», иначе будут применяться

10