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

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

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

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

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

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

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

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

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

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

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

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

struc:=pdsolve(PDE,HINT=T(t)*X(x));

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

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

dsolve(diff(X(x),`$`(x,2))=-lambda^2*X(x));

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

u[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. Учет начальных условий и определение коэффициентов разложения

u_0(t,x):=eval(subs(t=0, u(t,x)))=f(x);

C1(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. Вывод общего решения в развернутом виде и его преобразование

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

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

lambda=-infinity..infinity));

u(t,x):=(1/(2*a*sqrt(Pi*t)))* int(f(xi)*exp (-1/4*(x-xi)^2/ a^2/t),xi=

=-infinity..infinity);

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

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

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

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

struc:=pdsolve(PDE,HINT=T(t)*R(r));

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

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

dsolve(diff(R(r),`$`(r,2))=-lambda^2*R(r)-diff(R(r), r)/r);

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

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

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

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

R[n](r):=BesselJ(0,lambda[n] *r);

BesselJ(0,mu[n])=0;

mu:=BesselJZeros:mu(0,n);

lambda[n]:=mu(0,n)/r0;

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

R[n](r):=BesselJ(0,r*lambda [n]);

T[n](t):= C[n]*exp(-lambda[n]^2*a^2*t);

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

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

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

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

8. Учет начальных условий

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

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

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

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

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

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

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

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

Поделиться материалом