Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочный материал по программе Maple.doc
Скачиваний:
32
Добавлен:
20.05.2014
Размер:
753.15 Кб
Скачать

Графика в maple

Графика на плоскости.

1) График функции y = f(x) на отрезке [a,b]

>plot(f(x), x=a..b); или >plot(f(x), x=a..b, options);

В качестве опций (справка по команде >?plot[options]) могут быть

А) ЦВЕТ ЛИНИИ color=black, red, blue, green,… см. также >?plot[color]

Б) ТОЛЩИНА ЛИНИИ thickness=0, 1, 2, 3 (больше номер – больше толщина)

В) НАДПИСЬ НА ГРАФИКЕ title=`Parabole` (надпись в обратных кавычках)

Г) КОЛИЧЕСТВО МАРКИРОВАННЫХ ТОЧЕК на оси Х xtickmarks=5

на оси Yytickmarks=7

Д) КОЛИЧЕСТВО РАСЧЕТНЫХ ТОЧЕК ГРАФИКА numpoints=80 (по умолчанию=49).

Е) ОБРЕЗАНИЕ ГРАФИКА (при бесконечных разрывах)

по Y : y=y1..y2 или view= y1..y2 ; по осям X, Y : view=[x1..x2 , y1..y2] .

Ж) В точках разрыва возникают вертикальные прямые, которые можно удалить при помощи опции discont=true.

Примечание. Если в окне графика щелкнуть какую-нибудь точку, то вверху слева в окошечке появятся коорди­наты этой точки. В последних версиях щелкаем в области графика иводим по графику курсором. В окошечке автоматически высвечиваются координаты курсора. Признак попадания на кривую – кривая становится жирной.

2) График функции y = f(x) на отрезке [–10, 10]

>plot(f(x), х);

3) График функции y = f(x) на всей числовой оси (–, +)

>plot(f(x),x= –infinity..infinity);

>plot(exp(x),x= –infinity..infinity);

Числовые оси Х и Yумещаются на отрезках [–1, 1] за счет изменения масштаба (он уменьшается по мере удаления от начала координат). Поэтому на кривой могут возникать точки перегиба, ко­торых нет в реальности.

4) Параметрически заданная кривая >plot([x(t),y(t),t=a..b],options);

Пример. Фигура Лиссажу >plot([cos(5*t),sin(3*t),t=0..2*Pi]);

5) Кривая в полярных координатах >plot([(t),(t), t=a..b], coords=polar);

Примеры. Спираль Архимеда >plot([t/Pi, t, t=0..2*Pi], coords=polar);

Кардиоида >plot([1+cos(t), t, t=0..2*Pi],coords=polar);

6) Несколько однотипных кривых на одном графике (используют либо {…} либо […] )

>plot({x^2, 1–x,sqrt(x)},x= –2..2); три явно заданных кривых.

Цвет каждой из них можно задавать отдельно опцией color=[black,red,green]

>plot({[cos(t),sin(t),t=0..Pi], [t^2,t,t= –1..1]}); две параметрически заданных кривых.

>plot({[t/Pi,t,t=0..7], [1+cos(t),t,t=0..2*Pi]},coords=polar); две кривых в полярных коорд.

>plot({[sin(t),t,t=0..Pi/2],[–sin(t),t,t=Pi..3*Pi/2],[1,t,t=0..2*Pi]},coords=polar); «ИньЯн»

Можно совмещать также параметрическую и явно заданную кривые. Переменную следует обо­значать одной и той же буквой!

>plot({t^2, [cos(t),sin(t),t=0..2*Pi],1–t},t= –1..1);

7) Семейство кривых y=f(x,n),nN>plot({seq(f(x,n),n=2..7)},x=a,,b);

Пример. >plot({seq(x^n, n=2..7)}, x=0..1, color=black);

Можно рисовать кривые с избранными номерами, задавая n=[3, 5, 11].

8) Неявно заданная кривая >with(plots):

Кривая f(x,y)=0 >implicitplot(f(x,y), x = a..b, y = m..n);

Кривая f(x,y)=g(x,y) >implicitplot(f(x,y)=g(x,y), x = a..b, y = m..n);

Несколько кривых f(x,y)=0, g(x,y)=0 >implicitplot({f(x,y), g(x,y)}, x = a..b, y = m..n);

>implicitplot(x^2–2*x*y+y^2–x–y, x= –1..1, y= –1..1);

Сетка для вычисления точек задается опцией grid=[m,n]. По умолчаниюm=n=25.

9) Функция DISPLAY(совмещение разнотипных объектов на одном чертеже) >with(plots):

>F:=plot([t/Pi, t, t=0..2*Pi], coords=polar): спираль Архимеда в полярных координатах.

>G:=plot(x^2,x=-3..3,color=red): явно заданная парабола.

>H:=implicitplot(x^2+2*x*y+3*y^2-6, x= –3..3,y= –3..3): неявно заданный эллипс.

>display({F,G,H},view=[–3..3, –2..2]);

10) Анимация >with(plots): или >with(plots,animate):

Показывается деформация во времени кривой y = f(x, p) , x[a, b], если параметрр изменяется отc до d, принимаяN промежуточных значений. Аналогично для других типов кривых.

>animate(f(x,p),x=a..b,p=c..d,frames=N);

После выполнения этой команды щелкнуть по графику. Появится панель управления анимацией.

>animate(x^p–x^(2*p),x=0..1,p=1..20,frames=100);

Несколько деформирующихся кривых

>animate({x^(1/p),x^p},x=0..1,p=1..20,frames=50);

Параметрически заданная кривая (фигуры Лиссажу)

>animate([cos(p*t), sin(3*t), t=0..2*Pi], p=1..2, frames=60);

Кривая в полярных координатах, кривая =sin(p)

>animate([sin(p*t), t, t= –4..4], p=1..4,coords=polar,numpoints=100,frames=100);

11) Векторное поле , >with(plots): или >with(plots,fieldplot):

>fieldplot([P(x,y), Q(x,y)], x=a..b, y=c..d);

>fieldplot([sin(x+y), sin(x–y)], x=0..2*Pi, y=0..2*Pi);

12) Конформное отображение >with(plots): или >with(plots,conformal):

>conformal(f(z),z=z1..z2);

Рисуется образ прямоугольника с диагональю [z1..z2] при отображенииw=f(z).Если точкиz1..z2 лежат на одной вертикали (горизонтали), то рисуется образ отрезка.

Число вертикальных (m) и горизонтальных (n) линий, задающих сетку в исходном прямоугольнике, определяется опциейgrid=[m,n]. По умолчаниюm=n= 11.

Количество точек, вычисляемое на горизонтальных (m) и вертикальных (n) отрезках, определя­ется опциейnumxy=[m,n]. По умолчаниюm=n= 15.

>conformal(f(z),z=z1..z2,w1..w2);

Рисуется образ прямоугольника с диагональю [z1..z2] , обрезанный на плоскостиWпрямоугольником с диагональю [w1..w2].

13) Комплексная функция действительного переменного (кривая на плоскости Z).

>with(plots):

>complexplot((1+I*t)/(–t^2+2*I*t+2), t=0..4);

>complexplot({1/(t+I), 1/(t–I)}, t= –5..5); две кривые.

14) Графическое решение системы линейных неравенств. with(plots):

>inequal({линейные неравенства} , x=a..b, y=c..d, options);

В качестве опций могут быть

optionsfeasible=(color=red) – цвет области, удовлетворяющей всем неравенствам,

optionsexcluded=(color=yellow) – цвет области, не удовлетворяющей системе.

optionsopen=(color=blue,thickness=2) – граница открытой области, её цвет и толщина

optionsclosed=(color=green,thickness=3) – граница замкнутой области, её цвет и толщина.

Если опции отсутствуют, то решение окрашено в голубое, остальное – в черное. Если имеется только одна опция color=white, то добавляются белыелинии, пунктирные на открытой границе и сплошные на замкнутой.

15) Ломаная линия по точкам (график последовательности). with(plots):

>listplot([a1,a2,a3,…,an], options); для абсцисс = 1, 2, 3, … n заданы ординаты.

Эти ординаты можно задавать формулой >a[n]:=f(n); тогда команда примет вид

>listplot([a[n]$n=1..7]);

>listplot([[a1,b1],[a2,b2],…,[an,bn]],options); заданы координаты узлов.

Координаты узлов можно задавать формулами

>listplot([seq([f(n),g(n)], n=3..7)]); или >listplot([seq([f(n), g(n)], n=[a,b,c,d])]);

Графика в пространстве.

1) Поверхность z = f(x,y) над прямоугольником [a,b]x[c,d].

>plot3d(f(x,y), x=a..b, y=c..d, options);

>plot3d(1–x^2*y^2,x= –1..1,y= –1..1);

Поверхность z = f(x,y) над правильной областью{a ≤ x ≤ b , y1(x) ≤ y ≤ y2(x)}

>plot3d(f(x,y), x=a..b, y=y1(x)..y2(x), options);

ОПЦИИ: grid=[m,n] – число разбиений по осям Х иY(сетка в прямоугольнике [a,b]x[c,d]). По умолчаниюm=n=25. Для неявно заданной поверхности эта опция имеет видgrid=[m,n,s] .

numpoints=n– число вычисляемых точек (по умолчаниюn=625).

gridstyle=triangularразбиение поверхности на треугольнички

title=`hyperboloid` – название поверхности (надпись на графике).

label=[x,y,z] – наименование осей координат.

view=[x1..x2,y1..y2,z1..z2] – обрезание поверхности по осям координат.

view=z1..z2 – обрезание только по осиZ.

orientation=[,] – ориентация поверхности, углы в градусах (см. рис).

Справки: >?plot3d, >?plot3d[options]

ОПЦИИ ГРАФИКА (вид поверхности)

style=pointповерхность из цветных крестиков

style=hiddenцветная решетка (непрозрачная)

style=patchрешетка с цветной заливкой

style=lineпрозрачная решетка

style=patcnogridтолько заливка, без решетки

style=contourповерхность из линий уровня

style=patchcontourзаливка + линии уровня

Поворот поверхности.Производится левой мышью.

2) Несколько поверхностей на одном графике.

>plot3d({f1(x,y), f2(x,y), f3(x,y)}, x=a..b, y=c..d);

>plot3d({x^2, 1–y^2}, x= –1..1, y= –1..1);

3) Семейство поверхностей z = F(x,y,n), nN.

>plot3d({F(x,y,n)$n=2..5}, x=a..b, y=c..d);

>plot3d({y^2/n$n=1..3}, x= –1..1, y= –1..1);

4) Неявно заданная поверхность. >with(plots):

>implicitplot3d(F(x,y,z),x=a..b,y=m..n,z=p..q); поверхностьF(x,y,z)=0.

>implicitplot3d(F(x,y,z)=G(x,y,z),x=a..b,y=m..n,z=p..q); поверхностьF(x,y,z)=G(x,y,z).

>implicitplot3d(x^2–y^2–z^2=1, x= –3..3, y= –3..3,z= –3..3);

5) Несколько неявно заданных поверхностей F(x,y,z)=0,G(x,y,z)=0.>with(plots):

>implicitplot3d({F(x,y,z),G(x,y,z)}, x=a..b, y=m..n, z=p..q);

>implicitplot3d({y^2+z^2=1,x^2–y^2–z^2=1}, x= –3..3, y= –3..3, z= –3..3);

6) Параметрически заданная поверхность

>plot3d([x(u,v),y(u,v),z(u,v)],u=a..b,v=c..d);

Примеры.

а) Поверхность вращения(криваяz = f(y), y[a..b], вращается вокруг осиZ).

>plot3d([u*cos(v), u*sin(v), f(u)], u=a..b, v=0..2*Pi);

> plot3d([u*cos(v),u*sin(v), 1/u],u=0.2..1,v=0..2*Pi);

б) Вертикальная цилиндрическая поверхность.

>plot3d([x(u), y(u), v], u=a..b, v=0..H);

>plot3d([u, cos(u), v], u= –Pi..Pi, v=0..1);

в) Сфера.

>plot3d([R*cos(u)*cos(v), R*sin(u)*cos(v), R*sin(v)], u=0..2*Pi, v= –Pi/2..Pi/2);

v– широта, от южного полюса до северного (от –/2 до/2),

u– долгота от оси Х к осиY.

г) ГеликоидрадиусаRс шагомh(винтовая лестница).

>plot3d([u*cos(v), u*sin(v), h*v/2/Pi], u=0..R, v=0..2*Pi);

д) Тор;a– средний радиус тора,b– радиус «колбасы».

>plot3d([(a+b*cos(v))*cos(u), (a+b*cos(v))*sin(u), b*sin(v)], u=0..2*Pi, v=0..2*Pi);

е) Лента Мёбиуса;R– радиус средней линии, 2а – ширина ленты.

>plot3d([(R+v*cos(u/2))*cos(u), (R+v*cos(u/2))*sin(u),v*sin(u/2)],u=0..2*Pi,v= –a..a);

7) Несколько параметрически заданных поверхностей.

Пересечение 2-х параболических цилиндров.

>plot3d({[u*cos(v),u*sin(v),u^2*cos(v)^2],[u*cos(v),u*sin(v),a^2-u^2*sin(v)^2]},u=0..a,v=0..2*Pi);

Пересечение двух круговых цилиндров

>plot3d({[u,cos(v),sin(v)], [cos(v),u,sin(v)]},u= –1..1,v=0..2*Pi); или

>plot3d({[sin(v),u*sin(v),cos(v)], [u*cos(v),cos(v),sin(v)]},u= –1..1,v=0..2*Pi);

8) Кривые в пространстве >with(plots):

>spacecurve([x(t), y(t), z(t)], t=a..b); одна кривая

>spacecurve({[x1(t), y1(t), z1(t)], [x2(t), y2(t), z2(t)]}, t=a..b); две кривых

>spacecurve([R*cos(t), R*sin(t), k*t], t=0..2*Pi); – винтовая линия.

>spacecurve([a*(1+cos(2*t)), a*sin(2*t), 2*a*sin(t)], t=0..2*Pi); кривая Вивиани – пересечение

цилиндра x2+y2=2ax и сферыx2+y2+z2=4a2 .

>spacecurve([a*cos(t), a*sin(t),a^2*cos(t)^2], t=0..2*Pi); – линия пересечения двух параболичес-

ких цилиндров.

9) Функция DISPLAY(совмещение на одном чертеже разных объектов) >with(plots):

а) Сечения куба двумя параллельными плоскостями и диагональ этого куба

>A:=plot3d(1–x–y, x=0..1, y=0..1–x):

>B:= plot3d(2–x–y, x=0..1, y=1–x..1):

>C:=spacecurve([t,t,t], t=0..1, thickness=3):

>display({A,B,C});

б) Два пересекающихся параболических цилиндра и пространственная линия их пересечения:

>F:=plot3d({x^2, 1–y^2}, x= –1..1, y= –1..1):

>G:=spacecurve([cos(t), sin(t), cos(t)^2], t=0..2*Pi, thickness=3):

>display({F,G});

в) Сфера, пересекающий её цилиндр и кривая Вивиани:

>A:=plot3d([2*cos(u)*cos(v), 2*sin(u)*cos(v), 2*sin(v)], u=0..2*Pi, v= –Pi/2..Pi/2):

>B:=plot3d([1+cos(u), sin(u), 2*v*sin(u/2)], u=0..2*Pi, v= –1..1):

>C:=spacecurve([1+cos(2*t),sin(2*t),2*sin(t)],t=0..2*Pi,thickness=3):

>display({A,B,C});

10) Линии уровня функции z=f(x,y). >with(plots):

>contourplot(f(x,y), x=a..b, y=c..d); одна поверхность z = f(x,y)

>contourplot({f(x,y),g(x,y)}, x=a..b, y=c..d); несколько поверхностей.

По умолчанию изображаются 8 линий уровня. Их число можно изменить, добавив в команду опцию contours=n. Можно также задать линии уровня значениями функцииcontours=[z1,z2..zn].

>contourplot({x*y, x^2–y^2}, x= –1..1, y= –1..1);

>contourplot([u*cos(v),u,u*sin(v)],u= –1..1,v=0..2*Pi); параметрическое задание поверхности.

11) Поверхность с п линиями уровня на ней

>plot3d(f(x,y), x=a..b, y=c..d, contours=n,style=patchcontour); вариант – contours=[z1,z2,…,zn]

12) Вид на поверхность сверху. Более высокие участки – более светлые. >with(plots):

>densityplot(f(x,y), x=a..b, y=c..d);

13) Поверхность r = f(p,z) в цилиндрических координатах (r, p, z). >with(plots):

>cylinderplot(f(p,z), p= z=a..b);

>cylinderplot(p*sin(z), p=02*Pi z=0..Pi/2);

Параметрическое задание поверхности в цилиндрических координатах

>cylinderplot([r(u,v),p(u,v),z(u,v)],u=a..b,v=c..d);

14) Поверхность в сферических координатах (r,t,p), гдеt– долгота, отсчитываемая от оси Х к осиY,p– широта, отсчитываемая от северного полюса к южному.>with(plots):

>sphereplot(F(t,p), t=a..b, p=c..d); поверхность r = F(t,p).

>sphereplot(1.2^t*sin(p), t= –3..6, p=0..Pi); «раковина улитки»

Параметрическое задание поверхности в сферических координатах

>sphereplot([r(u,v),t(u,v),p(u,v)],u=a..b,v=c..d);

15) Анимация в пространстве. >with(plots):

>animate3d(f(x,y,p),x=a..b,y=c..d,p=A..B); динамика изменения поверхностиz=f(x,y,p) с из­менением параметрар от А до В.

>animate3d((x^2–y^2)*sin(p), x= –1..1, y= –1..1, p=0..2*Pi);