Автор: Пользователь скрыл имя, 17 Марта 2011 в 11:57, реферат
Пожалуй, одно из наиболее впечатляющих свойств программы Maple - превосходная графика. Команды построения графиков и анимации Maple позволяют удовлетворить большинство научных и инженерных потребностей, могут служить прекрасной иллюстрацией в учебном процессе.
Графики и анимация
в Maple
Пожалуй, одно из наиболее
впечатляющих свойств программы Maple - превосходная
графика. Команды построения графиков
и анимации Maple позволяют удовлетворить
большинство научных и инженерных потребностей,
могут служить прекрасной иллюстрацией
в учебном процессе.
Программа имеет
большое количество функций и
опций настроек для построения как
двух- так и трехмерных графических объектов.
Помимо команд plot и plot3d основной библиотеки
имеется несколько специализированных
пакетов для этих целей:
это прежде всего
пакет plots , содержащий около пятидесяти
команд для построения различного рода
графиков и анимации ;
вспомогательный пакет
plottools , позволяющий создавать различные
(около тридцати) дву- и трехмерные графические
примитивы, которые могут быть применены
в других графиках;
пакет stats[statplot] содержащий
команды для построения специализированных
статистических графиков; пакет DEtools ,
содержащий команды построения графиков
решения дифференциальных уравнений как
обыкновенных так и в частных производных,
фазовых портретов, полей направлений;
и, наконец, геометрический
пакет geometry, содержащий команду draw,
позволяющую отобразить различные геометрические
построения на плоскости.
Версия 4 программы
Maple поддерживает 45 систем координат (в
предыдущей версии всего 4), появились
также команды changecoords и addcoords, позволяющие
пользователю переходить от одной системы
координат к другой, а также вводить свои
системы координат.
Многие функции
настройки осуществляются непосредственно
с инструментальной панели программы
(задание стиля, цвета, подсветки, перспективы,
вида координатных осей), но могут вводиться
непосредственно в команду. На следующих
примерах будет проиллюстрировано
сказанное.
Двумерные графики.
Графики, построенные при помощи
команды plot
График явно заданной
функции (рис. 11).
> plot(x*sin(x),x=-3*Pi..3*Pi);
рис. 11
График функции, заданной
в параметрической форме (рис. 12)
> plot([sin(2*t),cos(3*t),t=0..
рис. 12
Графики функций, заданных
в виде процедур или операторов (рис.
13)
> F:=proc(x) sin(exp(x))+sqrt(abs(x))
end;
> plot(F, -Pi..Pi);
рис. 13
для выражений, имеющих
бесконечные разрывы можно
> plot(ln(1+tan(x)),x=-2*Pi..2*
рис. 14
Несколько графиков
объединяются в набор или список
(рис. 15).
> plot([sin(x), convert(series(sin(x),x),
рис. 15
Бесконечно протяженный
график (рис. 16).
> plot(ln(1+sin(x)), x=0..infinity,-3..3);
рис. 16
График, построенный
по заданным точкам (рис. 17).
> l := [[ n, abs(sin(n/10))^cos(n/5)] $n=0..63]:
### WARNING: the definition of the type `symbol` has changed'; see help page for details
plot(l, x=0..63, style=point,symbol=cross);
рис. 17
Полярные координаты
с заданной толщиной линии (рис. 18).
> plot([sin(3*x),x,x=0..2*Pi],
рис. 18
Двумерные графики.
Графики, построенные при помощи
команд пакета plots
Команды пакета plots расширяют
количество типов двумерных графиков.
Так строится график
конформного отображения (рис. 19):
> with(plots):
conformal((z-1)^(1/2)*(z+1)^(
рис. 19
Контурный график, отображающий
линии пересечения поверхности
с плоскостями, задаваемыми опцией
contours ( рис. 20).
> contourplot(sin(x*y),x=-Pi..
рис. 20
На следующем рисунке
для той же функции представлен
график плотности линий уровня (более
темные участки соответствуют большей
плотности (рис. 21).
> densityplot(sin(x*y),x=-Pi..
рис. 21
График векторного
поля градиентов той же функции (рис.
22)
> plots[gradplot](sin(x*y),x=-
рис. 22
График двумерного
векторного поля (рич. 23):
> plots[fieldplot] ( [cos(x)*sin(y),cos(y)*sin(x)],
x=-Pi ..Pi, y=-Pi ..Pi, arrows=SLIM);
рис. 23
На следующем рисунке
представлен график неявно заданной
функции (рис. 24):
> plots[implicitplot]((x^2/25)+(
рис. 24
График области, удовлетворяющей
неравенствам, задаются цвета открытых
и закрытых границ, внешней и внутренней
областей, а также толщина линий
границ (рис. 25).
> plots[inequal]( {a+b>3, 2*b-a<6, 3*a+2*b>5, -b+a<=8, 3*a+2*b>0},
a=-10..30, b=-10..15, optionsfeasible=(color=red),
optionsopen=(color=blue,
optionsclosed=(color=green, thickness=3),
optionsexcluded=(color=yellow) );
рис. 25
В следующей командой
строится график списка точек, прочитанный
из первого столбца файла Data.txt (рис. 26).
> plots[listplot](readdata(`e:\\
Error, (in readline) file or directory
does not exist
рис. 26
Возможно построение
графиков в логарифмической и двойной
логарифмической шкалах (рис. 27).
> plots[loglogplot]({ x->exp(sin(x)),
x->exp(cos(x))},1..10);
рис. 27
В пакете имеется
команда odeplot для построения графика
решения дифференциального уравнения.
> restart;with(plots);f1:=diff(
> ### WARNING: `dsolve` has been extensively rewritten, many new result forms can occur and options are slightly different, see help page for details
F1:=dsolve({f1,y(0)=0,D(y)(0)=
> p:=odeplot(F1,[x,y(x)],-4..5):
К графику можно
добавить надписи при помощи команды
textplot
> t1 := textplot([2,3,`Local Maxima (2, 3)`],align=ABOVE):
t2 := textplot([3.9,-14,
`Local Minima(3.9,-14)`],align=BELOW)
Теперь при помощи
команды display отобразим все построенные
графические объекты на одном графике
(рис. 28).
> display({p,t1,t2});
рис. 28
Мультфильмы на плоскости
строятся при помощи команды animate
пакета plots (рис. 29).
> plots[animate]([sin(t*(2+u)),
u=0..10,colour=red);
рис. 29.
Пакет содержит также
команду coordplots, позволяющую строить
различные системы координат, что позволяет
на одном графике представить вид системы
координат и сам графический объект, построенный
в этой системе координат. На плоскости
имеются следующие виды систем координат:
биполярная ( bipolar ), кардиоидная ( cardiod ),
прямоугольная ( cartesian ), Кассини ( cassinian)
, эллиптическая ( elliptic ), гиперболическая
( hyperbolic ), инверсная Кассини ( invcassinian ),
инверсная эллиптическая ( invelliptic ), логарифмическая
(logarithmic) , Максквелла ( maxwell) , параболическая
( parabolic ), полярная ( polar ), роза ( rose) , и тангенциальная
( tangent ). Приведем примеры (рис. 30, рис. 31).
> a:=plot(sin(x)^2-cos(x)^2,x=0.
> b := plots[coordplot](polar,[0..1.
plots[display]([a,b]);
рис. 30
> r1 := plot(sin(cos(x)),x=-2*Pi..2*
r2 := plots[coordplot](bipolar):
plots[display]([r1,r2]);
рис. 31
Двумерные графики.
Графика пакета plottools
Как уже упоминалось
выше, команды этого пакета позволяют
строить различные графические
примитивы, которые в дальнейшем
могут быть использованы в других
графиках, а также производить
различные перемещения фигур. На
приведенном примере построены
окружность и многоугольник и
при помощи команды rotate получено
несколько расположенных по окружности
фигур (рис. 32).
> with(plottools):
c := circle([1,1], 0.5, color=red):
l := polygon([[0,0], [3,4], [3,1],[2,2],[0,5]], color=yellow, linestyle=3, thickness=2):
r1:=seq(rotate(c, Pi*i/3),i=1..6):
r2:=seq(rotate(l,Pi*2*i/3),i=
plots[display](r1,r2);
рис. 32
Двумерные графики.
Графика статистического пакета
Пакет stats[statplots] содержит
следующие команды, позволяющие строить
различные статистические графики на
плоскости:
boxplot histogram notchedbox
quantile quantile2 scatter1d
scatter2d symmetry .
Пусть, например, имеются
две серии статистических данных,
независимая Xdata и зависимая Ydata
with(stats):
### WARNING: the statplots sub-package has been completely rewritten; see the help pages for details
with(stats[statplots]):
Xdata := [4.535, 4.029, 5.407, 1.605, 5.757, 3.527, 7.890, 8.159, 6.092,
13.442, 2.845, 5.172, 3.277, 8.810, 3.657, 7.226, 3.851, 2.162,
2.668, 4.692]:
Ydata:= [7.454, 4.476, 2.873, 5.476, 9.975,-1.476, 1.033, 1.140, 4.813,
.450, -.788, 9.389, 4.811,-3.107, 4.407, 5.534, 1.691, -.789,
1.684, 1.605]:
Warning, new definition for transform
Построим статистический
график рассеяния с прямоугольными
диаграммами (рис. 33).
> with(stats[statplots]):stats[
рис. 33
На следующем графике
построены гистограмма по данным
Xdata и кривая нормального распределения
со средним и дисперсией полученным
из Xdata (рис. 34).
> mu:=sum(Xdata[i],i=1..nops(
sigma:=sqrt(sum((Xdata[i]-mu)^
> histogram(Xdata, colour=yellow):
plot(stats[statevalf,pdf,
plots[display]({%,%%});
рис. 34
Двумерные графики.
Графка пакета DEtools
Команда DEtools[DEplot] (deqns,
vars, trange, inits, xrange, yrange, eqns) - строит решение
обыкновенных дифференциальных уравнений
и систем, она аналогична команде odeplo t
пакета plots, но гораздо более функциональна.
Параметры аргумента
имеют следующее значение
deqns - список или набор обыкновенных дифференциальных уравнений любого порядка
vars - список зависимых переменных
trange - диапазон независимой переменной
inits - начальные условия, если они не указаны, то строится только поле направлений
yrange - диапазон первой зависимой переменной
xrange - диапазон второй зависимой переменной
eqns - равенства ключевое
слово=величина, задающие дополнительные
опции
По заданному набору
или списку начальных условий
и системы дифференциальных уравнений
первого порядка или одного дифференциального
уравнения более высокого порядка,
DEplot строит кривые решения численными
методами. Для двух элемента системы первого
порядка будет также строиться график
поля направлений, при условии, что система
автономна. Для неавтономных систем, поле
направлений не будет производится (в
этом случае возможны только кривые решения).
В любом случае должна быть только одна
независимая переменная.