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

ЖАНРЫ

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

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

Шрифт:

В Maple 9.5 имеется функция pdsolve для решения дифференциальных уравнений с частными производными. Она может использоваться в следующих формах записи:

pdsolve(PDE, f, HINT, INTEGRATE, build)

pdsolve(PDE_system, funcs, HINT, other_options)

pdsolve(PDE_system, conds, numeric, other_options)

pdsolve(PDE_system, conds, type=numeric, other_options)

Эта функция введена вместо устаревшей функции pdesolve. В функции pdsolve используются следующие параметры:

• PDE — одиночное дифференциальное уравнение с частными производными;

• PDE system — система дифференциальных

уравнений с частными производными;

• conds — начальные или граничные условия;

• f — неопределенная функция или имя;

• funcs — (опция) множество или список с неопределенными функциями или именами;

• HINT — (опция) равенство в форме HINT=argument, где аргумент может быть символом '+', '*', любым алгебраическим выражением или строкой 'strip';

• INTEGRATE — (опция) задает автоматическое интегрирование для множества ODEs (если PDE решается при разделении переменных;

• build — опция, задающая попытку построения явного выражения для неопределенной функции, независимо от общности найденного решения;

• numeric — ключевое слова, задающее решение в численном виде;

• other options — другие опции.

7.8.2. Инструментальный пакет расширения PDEtool

Для решения дифференциальных уравнений с частными производными и его визуализации в Maple 9.5 служит специальный инструментальный пакет PDEtool:

> with(PDEtools);

[PDEplot, build, casesplit, charstrip, dchange, dcoeffs, declare, diff order, dpolyforin, dsubs, mapde, separability, splitstrip, splitsys, undeclare]

Ввиду небольшого числа функций этого пакета приведем их определения:

build(sol) — конструирует улучшенную форму решения, полученного функцией pdsolve;

casesplit(sys, о1, o2, …) — преобразует форму дифференциального уравнения; charstrip(PDE, f) — находит характеристическую последовательность, дающую дифференциальное уравнение первого порядка;

dchange(tr,expr,o1,o2,…) — выполняет замену переменных в математических выражениях или функциях;

dcoeff(expr,y(x)) — возвращает коэффициенты полиномиала дифференциального уравнения;

declare(expr) и др. — задает функцию для компактного ее отображения;

difforder(a,x) — возвращает порядок дифференциала в алгебраическом выражении а;

dpolyform(sys,no_Fn,opts) — возвращает полиномиальную форму для заданной системы sys не полиномиальных дифференциальных уравнений;

dsubs(deriv1=a,…,expr) — выполняет дифференциальные подстановки в выражение expr;

mapde(PDE,into,f) — создает карту PDE в различных форматах into с опциональным заданием имени неизвестной функции f;

separability(PDE, F(x,y,…), '*') — определяет условия разделения для сумм или произведений PDE;

splitstrip(PDE, f) — разделяет характеристическую последовательность на несоединенные поднаборы;

splitsys(sys,funcs) — разделяет наборы уравнений (алгебраические и дифференциальные) на несоединенные поднаборы;

undeclare(f(x),…) и др. — отменяет задание функции для компактного ее отображения.

7.8.3. Примеры решения дифференциальных уравнений с частными производными

Примеры решения дифференциальных уравнений и систем с частными производными представлены ниже (файл pde):

> restart: with(PDEtools):

> PDE := x*diff(f(x, y), y) - diff(f(x,y),x)=f(x,y;^2*g(x)/h(y);

> ans := pdsolve(PDE);

> PDE := S(x,y)*diff(S(x,y),y,x) + diff(S(x,y),x)*diff(S(x,y),y) = 1;

> struc := pdsolve(PDE, HINT=f(x)*g(y));

> build(struc);

> pdsolve(PDE,HINT=P(x,y)^(1/2));

> PDE := diff(f(x,y,z), x) + diff(f(x,y,z),
у)^2 = f(x,y,z)+z;

> pdsolve(PDE, HINT=strip);

> myPDEsystem := [-y*diff(f(x,у,z,t),x) +

 z^2*diff(f(x,y,z,t),z) + 3*t*z*diff(f(x,y,z,t),t) - 3*t^2-4*f(x,y,z,t)*z = 0,

 -y*diff(f(x, y, z, t), y) - z*diff(f(x,y,z,t),z) -

 t*diff(f(x,y,z,t), t) + f(x,y,z,t) = 0,

 -x*diff(f(x, y, z, t), y) - diff(f(x,y,z,t),z)=0]:

 for _eq in myPDEsystem do

_eq;

 od;

> sol := pdsolve(myPDEsystem);

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

7.8.4. Функция PDEplot пакета DEtools

Одна из важнейших функций пакета DEtools — DEtools[PDEplot] — служит для построения графиков решения систем с квазилинейными дифференциальными уравнениями первого порядка в частных производных. Эта функция используется в следующем виде:

PCEplot(pdiffeq, var, i_curve, srange, o)

PDEplot(pdrffeq, var, i_curve, srange, xrange, yrange, urange, o)

Здесь помимо упоминавшихся ранее параметров используются следующие: pdiffeq — квазилинейные дифференциальные уравнения первого порядка (PDE), vars — независимая переменная и i_curve — начальные условия для параметрических кривых трехмерной поверхности. Помимо опций, указанных для функции DEplot, здесь могут использоваться следующие опции:

• animate = true, false — включение (true) или выключение (false) режима анимации графиков;

• basechar = true, false, ONLY — устанавливает показ начального условия на плоскости (х,у);

• basecolor = b_color — устанавливает цвет базовых характеристик;

• ic_assumptions — задание (в виде равенств или неравенств) ограничений на начальные условия для первых производных;

• initcolor = i_color — инициализация цвета кривой начальных условий;

• numchar = integer — залает число отрезков кривых, которое не должно быть меньше 4 (по умолчанию 20);

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