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);
Do'stlaringiz bilan baham: |