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

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

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

±олического типа методом разделения переменных:

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

:=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;

> a:=0.1;L:=100;mu:=1; alpha:=0.25;(t,x):=sum(-mu*sin(1/7*x)*t*L^2*(-2*x+2*x*(-1)^n+L-L*(-1)^n)*(-1+exp(a^2*Pi^2*n^2/L^2*t))/a^2/Pi^3/n^3*exp(-t*(a^2*Pi^2*n^2+alpha*L^2)/L^2)*sin(Pi*n*x/L),n = 1 .. 300):(t,x):=mu*(x-L/2)*sin(x/7)*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,thickne