Лабораторная 1
Простые вычисления в MATLAB
Подготовка к работе
По указанной литературе изучить:
- интерфейс пользователя, окна системы MATLAB;
- правила ввода текста, данных и переменных;
- операторы и функции;
- задание функций пользователя;
- формирование матриц и векторов;
- правила вывода результатов;
- построение графиков и графические средства для работы с ними;
- построение графиков нескольких функций в одном окне и в разных окнах.
Контрольные вопросы
1. Поясните структуру окна системы MATLAB.
2. Охарактеризовать окна MATLAB.
3. Понятия о математическом выражении.
4. Как вводятся данные и выражения? Перечислите приоритетность выполнения операций в выражениях.
5. Константы и переменные системы MATLAB. Какие требования предъявляются к идентификаторам?
6. Дать понятие оператора и функции. Применение оператора: (двоеточие).
7. Назовите виды операторов системы MATLAB и поясните их назначение. Чем отличаются операторы / и * от соответствующих им операторов./ и.*?
8. Как задать в MATLAB ранжированную переменную? Для решения каких задач она используется?
9. Как вводятся текстовые комментарии?
10. Какие категории функций имеются в системе MATLAB?
11. Как задать функцию пользователя?
12. Как вывести результаты вычислений?
13. Каковы особенности задания векторов и матриц? Как указать отдельный элемент вектора или матрицы? Как удалить столбец или строку матрицы?
14. Как создать график функции одной переменной?
15. Как построить в одном окне графики нескольких функций?
16. Как произвести форматирование графиков? Как добавить к графику сетку, легенду?
Задание и порядок выполнения работы
Задание 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 | Операции | |||
x = -5 | V=[ 12 -57 52 06 ] | M=[ 4 -7 2; -5 3 9 ] | * | ./ | + | 1 строку | |
x = 6 | V=[ 11 35 -64 80] | M=[ -2 3 7; 6 9 -4 ] | / | .* | - | 1 столбец | |
x = -8 | V=[ 13 14 74 -35] | M=[ -5 7 2; -1 8 5 ] | + | .\ | / | 2 столбец | |
x = 7 | V=[ -14 76 98 67] | M=[ 4 -2 6; 7 3 -9 ] | - | .* | / | 3 столбец | |
x = -5 | V=[ 15 -34 64 98] | M=[ 7 5 -6; 3 5 -1 ] | + | .\ | * | 2 строку | |
x = 9 | V=[ 16 45 -38 54] | M=[ 5 -3 7; -5 6 9 ] | / | ./ | - | 1 столбец | |
x = -3 | V=[ 17 48 96 -46] | M=[ -5 3 8; 5 -6 6 ] | / | .* | / | 2 столбец |
Методические указания по выполнению задания
1. В MATLAB все данные рассматриваются, как матрицы. Тип результата определяется автоматически по виду выражения.
2. В идентификаторах имеет значение высота буквы. Рекомендуется для имен простых переменных выбирать строчные буквы, а для структурированных (векторы и массивы) прописные.
3. Векторы вводятся в квадратных скобках, компоненты вектора разделяются пробелами. Например, V=[1 2 3].
4. Матрицы вводятся в квадратных скобках, внутри которых размещаются векторы строк, разделенные знаком точка с запятой (;).Например, M=[1 2 3; 4 5 6; 7 8 9].
5. Если данные не умещаются в строке, строку можно отобразить в нескольких строках, используя разделитель в виде многоточия (не менее трех точек).
|
6. Значение p задается системной константой с именем pi.
7. Для правильного вызова встроенных функций рекомендуется обратиться к справке MATLAB Help. В панели оглавления слева нужно выделить раздел Function Toolbox – в нем алфавитный список функций (Function –Alphabetical List). В правой части появиться список доступных функций. В нем нужно найти нужную функцию и щелкнуть по ней. В правом окне отобразиться описание выбранной функции с форматом обращения и примерами использования.
8. В 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. Для этого:
1. Ввести функции пользователя Y и Z.
2. Задать изменение аргумента x Î a..b с шагом h.
3. Вычислить значения функций 1 и 2 для аргумента x в заданном интервале.
4. Вывести графики функций одновременно на одном графике в декартовых координатах. Для разных графиков использовать разный тип линий. Для первого графика y(x) цвет линии, тип точек и тпи линии взять по варианту N из табл. 2, для второго графика z(x) – взять характеристики линии из той же таблицы, но по варианту 13-N. Добавить в графики заголовки и сетку.
5. Вывести графики функций в двух подокнах на одном графике. Графики вывести в столбиковом формате с заголовками для каждого графика.
Таблица 2. Варианты заданий
N | Функция 1 | Функция 2 | Цвет линии | Тип точки | Тип линии | a | b | h |
y = sin(x) | z= exp(x+3)/5000 - 1 | y | . | - | -2π | 2π | π/20 | |
y = cos(x) | z = 0.00025e3-x - 0.6 | m | o | : | -2π | 2π | π/20 | |
y=|tg(x)|+0.1 | z = cos(2x) | c | x | -. | -2π | 2π | π/20 | |
y = (x2-1)/15 | z = 1+sin(x) | r | + | -- | -2π | 2π | π/20 | |
y = (x3-2)/15 | z = 5cos(x) | g | * | - | -2π | 2π | π/20 | |
y = x2 - 10 | z = 0.025exp(-1.2x) | b | s | : | -5 | 0.5 | ||
y = 3sin(x) | z=0.015x3 | w | d | -. | -5 | 0.3 | ||
y = 4sin(x) | z = 0.05x2 | k | v | -- | 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.