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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

абочая информацияПоследовательность вывода полученных результатов.Форматы переменных и данных.Вывод промежуточных результатов.Типы и форматы графиков.Пределы изменения переменных.

Заметим, что если ввод и использование основной информации является хорошо разработанным алгоритмом для многих задач, решаемых в MAPLE, то именно программирование, использование дополнительной и рабочей информации, интерпретация промежуточных результатов и их дальнейшее использование при решении уравнений в частных производных представляет собой основную программную задачу.

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

Таблица 2

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

Тип операцииСодержаниеВыход1. Ввод уравненияПрограммная запись уравнения на входном MAPLE-языке.Уравнение на входном MAPLE-языке.2. Ввод дополнительных данныхПрограммная запись НУ и ГУ.НУ и ГУ на входном MAPLE-языке.3. Использование средств исследования уравнения суммы или произведения функций.Установление порядка ДУ.Вывод ответов программой.Исследование возможности разделения переменных.Определение условий поиска решения в виде.4. Использование средств преобразования уравнения.Выполнение замены переменных.Вывод преобразованного уравнения.Выполнение подстановок.Тип операцииСодержаниеВыход5. Использование основных инструментов решения уравненияПолучение разделенных уравнений по умолчанию с применением команды pdsolve.Вывод разделенных уравнений.Получение разделенных уравнений в заданном виде с применением операторов pdsolve и hint.Получение решения с применением команды build (для тех случаев, когда это возможно).Вывод решения уравнения.6. Использование дополнительных инструментов решения уравненияУчет НУ и ГУ при решении уравнений с применением команды conds (для тех случаев,когда это возможно).Вывод решения уравнений с (частичным) учетом НУ и ГУ.Проверка полученного решения с применением команды pdetest.Вывод результатов проверки.7. Решение разделенных уравнений и учет НУ и ГУ на уровне разделенных уравненийРешение задач на собственные значения и собственные функции.Вывод решений разделенных уравнений в общем виде.Определение собственных значений и собственных функций.Вывод собственных функцийОпределение коэффициентов разложения.8. Построение частного решенияПолучение частного решения исходного уравнения с учетом исходной факторизации при разделении переменных и коэффициентов разложения.Вывод частного решения9. Построение общего решенияПостроение общего решения как суперпозиции частных решений.Вывод общего решенияУчет НУ и определение оставшихся коэффициентов разложения

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

 

2. Метод разделения переменных

 

Рассмотрим подробнее метод разделения переменных. Основными этапами построения решения этим методом являются:

) ввод уравнения и разделение переменных;

) решение разделенных уравнений;

) построение общего решения;

) учет начальных условий и определение коэффициентов разложения;

) вывод общего решения в развернутом виде и его преобразование.

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

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

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

1.Ввод уравнения и разделение переменных

PDE:=diff(u(t,x),t)=a^2*diff(u(t,x),x,x);:=pdsolve(PDE,HINT=T(t)*X(x));

 

2.Переобозначение постоянной и решение разделенных уравнений

 

_c[1]=-lambda^2: dsolve(diff(T(t),t)=-lambda^2*T(t)*a^2);(diff(X(x),`$`(x,2))=-lambda^2*X(x));

3.Построение общего решения

[lambda](t,x):=(C1(lambda)*sin(lambda*x)+

+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a ^2*t);

u(t,x):=int(u[lambda](t,x), lambda=-infinity..infinity);

 

4.Учет начальных условий и определение коэффициентов разложения

_0(t,x):=eval(subs(t=0, u(t,x)))=f(x);(lambda):=(1/(2*Pi))*int(f(xi)*sin(lambda*xi),xi=-infinity..infinity);

C2(lambda):=(1/(2*Pi))*int(f(xi)*cos(lambda*xi), xi=-infinity..infinity);

 

5.Вывод общего решения в развернутом виде и его преобразование

(t,x):=combine(int((C1(lambda)*sin(lambda*x)+

+C2(lambda)*cos(lambda*x))*exp(-lambda^2*a^2*t),=-infinity..infinity));(t,x):=(1/(2*a*sqrt(Pi*t)))* int(f(xi)*exp (-1/4*(x-xi)^2/ a^2/t),xi=

=-infinity..infinity);

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

Функциональный алгоритм построения формальных решений двумерных уравнений пара?/p>