Команда
DEtools[DEplot] (deqns, vars, trange, inits, xrange, yrange, eqns)
- строит решение обыкновенных дифференциальных
уравнений и систем, она аналогична команде odeplo
t пакета plots, но гораздо более функциональна.
Параметры аргумента имеют следующее
значение
deqns - список или набор обыкновенных
дифференциальных уравнений любого порядка
vars - список зависимых переменных
trange - диапазон независимой переменной
inits - начальные условия, если они не указаны, то
строится только поле направлений
yrange - диапазон первой зависимой переменной
xrange - диапазон второй зависимой переменной
eqns - равенства ключевое слово=величина, задающие
дополнительные опции
По заданному набору или списку
начальных условий и системы дифференциальных
уравнений первого порядка или одного
дифференциального уравнения более высокого
порядка, DEplot строит кривые решения
численными методами. Для двух элемента системы
первого порядка будет также строиться график
поля направлений, при условии, что система
автономна. Для неавтономных систем, поле
направлений не будет производится (в этом случае
возможны только кривые решения). В любом случае
должна быть только одна независимая переменная.
Метод интегрирования по умолчанию -
классический Рунге-Кутта . Другие методы
должны быть указаны явно в опциях команды.
Заметим, что поскольку для создания кривых
используются численные методы, вид графика может
зависеть от метода интегрирования, особенно
когда имеются асимптоты.
Представляемое поле направлений
состоит из сетки стрелок, касательных кривым
решения. Для каждой точки сетки, стрелка с
центром в (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*sqrt(abs(diff(y(x),x)))+x^2*y(x),
{y(x)},x=-4..5,[[y(0)=0,D(y)(0)=1,(D@@2)(y)(0)=1]],stepsize=.1,linecolour=red);
Warning, new definition for translate
рис. 35
Следующий пример системы из трех
уравнений первого порядка, строится фазовая
кривая для переменных z и y, w цвет кривой задан
функцией от независимой переменной, задан также
метод решения системы (рис. 36).
> DEplot({D(x)(t)=y(t)-z(t),D(y)(t)=z(t)-x(t),D(z)(t)=x(t)-y(t)*2},
{x(t),y(t),z(t)},t=-2..2,[[x(0)=1,y(0)=0,z(0)=2]],
stepsize=.05,scene=[z(t),x(t)],linecolour=sin(t*Pi/2),
method=classical[foreuler]);
рис. 36
Для следующей автономной системы из
двух уравнений строятся две кривые,
соответствующие двум начальным условиям, а также
поле направлений (рис. 37),
> DEplot({diff(x(t),t)=x(t)*(1-y(t)),diff(y(t),t)=.3*y(t)*(x(t)-1)},
[x(t),y(t)],t=-7..7,[[x(0)=1.2,y(0)=1.2],[x(0)=1,y(0)=.7]],
stepsize=.2,title=`Lotka-Volterra model`,
color=[.3*y(t)*(x(t)-1),x(t)*(1-y(t)),.1],
linecolor=t/2,arrows=MEDIUM,method=rkf45);
рис. 37
В пакете DEtools имеется также команда dfieldplot непосредственно
предназначенная для построения поля направлений
системы из двух уравнений первого порядка, а
также команда phaseportrait, непосредственно
предназначенная для построения решений и
фазовых портретов систем первого порядка и
дифференциальных уравнений более высокого
порядка. Впрочем, функции этих команд
охватываются командой DEplot .
|