Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:
DE := x3у(х) + x2(x-1)D(y)(x) + 50 x3(D(2))(y)(x) = x sin(x)

> DE2 := convertAlg(DE,y(x));

DE2 := [[x³, x³ - x², 50x³], x sin(x)]

> DEnormal(DE,x,y(x));

> DEnormal(DE2,х);

Функция convertAlg(des,dvar)

возвращает список коэффициентов формы системы дифференциальных уравнений des с зависимыми переменными dvar. Это поясняют следующие примеры:

> А : = diff(y(х),х)*sin(х) - diff(y(х),х) - tan(х)*y(х) = 5;

> convertAlg(А,y(х));

[[-tan(x), sin(x) - 1], 5]

> В := (D@@2)(y)(х)*cos(x) + (D@@2)(y)(х)*5*х^2;

В := (D(2))(y)(x)cos(x) + 5(D(2))(y)(x)x2

> convertAlg(В,y(x));

[[0, 0, cos(x) + 5 x²], 0]

Для изменения переменных в системах дифференциальных уравнений используется функция 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(х));

Y := [[1 + х, 5х - х², 2х² + 5х³], 0]

> indicialeq(Y, х, -2/5, y(х));

> indicialeq(Y, x, 0, y(x));

> indicialeq(Y, х, 1, y(х));

x² - x = 0

Функция

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);

sol := еx

> reduceOrder(de, y(х), sol);

> reduceOrder(de, y(x), sol, basis);

Функция

regularsp(des,ivar,dvar)

вычисляет

регулярные особые (сингулярные) точки для дифференциального уравнения второго порядка или системы дифференциальных уравнений des. Следующий пример поясняет применение данной функции:

> coefs := [21*(х^2-х+1), 0, 100*х^2*(х-1)^2]:

> regularsp(coefs, х);

[0, 1]

Еще две функции пакета 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), х);

{x1(t) = (e(-K1 t)C K2 + e(-K1 t)K1 a + e(-K1 t)K2 b – e(-K1 t)K1 C – e(-K1 t)a K2 – K2 e(-K1 t)b + K1 C – C K2)/(K1 – K2), x2(t) = b e(-K2 t) }

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

7.4.4. Дифференциальные операторы и их применение

Средствами пакета DEtools предусмотрена работа с дифференциальными операторами DF, которые дают компактное представление производных, например (файл difop):

> restart; with(DEtools):

> df := x*2*DF^2 - x*DF + (х^2 - 1);

df := x²DF² - x DF + x² - 1

Данное выражение представляет собой дифференциальное уравнение второго порядка, записанное через дифференциальные операторы. С помощью функции diffop2de это уравнение можно преобразовать в обычное дифференциальное уравнение:

> diffop2de(df,y(x),[DF,x]);

Теперь это уравнение можно решить с помощью функции dsolve:

> dsolve(%, y(x));

у(х) = _C1 х BesselJ(√2, x) + _С2 х BesselY(√2, x)

Уравнения с дифференциальными операторами имеет вид степенного многочлена. Поэтому с ним можно выполнять множество операций, характерных для полиномов, например факторизацию, комплектование по степеням и др. В практике инженерных и научных расчетов дифференциальные операторы применяются довольно редко. Множество примеров с ними дано в файле примеров diffop.mws.

7.5. Графическая визуализация решений дифференциальных уравнений

Поделиться с друзьями: