функции:
> coefs := [21*(х^2-х+1), 0, 100*х^2*(х-1)^2]:
> regularsp(coefs, х);
Еще две функции пакета DEtools
translate(des,ivar,pt,dvar)
untranslate(des,ivar,pt,dvar)
выполняют особую операцию трансляции дифференциального уравнения (или списка дифференциальных уравнений) из центрированного относительно 0 в центрированное относительно 1 и наоборот. С деталями этого специфического процесса заинтересованный читатель может познакомиться в справочной базе данных. И еще одна полезная функция пакета
varparam(sols,v,ivar)
находит общее решение дифференциального уравнения (или системы уравнений) sols методом вариации параметров. Параметр v задает правую часть уравнения; если он равен 0, ищется только частичное решение.
> varparam([u1(х), u2(х)[LDV4]], g(x), х);
Более подробную информацию об этих функциях читатель найдет в их справочных страницах, а также в информационном документе DEtools.mws, содержащем систематизированное описание пакета DEtools с многочисленными примерами его применения.
7.4.4. Дифференциальные операторы и их применение
Средствами пакета DEtools предусмотрена работа с
> restart; with(DEtools):
> df := x*2*DF^2 - x*DF + (х^2 - 1);
Данное выражение представляет собой дифференциальное уравнение второго порядка, записанное через дифференциальные операторы. С помощью функции diffop2de это уравнение можно преобразовать в обычное дифференциальное уравнение:
> diffop2de(df,y(x),[DF,x]);
Теперь это уравнение можно решить с помощью функции dsolve:
> dsolve(%, y(x));
Уравнения с дифференциальными операторами имеет вид степенного многочлена. Поэтому с ним можно выполнять множество операций, характерных для полиномов, например факторизацию, комплектование по степеням и др. В практике инженерных и научных расчетов дифференциальные операторы применяются довольно редко. Множество примеров с ними дано в файле примеров diffop.mws.
7.5. Графическая визуализация решений дифференциальных уравнений
7.5.1. Применение функции odeplot пакета plots
Для обычного графического представления результатов решения дифференциальных уравнений может использоваться функция odeplot из описанного выше пакета plots. Эта функция используется в следующем виде:
odeplot(s,vars, r, о)
где s — запись (в выходной форме) дифференциального уравнения или системы дифференциальных уравнений, решаемых численно функцией dsolve, vars — переменные, r — параметр, задающий пределы решения (например, a..b) и о — необязательные дополнительные опции.
На рис. 7.11 представлен пример решения одиночного дифференциального уравнения с выводом решения
Рис. 7.11. Пример решения одиночного дифференциального уравнения
В этом примере решается дифференциальное уравнение
при у(0)=2 и
В другом примере (рис. 7.12) представлено решение системы из двух нелинейных дифференциальных уравнений. Здесь с помощью функции odeplot строятся графики двух функций — y(х) и z(x).
Рис. 7.12. Пример решения системы из двух дифференциальных уравнений
В этом примере решается система:
при начальных условиях y(0)=0, z(0)=1 и х, меняющемся от -4 до 4 при числе точек решения, равном 25.
Иногда решение системы из двух дифференциальных уравнений (или одного дифференциального уравнения второго порядка) представляется в виде фазового портрета — при этом по осям графика откладываются значения у(х) и z(х) при изменении х в определенных пределах. Рисунок 7.13 демонстрирует построение фазового портрета для системы, представленной выше.
Рис. 7.13. Представление решения системы дифференциальных уравнений в виде фазового портрета
Обычное решение, как правило, более наглядно, чем фазовый портрет решения. Однако для специалистов (например, в теории колебаний) фазовый портрет порою дает больше информации, чем обычное решение. Он более трудоемок для построения, поэтому возможность Maple быстро строить фазовые портреты трудно переоценить.