Если необходимо расположить в одном окне несколько графиков без наложения применяют разбиение на окна:
subplot (m, n, p) – разбивает графическое окно на m подокон по горизонтали и на n подокон по вертикали, а номер p подокна, в которое выводится текущий график.
Чтобы создать несколько графических окон, в каждом из которых размещаются соответствующие графики, можно воспользоваться командой figure, которая создаст новое графическое окно, оставляя предыдущие.
9 Практическая часть
1) Построить график синусоиды с амплитудой N (номер машины), частотой равной 170 N и начальной фазой 10 N. Количество выводимых точек не менее 100.
2) Построить график косинусоиды с амплитудой 3N (номер машины), частотой равной 10 N и начальной фазой 15 N. Количество выводимых точек не менее 100.
3) Вывести оба графика в одном окне на Фигуре 1 и в двух подокнах на Фигуре 2.
4) Нанести на графики титульные надписи, пояснения к осям, и легенды, поясняющие графики.
5) Подписать графики, находящиеся в одном окне.
6) Изменить цвет выводимых графиков и тип линий и узловых точек.
7) Построить графики векторов этих функций в полярной системе координат, в виде дискретных отсчетов функций и в виде проекций векторов на плоскость. Количество выводимых точек равно 20.
8) Построить сетчатый график параболоида z(x,y)=x2 + y2) с узловыми точками, заданными цветными кружками и его проекцию.
9) Построить сетчатый график параболоида z(x,y)=x2 + y2) с функциональной закраской ячеек, используя при этом файл помощи help grafh3d.
10) Изучить в файле помощи и построить следующие фигуры: cylinder, sphere, trimesh, trisurf, peaks.
10 Контрольные вопросы
1) Какие функции позволяют строить графики отрезками прямых линий?
2) Какими символами можно задать спецификацию линий графика?
3) Графики в логарифмическом масштабе?
4) Какие функции позволяют строить графики векторов в декартовых и полярных координатах?
5) Какие функции позволяют менять оформление графиков?
Лабораторная работа № 4
Функции прикладной численной математики
1 Цель
Ознакомиться с основными функциями численной математики в системе MatLAB и обработкой численных данных.
2 Общие сведения
В системе MatLAB предусмотрены некоторые дополнительные возможности математического оперирования с полиномами.
Полином (многочлен) как функция определяется выражением
Р(х) = а0 + а1х + а2х2 + …+ аnxn
где а0, а1, …ап _- коэффициенты.
В MatLAB полином задается и хранится в виде вектора, элементами которого являются коэффициенты полинома от ап до а0
Р = [аn ... а2 а1 a0]
Ввод полиномов в MatLAB осуществляется таким же образом, как и ввод вектора длиной n+1, где n — порядок полинома.
2.1 Умножение полиномов
Произведением двух полиномов степеней n и m соответственно, как известно, называют полином степени n+m, коэффициенты которого определяют простым перемножением этих двух полиномов. Фактически операция умножения двух полиномов сводится к построению расширенного вектора коэффициентов по заданным векторам коэффициентов полиномов-сомножителей. Эту операцию в математике называют сверткой векторов (а сам вектор, получаемый в результате такой процедуры, — вектором-сверткой двух векторов). В MatLAB ее осуществляет функция conv(Pl, P2).
Аналогично, функция deconv(Pl, Р2) осуществляет деление полинома Р1 на полином Р2, т. е. обратную свертку векторов Р1 и Р2. Она определяет коэффициенты полинома, который является частным от деления Р1 на Р2.
Пример.
» p1 = [1, 2, 3]; p2 = [1, 2, 3, 4, 5, 6];
» p = conv (p1, p2)
p = 27 18
» deconv (p, p1)
ans =
В общем случае деление двух полиномов приводит к получению двух полиномов — полинома-результата (частного) и полинома-остатка. Чтобы получить оба эти полинома, следует оформить обращение к функции таким образом:
[Q, R] = deconv (B, A)
Тогда результат будет выдан в виде вектора Q с остатком в виде вектора R таких, что будет выполнено соотношение:
В = сonv (A, Q) + R
2.2 Вычисление корней полинома
Система MatLAB имеет функцию roots(P), которая вычисляет вектор, элементы которого являются корнями заданного полинома Р.
Пусть требуется найти корни полинома:
Р(х) = х5 + 8x4 + 31х3 + 80x2 + 94х + 20
Обратная операция — построение вектора р коэффициентов полинома по заданному вектору его корней — осуществляется функцией poly:
р = poly (r)
Здесь r – заданный вектор значений корней, р – вычисленный вектор полинома.
Пример.
» p = [1, 8, 31, 80, 94,2 0]
p =
» r = roots (p)
r =
-1.0000 + 3.0000i
-1.0i
-3.7321
-2.0000
-0.2679
» p1 = poly (r)
p1 = 1.
Эта же функция в случае, когда аргументом ее является некоторая квадратная матрица А размером (N*N), строит вектор характеристического полинома этой матрицы. Обращение р = poly (А) формирует вектор р коэффициентов полинома
p(s) = det (s * E – A) = p1* sn + …+pn * s + pn+1
где Е – обозначение единичной матрицы размером (N*N).
2.3 Вычисление значения полинома
Для вычисления значения полинома по заданному значению его аргумента в MatLAB предусмотрена функция polyval. Обращение к ней происходит по схеме
y = polyval (p, x)
где р – заданный вектор коэффициентов полинома, а х – заданное значение аргумента.
Если как аргумент полинома указана матрица Х, то функция polyval
(p, Х) вычисляет матрицу, элементы которой являются значениями указанного полинома при аргументе, равном соответствующему элементу матрицы Х, например:
В этом случае функция вычисляет значения полинома для каждого элемента матрицы Х, и поэтому размеры входной и выходной матриц одинаковы size (Y) = size (X).
2.4 Вычисление производной от полинома
Вычисление производной от полинома производится функцией polyder. Эта функция создает вектор коэффициентов полинома, представляющего собой производную от заданного полинома. Она имеет три вида обращений:
- dp = polyder (p) по заданному полиному р вычисляет вектор dp, элементы которого являются коэффициентами полинома-производной от заданного:
» dp = polyder (p)
dp = 3 -20 20
- dp = polyder (p1, р2) вычисляет вектор dp, элементы которого являются коэффициентами полинома-производной от произведения полиномов р1 и р2:
» p1 = [1, 8, 31, 80, 94, 20];
» p2 = [1, 2, 16];
» p = conv (p1, p2)
p =
Columns 1 through 6
1488
Columns 7 through 8
1
» dp = polyder (p)
dp =
70 2
» dp1 = polyder (p1, p2)
dp1 =
70 2
- [q, p] = polyder (p1, р2) вычисляет производную от отношения (р1/р2) двух полиномов р1 и р2 и выдает результат в виде отношения (q/р) полиномов q - частного и р - остатка:
» p1 = [1, 8, 31, 80, 94, 20];
» p2 = [1, 2, 16];
» [q, p] = polyder (p1, p2)
q = 3 2
p =
» z = deconv (q, p)
z = 3 12 3
» y = deconv (p1, p2)
y =
» z1 = polyder (y)
z1 = 3 12 3
В качестве примера рассмотрим построение графиков амплитудно-частотной и фазо-частотной характеристик звена, описываемого передаточной функцией

Для этого следует, во-первых, создать векторы-полиномы числителя
Рс = [1 4] и знаменателя Рz = [] передаточной функции.
Во-вторых, определить корни этих двух полиномов:
» P1 = [1 4]; P2 = [];
» roots (P1)
ans = -4
» roots (P2)
ans = -2.0000 + 9.7980i
-2.0i
В-третьих, задать диапазон изменения частоты таковым, чтобы он охватывал все найденные корни:
» om0 = 1e-2; omk = 1e2
Теперь нужно задать количество точек будущего графика:
» n = 41
и сформировать массив точек по частоте ОМ = logspace (-2, 2, 41), где значения –2 и +2 соответствуют десятичным порядкам начального (om0) и конечного (omk) значений частоты.
Пользуясь функцией polyval, можно вычислить сначала вектор ch комплексных значений числителя частотной передаточной функции, соответствующей заданной передаточной функции, если в качестве аргумента функции polyval использовать сформированный вектор частот ОМ, элементы которого умножены на мнимую единицу. Аналогично вычисляется комплекснозначный вектор zn знаменателя ЧПФ.
Вектор значений АЧХ (амплитудно-частотной характеристики) можно найти, вычисляя модули векторов числителя и знаменателя ЧПФ и деля поэлементно полученные векторы. Чтобы найти вектор значений ФЧХ (фазо-частотной характеристики) надо разделить поэлементно комплекснозначные векторы числителя и знаменателя ЧПФ и определить вектор аргументов элементов полученного вектора. Чтобы фазы представить в градусах, полученные результаты следует умножить на 180 и разделить на π.
Наконец, для построения графика АЧХ в логарифмическом масштабе, достаточно применить функцию loglog, а для построения ФЧХ удобнее воспользоваться функцией semilogx.
В целом последовательность действий может быть такой:
» OM = logspace (-2, 2, 40)
» ch = polyval (P1, i*OM);
» zn = polyval (P2, i*OM);
» ACH = abs (ch)./abs (zn);
» loglog (OM, ACH);
» grid;
» title ('График АЧХ');
» xlabel ('Частота (рад/с)');
» ylabel ('Отношение амплитуд')
» FCH = angle (ch./zn)*180/pi;
» semilogx (OM, FCH);
» grid;
» title ('График ФЧХ');
» xlabel ('Частота (рад/с)');
» ylabel ('Фаза (градусы)')
В результате получаются графики, как на рисунках 4.1 и 4.2.

Рисунок 4.1 Рисунок 4.2
3 Практическая часть
1) Построить графики амплитудно - частотной и фазо - частотной характеристик системы, состоящей из четырех звеньев (W1, W2, W3, W4), соединенных последовательно.
2) Построить графики амплитудно - частотной и фазо - частотной характеристик системы, состоящей из четырех звеньев (W1, W2, W3, W4), соединенных параллельно.
3) Вывести графики в одном окне и нанести заголовок, пояснение к осям и текст в поле фигуры.
Передаточные функции звеньев имеют следующий вид
=
,
=
,
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


