Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.doc
Скачиваний:
202
Добавлен:
13.11.2018
Размер:
1.36 Mб
Скачать

5.2. Примеры простых программ

В разд. 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 – число иррациональное, кривая состоит из бесконечного числа равных друг другу дуг (кривая не замкнута). Если множитель  отличен от единицы, то получаем, соответственно, либо укороченную (), либо удлиненную () эпициклоиду.

Программа 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, точка описывает кривую, называемую гипоциклоидой; ее уравнения:

В этом случае очевидно, что всегда : при получаем гипоциклоиду с тремя ветвями; при астроида.

В зависимости от значения параметра , как и в предыдущем случае, гипоциклоида будет укороченной или удлиненной.

Данную кривую можно построить с помощью программы (hipo.m):

% Построение гипоциклоиды

fi=0:0.01:8*pi;

lam=input(‘lam ==> ‘);

a=input('a ==> ');

b=input('b ==> ');

m=b/a

x=(b-a)*cos(fi)+lam*a*cos((b-a)*fi/a);

y=(b-a)*sin(fi)-lam*a*sin((b-a)*fi/a);

plot(x,y)

grid

title('Гипоциклоида')

pause

clf

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]