Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 80 81 82 83 84 85 86 87 88 ... 125
Перейти на страницу:

• reduceOrder — понижает порядок дифференциальных уравнений;

• regularsp — вычисляет регулярные особые точки для дифференциальных уравнений второго порядка;

• translate — преобразует дифференциальные уравнения в список операторов;

• untranslate — преобразует список операторов в дифференциальные уравнения;

• varparam — находит общее решение дифференциальных уравнений методом вариации параметров.

Применение этих функций гарантирует совместимость документов реализаций Maple R5, 6 и 9.

7.4.2. Консультант по дифференциальным уравнениям

Для выявления свойств дифференциальных уравнений в Maple 9.5 в составе пакета DEtools имеется консультант (адвизор), вводимый следующей функцией:

odeadvisor(ODE) odeadvisor(ODE, y(х), [type1, type2,...], help)

Здесь ODE — одиночное дифференциальное уравнение, y(x) — неопределенная (определяемая функция), type1, type2, … — опционально заданные множество типов, которые классифицируются и help — опционально заданное указание на вывод страницы справки по методу решения.

Примеры работы с классификатором представлены ниже:

> with(DEtools): ODE := x*diff(y(х),х)+а*y(х)+b*х^2;

> odeadvisor(ODE);

 [_linear]

> ОDE1 := x*diff(y(х)^2,х)+а*y(х)+b*х^2;

> odeadvisor(ODE1);

[ rational, [_Abel, 2nd type, class В]]

> ODE2 := diff(y(x),x,x,x)+D(g)(y(x))*diff(y(x),x)^3 + 2*g(y(x))*diff(y(x),x) *diff(y(x), x, x)

 + diff(f(x),x)*diff(y(x),x) + f(x)*diff(y(x),x,x) = 0;

> odeadvisor(ODE2,у(x));

[[_3rd_order, exact, _nonlinear], [_3rd order, reducible, _mu_y2]]

7.4.3. Основные функции пакета DEtools

Рассмотрим наиболее важные функции этого пакета. Функция

autonomous(des,vars,ivar)

тестирует дифференциальное уравнение (или систему) des. Ее параметрами, помимо des, являются независимая переменная ivar и зависимая переменная dvar. Следующие примеры поясняют применение этой функции:

> autonomous(sin(z(t)-z(t)^2)*([email protected]@4)(z)(t)-cos(z(t))-5,z,t);

true

> DE:=diff(x(s),s)-x(s)*cos(arctan(x(s)))=arctan(s):

> autonomous(DE,{x},s);

false

Ниже описание этой функции будет продолжено. Функция 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), ([email protected]@2)(n)(x)=n(x)^2], x);

[D(l)(x)sin(x) + l(x)cos(x) = l(x)sin(x), (D(2))(k)(x) = k(x)2

> Dchangevar(c=d, е=sin(f) , {D(с), ([email protected]@2)(e)}, dummy);

[D(d), (D(2))(sin(f))]

# Преобразование 2-го типа

> Dchangevar(t=arctan(tau), diff(x(t), t) = sin(t), t, tau);

D(x)(arctan(x)) = sin(arctan(f))]

> Dchangevar(x=sin(cos(t)),diff(y(x),x,x,x), x, t);

(D(3))(y)(sin(cos(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*([email protected]@2)(y)(x)=x*sin(x);

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]

> В := ([email protected]@2)(y)(х)*cos(x) + ([email protected]@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.

1 ... 80 81 82 83 84 85 86 87 88 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии