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

Информатика_MATLAB / Методические пособия / Лабораторная работа №1. Введение в MATLAB

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

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

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

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

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

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

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

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

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

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

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

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

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

1

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

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

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

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

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

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

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

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

2

Работа с 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 встречает имя новой переменной, он автоматически создает новую переменную и выделяет для нее нужный объем памяти. Если данная переменная уже существовала, то он изменит ее значение, и при необходимости выделит дополнительную память.

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

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

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

цифры (0-9)

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

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

3

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

 

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

 

 

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

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

 

 

x6

6x

 

 

lastValue

end

 

 

n_factorial

n!

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

>>x = 2;

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

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

достаточно просто ввести ее имя:

>> y

y =

14

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

>>a = pi / 2;

>>b = - pi / 6;

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

ans =

0.5000

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

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

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

4

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

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

clear. Так для удаления переменной x нужно ввести:

>> clear x

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

нужно ввести команду clear без аргументов:

>> clear

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

>> clc

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

Почти все переменные в 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 =

5

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 вектор-столбец. Отличия вектора-столбца от вектора-строки проявляются при использовании матричных операций и использовании функций.

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

«:». Например:

>> 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 =

-4.7124

0

-0.7854

-1.5708

-2.3562

-3.1416

-3.9270

-5.4978

-6.2832

 

 

 

 

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

Рассмотрим поэлементные операции над матрицами/векторами, которые понадобятся

6

в дальнейшем для построения графиков.

Многие функции 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

Результат данных вычислений является вектор такого же размера, что и входной аргумент функции 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 =

7

1 4 3

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

>>x = [1 2 3];

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

>>x .* y

Error using .*

Matrix dimensions must agree.

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

матричные операции.

При вычислении более сложных операций в MATLAB нужно помнить о приоритете этих операций. Приоритет операций представлен в таблице 2.

Таблица 2. Приоритеты арифметических операций

уровень

операции

 

 

 

поэлементное транспонирование «.'», поэлементное возведение в степень «.^»,

1

эрмитово сопряженное транспонирование матрицы «'», возведение матрицы в

 

степень «^»

2

унарное сложение «+», унарное вычитание «-»

 

 

3

поэлементное умножение «.*», поэлементное деление «./», умножение матриц

 

«*», решение систем линейных уравнений «/»

4

сложение «+», вычитание «-»

5

оператор формирования массивов «:»

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

Приведем пример:

>>x = [0 pi*5/2];

>>y = ( sin( 2 * x ) + 1 ) .* x

y =

07.8540

Отметим, что матрицы или вектора можно складывать со скалярными значениями и в

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

>> [1 2 3] - 2

ans =

-1 0 1

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

Основы построения графиков

8

Приведем пример построения графика в MATLAB:

>>x = 0 : 0.05 : 6*pi;

>>y = ( sin( 2 * x ) + 1 ) .* ( x .^ 2 );

>>plot(x, y);

>>xlabel x

>>ylabel y

После ввода данных команд появится график представленных на рисунке 4.

Рисунок 4. График в MATLAB

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

Для того чтобы подписать оси графиков используется команды xlabel и ylabel, за которыми следует название оси графика.

Задания на лабораторную работу

После выбора номера варианта выполнить следующие этапы:

1.выбрать функцию для вычисления в соответствии с номером варианта;

2.вычислить значение заданной функции в точке x1;

3.с использованием оператора двоеточия сформировать вектор x со значениями от xMin до xMax с шагом dx;

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

5.используя созданные вектора, построить график функции и подписать оси.

Примечание к заданию

Для вычисления натурального логарифма, тангенса и экспоненты в MATLAB предусмотрены функции log, tan и exp соответственно.

Варианты задания

Номер

функция

x1

xMin

 

dx

xMax

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

y=sin (2 x )2cos(5 x)+ 2

π

2 π

 

π

2 π

3

 

25

 

9

Номер

 

 

 

 

 

 

 

 

функция

 

 

 

 

 

 

 

 

 

x1

xMin

 

dx

xMax

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

2

π

 

 

π

 

2

y= sin( x) +cos(−3 x) +2

2 π

 

2 π

3

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

y=−5cos( x2)+ xsin( x) x 2

π

2 π

 

π

2 π

3

 

25

 

 

 

 

 

 

tg(2x) sin (

x

)

 

π

 

 

π

 

 

 

 

 

 

 

 

4

y=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

3

2 π

25

 

2 π

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

y=6sin(

x

 

 

 

+1)+cos(

 

x

2

 

3 x )

π

2 π

 

π

2 π

 

 

 

 

 

 

 

 

3

 

25

 

 

 

 

 

 

 

 

 

10

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

y=

 

 

x3+ 4 x 10

 

 

 

 

 

 

5

8

0.16

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7 x24 x +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2+

4

x+ 2

 

 

 

 

 

 

7

 

 

 

 

 

 

5

8

0.16

8

y=

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 x39 x +2

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

x4

10 x2 +4

3

0

0.08

8

y=

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6 x3 2 x +2

 

 

 

 

 

 

 

9

y=

 

 

 

x24 x +4

 

 

 

 

 

 

3

0

0.08

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 x24 x+4

 

 

 

 

 

 

 

 

 

 

 

 

10

y=

x2 + 4 x10

 

 

 

 

 

 

3

0

0.08

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 x34 x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

y=

4

 

+ sin( x+1) x

4

1

0.08

9

 

x

 

 

 

 

 

 

12

y=2 e−(x3)2 + 2 e−(x6)2

4

1

0.08

9

13

y=−x e−(x4)2 + x e−( x9 )2

4

1

0.08

9

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−(x4 )2

 

 

 

 

 

 

14

y=ln (

 

) x sin (x )+ e

2

4

0.02

6

4

 

 

 

 

 

 

 

 

 

 

ln (

x

) x +10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

y=

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

2

4

0.02

6

 

2

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ln(

x

) x+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10