7.7.5. Решение дифференциальных уравнении с двумя краевыми условиями

В решении ряда математических задач нужно найти решение дифференциального уравнения с двумя краевыми условиями. Например, в физике это задача стрельбы по летящей цели. Обычно такая задача решается методом пристрелки, при котором методом проб с итерационным уточнением рассчитывается ряд вариантов решения и выбирается тот, у которого соблюдается начальное условие в начале решения и начальное условие в конце решения с заданной (в частности по умолчанию) погрешностью.

Для такого решения используется функция dsolve в следующем виде:

dsolve(odesys, numeric, vars, options)

Здесь:

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

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

• vars — опционально заданный параметр, задающий имя переменной в odesys;

• options — опционально заданные равенства (в форме keyword=value), определяющие краевые условия.

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

Рис. 7.27. Пример решения дифференциального уравнения второго порядка с двумя граничными условиями

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

7.8.1. Функция pdsolve

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату