> DE:=diff(x(s),s)-x(s)*cos(arctan(x(s)))=arctan(s):
> autonomous(DE,{x},s);
Ниже описание этой функции будет продолжено. Функция Dchangevar используется для обеспечения замен (подстановок) в дифференциальных уравнениях:
Dchangevar(trans, deqns, с_ivar, n_ivar)
Dchangevar(tran1, tran2, ..., tranN, deqns, с_ivar, n_ivar)
В первом случае trans — список или множество уравнений, которые подставляются в дифференциальное уравнение, список или множество дифференциальных уравнений deqns. При этом civar — имя текущей переменной, n_ivar — имя новой переменной (его задавать необязательно). Во второй форме для подстановки используются уравнения tran1, tran2, …
Ниже представлены примеры применения функции Dchangevar
# Преобразование 1-го типа
> Dchangevar(m(х) = l(х)*sin(x), n(x)=k(x), [D(m)(x)=m(x), (D@@2)(n)(x)=n(x)^2], x);
> Dchangevar(c=d, е=sin(f) , {D(с), (D@@2)(e)}, dummy);
# Преобразование 2-го типа
> Dchangevar(t=arctan(tau), diff(x(t), t) = sin(t), t, tau);
> Dchangevar(x=sin(cos(t)),diff(y(x),x,x,x), x, t);
# Преобразование 3-го типа
> Dchangevar(x(t)=L*y(phi),diff(x(t),t$3) = tan(t),t,phi);
# Дополнительные примеры
> Dchangevar({t=T*phi,x(t)=L*y(phi)},diff(x(t)), t$3)=tan(t),t,phi);
> de := diff(y(x),x$2) = y(x)*diff(y(x),x)/x;
> Dchangevar({x=exp(t), y(x)=Y(t)},de,x,t);
Следует отметить, что подстановки являются мощным средством решения дифференциальных уравнений. Нередки случаи, когда дифференциальное уравнение не решается без их применения.
Функция нормализации ОДУ DEnormal синтаксически записывается в виде
DEnormal(des, ivar, dvar)
где des — система дифференциальных уравнений, ivar — независимая переменная и dvar — зависимая переменная. Применение этой функции поясняют следующие примеры:
> DE := х^3*у(х)+х^2*(х-1)*D(y)(х)+50*х^3*(D@@2)(y)(x)=x*sin(x);
> DE2 := convertAlg(DE,y(x));
> DEnormal(DE,x,y(x));
> DEnormal(DE2,х);
Функция convertAlg(des,dvar) возвращает список коэффициентов формы системы дифференциальных уравнений des с зависимыми переменными dvar. Это поясняют следующие примеры:
> А : = diff(y(х),х)*sin(х) - diff(y(х),х) - tan(х)*y(х) = 5;
> convertAlg(А,y(х));
> В := (D@@2)(y)(х)*cos(x) + (D@@2)(y)(х)*5*х^2;
> convertAlg(В,y(x));
Для изменения переменных в системах дифференциальных уравнений используется функция convertsys:
convertsys(deqns, inits, vars, ivar, yvec, ypvec)
Здесь deqns — одно дифференциальное уравнение или список (множество), представляющие систему дифференциальных уравнений первого порядка, inits — множество или список начальных условий, vars — зависимые переменные, ivar — независимые переменные, yvec — вектор решений и ypvec — вектор производных.
indicialeq(des,ivar,alpha,dvar)
обеспечивает полиномиальное представление для линейного однородного дифференциального уравнения второго порядка des. Параметр alpha намечает точку сингулярности.
> Y : =
(2*х^2+5*х^3)*diff(y(х),х,х)+(5*х-х^2)*diff(y(х),х)+(1+х)*y(х)=0:
> Y := convertAlg(Y, y(х));
> indicialeq(Y, х, -2/5, y(х));
> indicialeq(Y, x, 0, y(x));
> indicialeq(Y, х, 1, y(х));
Функция
reduceOrder(des,dvar,partsol, solutionForm)
обеспечивает понижение порядка дифференциального уравнения des (или системы уравнений, представленных списком или множеством) при зависимых переменных dvar, частном решении partsol (или списке частных решений) и флаге solutionForm, показывающем, что решение происходит явным методом (explicitly).
Для демонстрации действия этой функции воспользуемся примером из ее справочной страницы:
> de := diff(Y(х),х$3) - 6*diff(y(х),х$2) + 11*diff(y(х),х) - 6*y(х);
> sol:=exp(x);
> reduceOrder(de, y(х), sol);
> reduceOrder(de, y(x), sol, basis);
Функция
regularsp(des,ivar,dvar)
вычисляет регулярные особые (сингулярные) точки для дифференциального уравнения второго порядка или системы дифференциальных уравнений des. Следующий пример поясняет применение данной