Создание 2D- (x – y) графиков
Простейший график – это 2D-, или x – y график. Синтаксис команд Maple-овской графики зависит от того, что именно рисуется – функция или выражение.
Вот график рационального выражения от х = –5 до х = 0.
Присваиваем это выражение переменной g и затем рисуем ее. Учтите, что g – это выражение, а не функция, поэтому, чтобы ее нарисовать, нельзя использовать обозначение g(x).
- restart;
- g:=(x+1)/(x-1);
- plot(g,x=-5..0);
Тот же самый график получится с помощью Maple-овских функций (в ней намеренно оставлены два аргумента, чтобы увидеть, как он строится):
- f:=(x,y)->(x+y)/(x-y);
Чтобы сделать график с осью х, задавайте значения y в списке аргументов (y=1 воспроизводит предыдущий график):
- plot(f(x,1),x=-5..0);
OK, рисуем график в большем диапазоне. Заметьте, что можно просто ввести выражение внутрь команды plot, без присвоения его переменной:
- plot((x+1)/(x-1),x=-5..5);
Это не единственный график. Проблема в том, что функция сингулярна при х=1, поэтому Maple пытается показать большой диапазон по оси y. Ограничим его.
- plot((x+1)/(x-1),x=-5..5,-5..5);
Теперь это выглядит лучше, но странно или даже неправильно смотрится вертикальная линия при х=1. При рисовании Maple включает в график скачок от –∞ до +∞, соединяя соседние точки. Эта линия мешает восприятию, и ее можно вычистить специальной опцией, которую найдем по запросу:
- ?plot[options]
Нужно написать discont=true, указав, чтобы Maple искал разрыв (discontinuity) на графике и отключал рисование от точки к точке.
- plot((x+1)/(x-1),x=-5..5,-5..5,discont=true);
Поищем что-то более экзотическое. Построим две кривых на одном графике, выделив их разными цветами. Запрос справки для цвета:
- ?plot[color]
Можно взять стандартные цвета, можно выбрать какие-то другие. Например, для публикаций лучше, чтобы линии были потолще:
- plot([(x+1)/(x-1),cos(x)],x=-5..5,-5..5,discont=true,
color=[navy,tan],thickness=2);
В этой команде plot функций помещается в квадратные скобки [ ], а внутри них функции перечисляются через запятую. Применяемые к отдельным кривым опции тоже помещаются в квадратные скобки [ ], а внутри них перечисляются через запятую (см. опцию color).
Предупреждение: Maple не всегда следует вашему порядку цветов.
Пример.
Нарисуем график движения гармонического осциллятора с затуханием, которое описывается выражением для диапазона от t = 0 до t = 600.
Пишем:
- plot(exp(-t/100)*cos(t),t=0..600);
Возникает впечатление: что-то не так. Причина: не сказано, сколько точек на графике (Maple не обязан об этом догадываться). Поэтому, если в результате исполнения команды функция на графике дергается как сумасшедшая, нужны исправления.
Примените опцию numpoints, чтобы увеличить разрешение графика:
- plot(exp(-t/100)*cos(t),t=0..600,numpoints=400);
Еще важный пример:
Знак присваивания (:=) часто применяется при задании собственного выражения для графика:
- F:=cos(omega*t)^3;
Поскольку оно явно зависит от t, можно построить график:
- plot(F,t=0..20);
Но это не срабатывает.
Maple сообщает об ошибке, выдавая пустой график. Причина в том, что его нельзя построить, пока не имеет значений. Исправим ситуацию, задавая значения t и вычисляя соответствующие F.
- t:=7.;F;
Но и здесь не имеет значения, хотя присутствует. Тогда присвоим ему значение:
- omega:=1.;plot(F,t=0..20);
Опять не срабатывает. Ну а в чем же дело теперь?
Проблема тоньше и при таком способе построения графика повторится неоднократно.
Дело в том, что ранее t было присвоено числовое значение = 7. Maple помнит это и не позволяет применять на графике t в качестве текущей переменной. Чтобы исправить ситуацию, нужно отменить присваивание командой unassign с аргументом 't', а затем запустить снова:
- unassign('t');omega:=1;plot(F,t=0..20);
или применить сокращенную версию команды unassign:
- t:='t';omega:=1;plot(F,t=0..20);
Читается это так: «присвоить t ей самой (вернуть t собственное имя), стерев любые предыдущие присваивания».
Более «чистый» способ – никогда не делать присваивания с помощью знака :=, а применять команду замены subs, как ниже:
- restart;
- F:=cos(omega*t)^3;
- plot(F,t=0..20);
- subs(t=7.,F);
- plot(subs(omega=1,F),t=0..20);
Команды t=7 и omega=1 применяются только внутри команды subs. После этого переменные t и omega остаются неприсвоенными:
- t;omega;
Чтобы строить приличные графики, нужно знать, как строятся надписи на них:
- для подписей к осям применяется опция labels=["x","y"];
- для маленького заголовка – опция title="Thisisthetitle".
Справку по вводу текста в график см.: textplot в Maple help.
Вот несколько примеров.
- plot(sin(x^2),x=0..2*Pi,labels=["x","y(x)"],
title="sin(x^2) function");
Небольшие примечания
Заметьте, что sin(x^2) в Maple не отображается так, как принято в математике.
Для доступа к греческому алфавиту (он доступен не весь) надо заменить шрифт: labelfont или titlefont на SYMBOL, как ниже:
- plot(exp(x/6),x=0..2*Pi,
labels=["abcdefghijklmnopqrstuvwxyz","y(x)"],
title="ABCDEFGHIJKLMNOPQRSTUVWXYZ",
labelfont=[SYMBOL],titlefont=[SYMBOL]);
К сожалению, неизвестен способ комбинирования латинского и греческого алфавитов в знаках и текстах, что возможно в LaTex или MatLab.