11. Функция DEplotna пакета DEtools

 

Функция DEplot из пакета DEtools

Специально для решения и визуализации решений дифференциальных уравнений и систем с дифференциальными уравнениями служит инструментальный пакет DEtools. В него входит ряд функций для построения наиболее сложных и изысканных графиков решения дифференциальных уравнений. Основной из этих функций является функция DEplot. Функция DEplot может записываться в нескольких формах:

DEplot(deqns, vars. trange. eqns)

DEplot(deqns, vans, trange. inits. eqns)

DEplot(deqns. vars. trange, уrange, xrgnge, eqns) .

DEplot(deqns. vars, trange. Inits, xrange. yrange, eqns)

Здесь deqns — список или множество, содержащее систему дифференциальных уравнений первого порядка или одиночное уравнение любого порядка; vars — зависимая переменная или список либо множество зависимых переменных; trange — область изменения независимой переменной t; Inits — начальные условия для решения; yrange — область изменения для первой зависимой переменной, xrange — область изменения для второй зависимой переменной; eqns — опция, записываемая в виде keyword-value. Замена имен переменных другими в данном случае недопустима.

Эта функция обеспечивает численное решение дифференциальных уравнений или их систем при одной независимой переменной t и строит графики решения. Для автономных систем эти графики строятся в виде векторного поля направлений, а для неавтономных систем — только в виде кривых решения. По умолчанию реализуется метод Рунге—Кутта 4-го порядка, что соответствует опции methodiclassical[rk4]. С функцией DEplot могут использоваться следующие параметры:

  •  arrows = type — тип стрелки векторного поля ('SMALL', 'MEDIUM', 'LARGE', 'LINE'
  • или 'NONE');
  •  colour, color = arrowcolour — цвет стрелок (задается 7 способами);
  •  dirgrid = [integer,integer] — число линий сетки (по умолчанию [20, 20]);
  •  iterations = integer — количество итераций, представленное целым числом;
  •  linесоlor, linecolor = lineinfo — цвет линии (задается 5 способами);
  •  method='rk4' — задает метод решения ('euler', 'backeuler', 'impeuler' или 'rk4');
  •  obsrange = TRUE.FALSE — задает (при TRUE) прерывание вычислений, если кривая решения выходит из области обзора;
  •  scene = [name.name] — задает имена зависимых переменных, для которых строится график;
  •  stepsize = h — шаг решения, по умолчанию равный abs((b-a))/20 и представленный вещественным значением.

На рис. 13.8 показано решение системы диффкренциальных уравнений

x'(t)=x(t)(1-y(t)

y'(t)= 0,3y(t)(x(t)-1), 

описывающих модель Лотки—Вольтерра при заданных в документе изменениях t, x(t) и y(t). Решение представлено в виде векторного поля стрелки которого являются касательными к кривым решения (сами эти кривые не строятся). Обратите внимание на функциональную закраску стрелок векторного поля, делающую решение особенно наглядным (правда, лишь на экране цветного дисплея, а не на страницах книги).

Рис. 13.8. Решение системы дифференциальных уравнений Лотки—Вольтерра , с выводом в виде графика векторного поля

Еще интересней вариант графиков, представленный на рис. 13.9. Здесь помимо векторного поля несколько иного стиля построены фазовые портреты решения с использованием функциональной закраски их линий. Фазовые портреты построены для двух наборов начальных условий: 

x(0) = y(0) = 1,2 и x(0) = 1 и у(0)=0,7.

Следует отметить, что функция DEplot может обращаться к другим функциям пакета DEtools для обеспечения специальных графических возможностей, таких как построение векторного поля или фазового портрета решения.

Рис. 13.9. Пример построения двух фазовых портретов на фоне векторного поля

 

31.gif

Изображение: 

32.gif

Изображение: