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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    64,22 Кб
  • Опубликовано:
    2012-08-02
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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













КУРСОВАЯ РАБОТА

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

РЕФЕРАТ

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

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

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

Работа состоит из введения, 3 разделов, 2 таблиц, заключения, библиографического списка из 4 источников, одного приложения, в котором приведена реализация примеров решения уравнений.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

.       Построение формального решения на входном Maple-языке

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

.       Метод функций Грина и другие методы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ А

ВВЕДЕНИЕ

Прикладной математический пакет MAPLE обладает большим набором инструментов для работы с дифференциальными уравнениями в частных производных. Среди них: установление порядка уравнения, исследование на возможность разделения переменных, определение условий поиска решения в виде суммы или произведения функций, получение решения из функций, получаемых командой pdsolve для разделенных уравнений, выполнение замены переменных и различных подстановок и т.п.

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

1. Построение формального решения на входном Maple-языке

Проблема решения дифференциальных уравнений в частных производных средствами MAPLE представляет собой программную задачу, сочетающую использование инструментов пакета с необходимыми дополнительными алгоритмами: учет начальных и граничных условий (НУ и ГУ), сложные и, зачастую, нетривиальные преобразования промежуточных результатов (основанные, например, на исследовании асимптотического поведения функций), программное использование дополнительной и/или специальной информации (например, использование рекуррентных соотношений для некоторых специальных функций, которые пока недоступны средствами MAPLE) и т.п. Более того, при решении сложных задач требуется программирование отдельных этапов решения с последующим объединением промежуточных результатов, а также создания комплексов программ (например, при комплексном аналитическом и численном - решении уравнений и различных способах визуализации и интерпретации результатов).

Для программирования построения формального решения на входном MAPLE-языке необходим ввод необходимой начальной информации (табл. 1) с последующим выполнением определенных алгоритмических операций (табл. 2).

Таблица 1

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

Тип информации

Содержание

Основная Информация

Вызов пакетов расширения.


Задание системы координат.


Ввод дифференциального уравнения в частных производных.


Ввод начальных и граничных условий.


Ввод различных функций и операторов.


Вызов средств аналитического или численного решения уравнений.

Дополнительная информация

Представление функции при разделении переменных.


Выполнение замены переменных(при необходимости).


Переопределение постоянных, которые по умолчанию присваиваются пакетом.


Ввод математической информации, недопустимой в 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);

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

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

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

:=diff(u(t,r),t)=a^2*(diff(u(t,r),r,r)+(1/r)*diff(u(t,r),r));:=pdsolve(PDE,HINT=T(t)*R(r));


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

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

3.   Учет условия регулярности решения в начале координат

(0,lambda*r)=series(BesselJ(0,lambda*r),r=0,4):(0,lambda*r)=series(BesselY(0,lambda*r),r=0,4):_C2=0;

.     Учет граничного условия для решения на краю области: r = r0

[n](r):=BesselJ(0,lambda[n] *r);(0,mu[n])=0;:=BesselJZeros:mu(0,n);[n]:=mu(0,n)/r0;

5.   Вывод решений радиального и временного уравнений

[n](r):=BesselJ(0,r*lambda [n]);[n](t):= C[n]*exp(-lambda[n]^2*a^2*t);

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

[n](t,r):=T[n](t)*R[n](r): u(t,r):=Sum(u[n](t,r), n=1..infinity);

.     Замена переменной

(t,rho):=subs(r=rho*r0,u(t,r));

(subs(t=0,u(t,rho))= F(rho*r0));

.     Определение коэффициентов

[n]:=2/BesselJ(1,BesselJZeros(0,n))^2*

*int(rho*BesselJ(0,BesselJZeros(0,n)*rho)*F(rho*r0),rho = 0 .. 1);

.     Вывод общего решения

(t,rho):=Sum(C[n]*exp(-BesselJZeros(0,n)^2/r0^2*a^2*t)*

*BesselJ(0,BesselJZeros(0,n)*rho),n=1..infinity);

3. Метод функций Грина и другие методы

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

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

) ввод неоднородного уравнения;

) ввод представления для решения уравнения в виде ряда Фурье;

) разложение функций в ряд Фурье;

) определение коэффициентов разложения;

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

) представление решения в виде суммы решений однородного и неоднородного уравнений;

) учет НУ, определение коэффициентов и вывод решения однородного уравнения;

) построение функции Грина;

) вывод решения однородного уравнения и частного решения неоднородного уравнения с помощью функции Грина;

) вывод решения уравнения.

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

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

.     Ввод неоднородного уравнения

:=diff(u(t,x),t)=a^2*diff(u(t,x),x,x)+w(t,x);


.     Ввод представления для решения уравнения в виде ряда Фурье

u(t,x):=Sum(u[n](t)*sin(Pi*n* x/L),n=1..infinity);

.     Разложение функций в ряд Фурье

(t,x):=Sum(w[n](t)*sin(Pi*n*x/ L),n=1..infinity);(x):=Sum(F[n]*sin(Pi*n*x/L),n=1..infinity);

.     Определение коэффициентов разложения

[n](t)=(2/L)*int(w(t,xi)*sin(Pi*n*xi/l), xi=0..L);[n]=(2/L)*int(F(xi)*sin(Pi*n* xi/L),xi=0..L);

5.   Подстановка разложений функций u(t,x) и w(t,x) в исходное уравнение PDE;

.     Представление решения в виде суммы решений однородного и неоднородного уравнений

[n](t)=u_Un[n](t)+u_Nu[n](t): u_Un[n](t):=_C1*exp(-a^2*Pi^2*n^2/L^2*t): u_Nu[n](t):=(Int(w[n](tau)*exp(a^2*Pi^2*n^2/L^2*(tau-t)),tau)):

7.   Учет начальных условий, определение коэффициентов и вывод решения однородного уравнения

_0:=subs(t=0,u(t,x))=F(x): u[n](0)=F[n];(subs(t=0,u_Un[n](t)))= F[n];

.     Построение функции Грина

(x,xi,t,tau):=Sum(2/L*exp(-a^2*Pi^2*n^2/L^2*(ttau))*

*sin(Pi*n*xi/L)*sin(Pi*n*x/L),n=1..infinity);


.     Вывод решения однородного уравнения и частного решения неоднородного уравнения с помощью функции Грина

_Un(t,x):=Sum(u_Un[n](t)*sin(Pi*n*x/L),n=1..infinity);_Nu(t,x):=int(int(G(x,xi,t,tau)*w(tau,xi),xi=0..L),tau=0..t);

10. Вывод решения исходного неоднородного уравнения

u(t,x):=u_Un(t,x)+u_Nu(t,x);

ЗАКЛЮЧЕНИЕ

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

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

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1.                Араманович И.Г., Левин В.И.. Уравнения математической физики. - М.: Наука, 1964.

2.     Голоскоков Д.П. Уравнения математической физики. Решение задач в системе Maple. -С-Пб: Питер, 2004.

.       Сдвижников О.А., Математика на компьютере: Maple8. М.:Солон-Пресс, 2003. -176 с.

.       Тихоненко А.В. Компьютерные математические пакеты в курсе «Линейные и нелинейные уравнения физики». Часть 2. Параболические уравнения в MAPLE. - Обнинск: ИАТЭ, 2005.- 80 с.

ПРИЛОЖЕНИЕ А

Листинг программы на Maple 13

> restart;

Решить неоднородное уравнение


с неоднородностью

> w(tau,xi):=mu*(x-L/2)*sin(x/7)*t*exp(-alpha*t);


и однородными начальными условиями.

Функция Грина (функция источника):

> G(x,xi,t,tau):=sum(2/L*exp(-a^2*Pi^2*n^2/L^2*(t-tau))*sin(Pi*n*xi/L)*sin(Pi*n*x/L),n = 1 .. infinity);


Решение уравнения:

> u(t,x):=simplify(sum(int(2/L*exp(-a^2*Pi^2*n^2/L^2*(t-tau))*int(mu*(x-L/2)*sin(x/7)*t*exp(-alpha*t)*sin(Pi*n*xi/L),xi = 0 .. L),tau = 0 .. t)*sin(Pi*n*x/L),n = 1 .. infinity)) assuming n::integer;


Представим полученные решения в виде двумерных анимированных графиков:

> with(plots):(plot,[w(t,x),x=0..L, color=blue],t=0..40,frames=20,thickness=3);(plot,[u(t,x),x=0..L],t=0..40,frames=20,thickness=3);, the name changecoords has been redefined




прикладной математический дифференциальный уравнение

> restart;

Решить неоднородное уравнение

с неоднородностью

> w(t,x) :=x->piecewise([0, x < 995/2],[1, x < 1005/2],[0, 1000 < x])*t*exp(-.25*t);


и однородными начальными условиями.

Функция Грина (функция источника):

> G(x,xi,t,tau):=sum(2/L*exp(-a^2*Pi^2*n^2/L^2*(t-tau))*sin(Pi*n*xi/L)*sin(Pi*n*x/L),n = 1 .. infinity);


Решение уравнения:

> u(t,x):=simplify(sum(int(2/L*exp(-a^2*Pi^2*n^2/L^2*(t-tau))*int(mu*exp(-alpha*t)*sin(Pi*n*xi/L),xi = l1..l2),tau = 0 .. t)*sin(Pi*n*x/L),n = 1 .. infinity)) assuming n::integer;

> a:=0.1;L:=1000;mu:=1;l1:=L/2-L/10;l2:=L/2+L/10;alpha:=0.25;(t,x):=sum(2*L^2*mu*(cos(Pi*n*l1/L)-cos(Pi*n*l2/L))*(-1+exp(a^2*Pi^2*n^2/L^2*t))*exp(-t*(a^2*Pi^2*n^2+alpha*L^2)/L^2)*sin(Pi*n*x/L)/a^2/Pi^3/n^3,n = 1 .. 1000):(x):=piecewise(x<l1,0, x<l2,mu, x>L,0);(t,x):=w(x)*t*exp(-alpha*t);


Представим полученные решения в виде двумерных анимированных графиков:

> with(plots):(plot,[w(t,x),x=0..L, color=blue],t=0..40,frames=20,thickness=3);(plot,[u(t,x),x=0..L],t=0..40,frames=20,thickness=3);, the name changecoords has been redefined

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!