В разд. 4 было показано, как фигуры Лиссажу можно построить в командном режиме с помощью одного из важных элементов программирования – цикла.
Входим в меню File-New-M-file, открывается окно текстового редактора (рекомендуется использовать встроенный редактор, поскольку он совмещен с отладчиком), в котором необходимо набрать следующую программу:
% Построение фигур Лиссажу
x=pi*[0:0.01:2]; % Диапазон значений x (вектор)
X=sin(x);
figure % Открываем графическое окно
for k=1:6 % Кратность частот до 6
Y=cos(k*x); % Гармоническая функция k-й кратности
plot(X,Y)) % Построение фигур Лиссажу
grid % Координатная сетка
pause % Пауза до нажатия клавиши [Enter]
End
title('Фигуры Лиссажу') % Название графика
xlabel('sin(x)') % Надпись по оси х
ylabel('cos(kx)') % Надпись по оси y
Pause
close % Закрываем графическое окно
Фигуры Лиссажу относятся к числу параметрических зависимостей Y(X), поскольку исключена переменная х.
Структура текста приведенной упрощена для большей наглядности, хотя в принципе MATLAB не накладывает жесткие требования, за исключением того, что операторы, записываемые в одну строку, должны отделяться запятыми (как в командном режиме). В тексте script-файла символы (,) в конце строки могут быть опущены [3]. В первой же строке символ (;) должен быть оставлен, чтобы подавить вывод значений x на экран. Сохраняем файл в пользовательской папке, присвоив ему имя lissajou.m(расширение *.m присваивается автоматически), и закрываем окно редактора.
Чтобы запустить программу, с помощью главного меню (File-Run Script…)вызываем диалоговое окно.
Теперь можно в соответствии с приглашением (Type the name of the script you want to run = Введите имя script-файла, который вы хотите запустить на исполнение) ввести полный путь к файлу или воспользоваться поисковой системой (Browse…).
Чтобы автоматизировать процедуру запуска программы в дальнейшем, набирая обычную команду системы MATLAB (» lissajou),необходимо воспользоваться кнопкой Path Browser на панели инструментов, которая вызывает диалоговое окно. С помощью этого окна находят нужную папку (Browse…), а затем вводят команду File-Save Path.В этом случае путь сохраняется до конца текущей сессии. Чтобы зафиксировать этот путь, необходимо ввести команду Path-Add to Path…(путь хранится в файле pathdef.m); для удаления пути из памяти используют команду Path-Remove from Path.
Семейство экспонент (файл exponent.m)
% Построение экспонент
x=0:0.025:6; % Диапазон значений x
figure % Открываем графическое окно
for k=0.5:0.5:4 % Параметр экспоненты задан с шагом 0.5
y=1-exp(-k*x); % Уравнение экспоненты
plot(x,y) % Построение графика экспоненты
pause(1) % Пауза 1 с
hold on % Фиксация графика на экране
End
Grid
xlabel('x') % Надпись по оси абсцисс
ylabel('y') % Надпись по оси ординат
gtext('k=0.5') % Надпись около первой кривой
gtext('k=4.0') % Надпись около последней кривой
gtext('Экспоненты: 1-exp(-kx)’) % Название графика
pause % Пауза (до нажатия клавиши [Enter])
close % Закрываем графическое окно
Программа построения семейства спиралей в многооконном формате (файл spiral.m):
% Многооконная графика
tet=0:0.01:20;
teta0=input('teta0 => ') % Начальное значение полярного угла
teta=tet+teta0;
m=input('m ==> '); % Ввод числа подокон по вертикали
n=input('n ==> '); % и по горизонтали
p=m*n; % Общее число окон
figure % Открываем графическое окно
k=1;
for b=0:0.1:1
subplot(m,n,k) % Открываем k-е подокно (k <= p)
r=exp(-b*tet); % Уравнение спирали
Polar(teta,r)
Grid
Pause(1)
k=k+1;
if k>p % Если k > p, начинается новый
k=1; % отсчет подокон
clf % Очистка окна
End
End
Pause
Close
Построим графики эпициклоиды и гипоциклоиды. Кривую, называемую эпициклоидой, описывает точка окружности радиусом a, которая катится без скольжения по направляющей окружности радиусом b. Ее уравнения в параметрической форме:
Вид кривых зависит от значения параметра : если m – целое число, кривая состоит из m равных дуг (при получается кардиоида, или улитка Паскаля); если , где p и q – целые числа, кривая состоит из p равных пересекающихся дуг; если m – число иррациональное, кривая состоит из бесконечного числа равных друг другу дуг (кривая не замкнута). Если множитель l отличен от единицы, то получаем, соответственно, либо укороченную ( ), либо удлиненную ( ) эпициклоиду.
Программа epi.mреализуетпостроение графика параметрической зависимости:
% Построение эпициклоиды
fi=0:0.01:8*pi;
lam=input(‘lam ==> ‘);
a=input('a ==> ');
b=input('b ==> ');
m=b/a
x=(a+b)*cos(fi)-lam*a*cos((a+b)*fi/a);
y=(a+b)*sin(fi)-lam*a*sin((a+b)*fi/a);
Plot(x,y)
Grid
Title('Эпициклоида')
Pause
Close
Если окружность радиусом a катится внутри окружности радиуса b, точка описывает кривую, называемую гипоциклоидой; ее уравнения:
В этом случае очевидно, что всегда : при получаем гипоциклоиду с тремя ветвями; при – астроида.
В зависимости от значения параметра l, как и в предыдущем случае, гипоциклоида будет укороченной или удлиненной.
Данную кривую можно построить с помощью программы (hipo.m):