Лабораторная 1
Простые вычисления в matlab
Подготовка к работе
По указанной литературе изучить:
интерфейс пользователя, окна системы MATLAB;
правила ввода текста, данных и переменных;
операторы и функции;
задание функций пользователя;
формирование матриц и векторов;
правила вывода результатов;
построение графиков и графические средства для работы с ними;
построение графиков нескольких функций в одном окне и в разных окнах.
Контрольные вопросы
Поясните структуру окна системы MATLAB.
Охарактеризовать окна MATLAB.
Понятия о математическом выражении.
Как вводятся данные и выражения? Перечислите приоритетность выполнения операций в выражениях.
Константы и переменные системы MATLAB. Какие требования предъявляются к идентификаторам?
Дать понятие оператора и функции. Применение оператора : (двоеточие).
Назовите виды операторов системы MATLAB и поясните их назначение. Чем отличаются операторы / и * от соответствующих им операторов ./ и .* ?
Как задать в MATLAB ранжированную переменную? Для решения каких задач она используется?
Как вводятся текстовые комментарии?
Какие категории функций имеются в системе MATLAB?
Как задать функцию пользователя?
Как вывести результаты вычислений?
Каковы особенности задания векторов и матриц? Как указать отдельный элемент вектора или матрицы? Как удалить столбец или строку матрицы?
Как создать график функции одной переменной?
Как построить в одном окне графики нескольких функций?
Как произвести форматирование графиков? Как добавить к графику сетку, легенду?
Задание и порядок выполнения работы
Задание 1. Выполнить в режиме калькулятора над операндами 1, 2 и 3, приведенными в табл.1, следующие действия:
Ввод исходных операндов 1, 2 и 3.
Выполнить над операндами 1 и 2 операцию 1.
Выполнить над результатом и операндом 1 операцию 2.
Выполнить над результатом и операндом 1 операцию 3.
Представить операнд 2 в виде столбца
Возвести поэлементно операнд 3 в квадрат
Транспонировать операнды 2 и 3.
Удалить у операнда 3 столбец или строку, заданную в табл.1
Вывести 3-й элемент операнда 2 .
Таблица 1. Варианты заданий.
N |
Операнд 1 |
Операнд 2 |
Операнд 3 |
Операции |
| ||
1 |
2 |
3 |
4 | ||||
1 |
x = -5 |
V=[ 12 -57 52 06 ] |
M=[ 4 -7 2; -5 3 9 ] |
* |
./ |
+ |
1 строку |
2 |
x = 6 |
V=[ 11 35 -64 80] |
M=[ -2 3 7; 6 9 -4 ] |
/ |
.* |
- |
1 столбец |
3 |
x = -8 |
V=[ 13 14 74 -35] |
M=[ -5 7 2; -1 8 5 ] |
+ |
.\ |
/ |
2 столбец |
4 |
x = 7 |
V=[ -14 76 98 67] |
M=[ 4 -2 6; 7 3 -9 ] |
- |
.* |
/ |
3 столбец |
5 |
x = -5 |
V=[ 15 -34 64 98] |
M=[ 7 5 -6; 3 5 -1 ] |
+ |
.\ |
* |
2 строку |
6 |
x = 9 |
V=[ 16 45 -38 54] |
M=[ 5 -3 7; -5 6 9 ] |
/ |
./ |
- |
1 столбец |
7 |
x = -3 |
V=[ 17 48 96 -46] |
M=[ -5 3 8; 5 -6 6 ] |
/ |
.* |
/ |
2 столбец |
Методические указания по выполнению задания
В MATLAB все данные рассматриваются, как матрицы. Тип результата определяется автоматически по виду выражения.
В идентификаторах имеет значение высота буквы. Рекомендуется для имен простых переменных выбирать строчные буквы, а для структурированных (векторы и массивы) прописные.
Векторы вводятся в квадратных скобках, компоненты вектора разделяются пробелами. Например, V=[1 2 3].
Матрицы вводятся в квадратных скобках, внутри которых размещаются векторы строк, разделенные знаком точка с запятой (;).Например, M=[1 2 3; 4 5 6; 7 8 9].
Если данные не умещаются в строке, строку можно отобразить в нескольких строках, используя разделитель в виде многоточия (не менее трех точек).
Значение p задается системной константой с именем pi.
Для правильного вызова встроенных функций рекомендуется обратиться к справке MATLAB Help. В панели оглавления слева нужно выделить раздел Function Toolbox – в нем алфавитный список функций (Function –Alphabetical List). В правой части появиться список доступных функций. В нем нужно найти нужную функцию и щелкнуть по ней. В правом окне отобразиться описание выбранной функции с форматом обращения и примерами использования.
В MATLAB возможны два режима работы:
В командном окне, как с калькулятором. В этом случае каждое действие сразу же исполняется.
В редакторе программ. В этом случае программа вводится, как обычно, а исполняется по команде встроенного отладчика.
При работе в режиме калькулятора выражения могут вводиться:
В прямой форме, тогда после завершения ввода ответ будет выведен под встроенным системным именем ans. Переменная с этим именем всегда хранит результат последнего вычисления.
В форме оператора присвоения, когда переменной с выбранным именем присваивается значение выражения. Ответ в этом случае выводиться под именем этой переменной.
Любое уже определенное значение можно вызвать из рабочей области по имени переменной.
Если вычисляется значение переменной с выбранным именем по заданному выражению, результат выводится под именем этой переменной в следующей строке. Векторы выводятся в строке с пробелами, матрицы – построчно, каждая содержит вектор строки.
Для работы с матрицами используются специальные символы:
A( m, : ) = [ ] – удаляет строку m из матрицы А;
A( :, n ) = [ ] – удаляет столбец n из матрицы А;
V(n) – выводит n – й элемент вектора V;
V ‘ – транспонирует матрицу.
При работе с программой неграфические результаты выводятся в окно командной строки. При необходимости их можно выводить, как текст, в специально создаваемое окно.
Вывод результата можно заблокировать, если в конце строки ввода ввести знак точка с запятой (;). Значение переменной, результат которой присваивается, храниться в рабочей области.
При работе с массивами определены операторы поэлементного выполнения. В последних, перед символом операции вводится точка (.).
Например X.^ 3 (возведение элементов массива X в третью степень).
Символ присвоения – знак равенства (=). Равенство, как оператор отношения в условиях, вводится, как двойное равенство (= =).
Текстовые пояснения в программу вводятся, как комментарий. Он начинается с символа %, который располагается в первой позиции строки.
Комментарий – это текст! В него символы операций не включаются.
Примеры работы с простыми переменными, векторами и матрицей:
>> x=-5;
>> V=[12 -57 52 6];
>> M=[4 -7 2; -5 3 9];
>> V1=x*V
V1 =
-60 285 -260 -30
>> V1./x
ans =
12 -57 52 6
>> M(1,2)
ans =
-7
Задание 2.
Построить графики заданных функций по исходным данным, приведенным в табл. 2. Для этого:
Ввести функции пользователя Y и Z.
Задать изменение аргумента x Î a..b с шагом h.
Вычислить значения функций 1 и 2 для аргумента x в заданном интервале.
Вывести графики функций одновременно на одном графике в декартовых координатах. Для разных графиков использовать разный тип линий. Для первого графика y(x) цвет линии, тип точек и тпи линии взять по варианту N из табл. 2, для второго графика z(x) – взять характеристики линии из той же таблицы, но по варианту 13-N. Добавить в графики заголовки и сетку.
Вывести графики функций в двух подокнах на одном графике. Графики вывести в столбиковом формате с заголовками для каждого графика.
Таблица 2. Варианты заданий
N |
Функция 1 |
Функция 2 |
Цвет линии |
Тип точки |
Тип линии |
a |
b |
h |
1 |
y = sin(x) |
z= exp(x+3)/5000 - 1 |
y |
. |
- |
-2π |
2π |
π/20 |
2 |
y = cos(x) |
z = 0.00025e3-x - 0.6 |
m |
o |
: |
-2π |
2π |
π/20 |
3 |
y=|tg(x)|+0.1 |
z = cos(2x) |
c |
x |
-. |
-2π |
2π |
π/20 |
4 |
y = (x2-1)/15 |
z = 1+sin(x) |
r |
+ |
-- |
-2π |
2π |
π/20 |
5 |
y = (x3-2)/15 |
z = 5cos(x) |
g |
* |
- |
-2π |
2π |
π/20 |
6 |
y = x2 - 10 |
z = 0.025exp(-1.2x) |
b |
s |
: |
-5 |
5 |
0.5 |
7 |
y = 3sin(x) |
z=0.015x3 |
w |
d |
-. |
-5 |
5 |
0.3 |
8 |
y = 4sin(x) |
z = 0.05x2 |
k |
v |
-- |
1 |
10 |
0.2 |
Для формирования XY графика необходимо:
Задать аргумент в формате x=<нач. значение>:<шаг>:<нач. значение>.
Вычислить функцию, например, y=f(x).
Вывести график процедурой plot(x,y,s). Процедура рисует график прямыми линиями между вычисленными точками. Здесь s - строковая константа, задающая параметры линии, ее можно пропускать. Определены следующие значения s:
Цвет линии
Тип точки
Тип линии
y
желтый
.
точка
-
сплошная
m
фиолетовый
o
кружок
:
двойной пунктир
c
голубой
x
крест
-.
штрих пунктир
r
красный
+
плюс
--
штрих
g
зеленый
*
звездочка
b
синий
s
квадрат
w
белый
d
ромб
k
черный
v
треугольник вверх
<
треугольник влево
>
треугольник вправо
p
пятиугольник
h
шестиугольник
Если на одном графике нужно отобразить несколько функций, например, y1=f(x) и y2=f(x)., то они вначале вычисляются, а затем выводятся процедурой plot(x,y1,'s1',x,y2,'s2' ...), в которой в качестве параметров для каждой функции следуют группы <аргумент, функция, строка типа линии>.
Для создания в графическом окне нескольких подокон для вывода графиков используется процедура subplot(m,n,p), где m - число подокон в окне по горизонтали, n - по вертикали, p - номер используемого подокна (нумерация с 1).
Для формирования графика в столбиковой форме нужно использовать процедуру bar(x,y). При выводе такого графика в подокно строка программы имеет вид subplot(m,n,p), bar(x,y).
Пример выполнения
>> % Ввод исходных данных
>> a=-2*pi;
>> b=2*pi;
>> h=pi/20; % Шаг
>> X=a:h:b; % Задание аргумента
>> % Расчет функций
>> Y=abs(cos(X));
>> Z=-abs(sin(2*X));
>> % Вывод графиков с разными типами линии в окно1
>> figure(1);
>> plot(X,Y,':mo',X,Z,'--b.');
>> grid on; % Добавление координатной сетки
>> title('Y,Z'); % Добавление заголовка
>> figure(2);
>> % Вывод графика 1 в виде столбиков подокно1
>> subplot(2,1,1),bar(X,Y);
>> title('Y,X');
>> % Вывод графика 2 в виде столбиков подокно2
>> subplot(2,1,2),bar(X,Z);
>> title('Z,X');
Рис.1. Вывод графиков с разными типами линии в окно1
Рис.2. Вывод графиков в виде столбиков разные подокна 1 и 2.
Лабораторная 2