Автор: Пользователь скрыл имя, 17 Марта 2011 в 11:57, реферат
Пожалуй, одно из наиболее впечатляющих свойств программы Maple - превосходная графика. Команды построения графиков и анимации Maple позволяют удовлетворить большинство научных и инженерных потребностей, могут служить прекрасной иллюстрацией в учебном процессе.
Метод интегрирования
по умолчанию - классический Рунге-Кутта
. Другие методы должны быть указаны явно
в опциях команды. Заметим, что поскольку
для создания кривых используются численные
методы, вид графика может зависеть от
метода интегрирования, особенно когда
имеются асимптоты.
Представляемое поле
направлений состоит из сетки
стрелок, касательных кривым решения.
Для каждой точки сетки, стрелка
с центром в (x,y) будет иметь наклон
dy/dx. Этот наклон вычисляется по формуле
(dy/dt)/(dx/dt), причем обе производные заданы
первым аргументом DEplot . Система автономна,
когда все члены и множители, кроме производных
не содержат в явном виде аргументов, содержащих
независимую переменную.
Для одного дифференциального
уравнения более высокого порядка
могут быть построены только кривые
решения.
По умолчанию, две
зависимые переменные будут построены,
если не указано иное в опции scene
.
Ключевые слова
опций могут быть следующими:
'arrows' = тип стрелки ( 'SMALL', 'MEDIUM', 'LARGE', 'LINE', or 'NONE' )
'colour' = цвет стрелки, который может быть задан различными способами
'dirgrid' = массив, устанавливающий число точек сетки, по умолчанию [20,20]
'iterations' = число итераций (натуральное число)
'linecolour' = цвет линии, задаваемый различными способами
'obsrange' = TRUE,FALSE , устанавливает, прерывать ли вычисление, если кривая выходит из обзора
'scene' = [имя, имя], определяет
какие зависимые переменные и в каком
порядке должны
быть выведены в график
'stepsize' = определяет расстояние
между точками, которое используется при
вычислении
точек графика, для
trange=a..b, по умолчанию h = abs((b-a))/20.
Приведем примеры.
Следующий график (рис.35) в точности
повторяет график, построенный при
помощи команды odeplot пакета plots (смотрите
выше)
> with(DEtools):
DEplot(diff(y(x),x,x,x)+x*
{y(x)},x=-4..5,[[y(0)=0,D(y)(
Warning, new definition for translate
рис. 35
Следующий пример системы
из трех уравнений первого порядка,
строится фазовая кривая для переменных
z и y, w цвет кривой задан функцией от независимой
переменной, задан также метод решения
системы (рис. 36).
> DEplot({D(x)(t)=y(t)-z(t),D(y)
{x(t),y(t),z(t)},t=-2..2,[[x(
stepsize=.05,scene=[z(t),x(t)]
method=classical[foreuler]);
рис. 36
Для следующей автономной
системы из двух уравнений строятся
две кривые, соответствующие двум
начальным условиям, а также поле
направлений (рис. 37),
> DEplot({diff(x(t),t)=x(t)*(1-
[x(t),y(t)],t=-7..7,[[x(0)=1.
stepsize=.2,title=`Lotka-
color=[.3*y(t)*(x(t)-1),x(t)*(
linecolor=t/2,arrows=MEDIUM,
рис. 37
В пакете DEtools имеется также команда dfieldplot непосредственно предназначенная для построения поля направлений системы из двух уравнений первого порядка, а также команда phaseportrait, непосредственно предназначенная для построения решений и фазовых портретов систем первого порядка и дифференциальных уравнений более высокого порядка. Впрочем, функции этих команд охватываются командой DEplot .
Двумерные графики.
Графика геометрического пакета
В геометрическом пакете
построение графических объектов осуществляется
при помощи команды
draw( объект1, объект2,
...), где объект - геометрический объект.
Приведем примеры
> with(geometry):
Определяем треугольник
Т
Warning, new definition for circle
Warning, new definition for ellipse
Warning, new definition for homothety
Warning, new definition for hyperbola
Warning, new definition for line
Warning, new definition for point
> triangle(T,[point(A2,0,0),
Находим, описанную
вокруг треугольника Т окружность
> circumcircle(C,T,'centername'=
находим высоты T (altitudes)
> altitude(A2A22,A2,T,A22):
altitude(A3A33,A3,T,A33):
altitude(A1A11,A1,T,A11):
Находим центр вписанной
окружности (orthocenter) и центр тяжести (centroid)
треугольника T
> orthocenter(H,T): centroid(G,T):
Находим медианы T
> median(A1M1,A1,T,M1):
median(A2M2,A2,T,M2):
median(A3M3,A3,T,M3):
> dsegment(dsg1,OO,H): dsegment(dsg2,H,G):
dsegment(OM1,OO,M1): dsegment(OM2,OO,M2):
dsegment(OM3,OO,M3):
triangle(T1,[M1,M2,M3]):
Проверяем, лежат
ли на одной прямой H, OO, G.
> AreCollinear(OO,H,G);
Выводим на дисплей
построенные геометрические объекты
(рис. 38)
> draw([C(color='COLOR'(RGB,1.0,
dsg1(style=LINE,color=green,
OM1,OM2,OM3],axes=NONE);
рис. 38
Трехмерные графики
и трехмерная анимация
Для построения поверхностей
в трехмерном пространстве используется
команда рlot3d а также команды пакетов
plots, plottools, DEtools .
Необязательные дополнительные
опции позволяют изменять вид
трехмерных графиков. Опция grid позволяет
определять размер прямоугольной сетки
для меток ( значение по умолчанию - 25 x
25. ) При помощи опции style можно определять
стиль представления поверхности (например
РАTCH, WIREFRAME, РOINT) . Опциями color и shаding задаются
различные схемы окраски. Опции ambientlight
и light позволяют применить освещение рассеянным
или направленным светом соответственно.
Опция orientation позволит определить точку
наблюдаения поверхности. График можно
снабдить заголовком, метками и задать
количество делений на осях при помощи
опций title, labels, tuckmarks соответственно.
Графики команды plot3d
Построение трехмерных
графиков с помощью команд пакета
plots
Графика пакета DEtools
Графика пакета plottools
Трехмерная анимация
Трехмерные графики
и трехмерная анимация. Графики команды
plot3d
Далее приведены
примеры наиболее часто используемых
типов трехмерных графиков.
График явно заданной
функции (рис. 39).
> plot3d(sin( x * y), x=-1.5 ..1.5,
y=-1.5 ..1.5, style=PATCH, light=[45,45,1,1,1.4],title=`
Рис. 39
Можно задавать различные
координатные системы (сферическая, тороидальная
и так далее, всего тридцать) (рис. 40);
> plot3d([x^(1/4)+y^(-1/4),x,y],
Рис. 40
в некоторых случаях
- устанавливать переменные границы
диапазона (рис. 41);
> plot3d(sin(y*sin(x)),x=-Pi..
Рис. 41
задать функцию (или
процедуру) цвета (рис. 42).
> plot3d(x*exp(-x^2-y^2),x=-2..
Рис. 42
График поверхности,
заданной тремя функциями-операторами
параметров u и v (рис. 43)
> Kx:= (u,v) -> 2*(cos(u) + u*sin(u))*sin(v)/(1
+ (u*sin(v))^2):
> Ky:= (u,v) -> 2*(sin(u) - u*cos(u))*sin(v)/(1
+ (u*sin(v))^2):
> Kz:= (u,v) -> log(tan(v/2))
+ 2*cos(v)/(1 + (u*sin(v))^2):
> plot3d([Kx,Ky,Kz], -4..4, .01..Pi-.01,grid=[35,35]);
Рис. 43
Другой способ построения
поверхности, заданной тремя функциями
параметров u и t (рис. 44).
> plot3d([cos(t)*(1+.2*sin(u)),
Рис. 44
Несколько поверхностей
на одном графике (рис. 45)
> plot3d ( { x*sin(y^2), 1-y*cos(x^2)
}, x=-1 ..1, y=-1 ..1 );
Рис. 45
Трехмерные графики
и трехмерная анимация. Построение
трехмерных графиков с помощью команд
пакета plots
Пакет Plots содержит функцию coordplots предназначенную для построения координатных плоскостей различных систем координат в пространстве. Полное количество систем координат - тридцать, среди них имеются как часто используемые - прямоугольная, сферическая, цилиндрическая, тороидальная,- так и экзотические, - шестисферная (sixspherical), конфокальная параболическая ( сonfocalparab)
и другие. Перечислим английские наименования всех систем координат:
bipolarcylindrical, bispherical, cardiodal,
cardiodcylindrical, casscylindrical, confocalellip, confocalparab, conical,
cylindrical, ellcylindrical, ellipsoidal, hypercylindrical, invcasscylindrical,
invellcylindrical, invoblspheroidal, invprospheroidal, logcoshcylindrical,
logcylindrical, maxwellcylindrical, oblatespheroidal, paraboloidal,
paraboloidal2, paracylindrical, prolatespheroidal, rosecylindrical,
sixsphere, spherical, tangentcylindrical, tangentsphere, and toroidal.
Приведем примеры (рис. 46-48):
> with(plots):
Digits := 10:
coordplot3d(spherical);
Рис. 46
> infolevel[coordplot3d]:=2:
coordplot3d(rosecylindrical);
Рис. 47
> coordplot3d(sixsphere);
Рис. 48
Команда cylinderplot пакета
позволяет строить графики в цилиндрических
координатах (рис. 49)
> f := (5*cos(y)^2 -1)/3;
plots[cylinderplot](f, x=0..2*Pi,y=-Pi..Pi);
Рис. 49
Команда complexplot3d позволяет
строить графики комплексных
функций в трехмерном пространстве,
причем возможны два варианта записи,
в виде
> complexplot3d( f(z) , z = z1 ..
z2 );
где f - функция комплексного аргумента z, в этом случае координата z поверхности определяется абсолютной величиной функции, в то время как цвет поверхности определяется аргументом.
В записи
> complexplot3d( [f1(x,y), f2(x,y)],
x = x1..x2, y = y1..y2);
координата z определяется функцией f1, а цвет функцией f2.
Приведем примеры
(рис. 50, рис. 51).
> complexplot3d( sec(z) , z = -3
- 3*I .. 3 + 3*I );
Рис. 50
график выражения
из R2 в R2:
> with(plots):complexplot3d( [x^2
- y^2, 2*x*y], x = -2..2, y= -2..2);
Рис. 51
При помощи команды
fieldplot3d пакета возможно построение трехмерных
векторных полей (рис. 52).
> fieldplot3d([2*z*y,2*x*z,2*x*
Команда gradplot3d предназначена
для построения поля градиентов функции
(рис. 53).
> gradplot3d( (x^2+y^2+z^2+1)^(1/2),x=-2..2,
При помощи команды
implicitplot3d строятся поверхности, заданные
неявно (рис. 54).
> implicitplot3d( x^3 + y^3 + z^3 + 1 = (x + y + z + 1)^3,x=-2..2,y=-2..2,
z=-2..2,grid=[13,13,13]);
Команда listplot3d предназначена
для построения поверхности по точкам,
заданным списком списков (матрицей)
(рис. 55)..
> listplot3d([seq([seq(sin((i-
Рис. 55