Example 8.14.mw

Example 8.14 Heat Conduction in a Cylinder 

Equation (8.1.30) is solved in Maple below: 

> `*`(r, `*`(estart)); -1; with(inttrans); -1; with(plots); -1
 

> eq:=diff(u(x,t),t)=diff(u(x,t),x$2)+1/x*diff(u(x,t),x);
 

diff(u(x, t), t) = `+`(diff(diff(u(x, t), x), x), `/`(`*`(diff(u(x, t), x)), `*`(x))) (1)
 

> u(x,0):=0;
 

0 (2)
 

> bc1:=diff(u(x,t),x)=0;
 

diff(u(x, t), x) = 0 (3)
 

> bc2:=u(x,t)=1;
 

u(x, t) = 1 (4)
 

> eqs:=laplace(eq,t,s):
 

> eqs:=subs(laplace(u(x,t),t,s)=U(x),eqs);
 

`*`(s, `*`(U(x))) = `+`(diff(diff(U(x), x), x), `/`(`*`(diff(U(x), x)), `*`(x))) (5)
 

> bc1:=laplace(bc1,t,s):
 

> bc1:=subs(laplace(u(x,t),t,s)=U(x),bc1);
 

diff(U(x), x) = 0 (6)
 

> bc2:=laplace(bc2,t,s):
 

> bc2:=subs(laplace(u(x,t),t,s)=U(x),bc2);
 

U(x) = `/`(1, `*`(s)) (7)
 

> dsolve(eqs,U(x));
 

U(x) = `+`(`*`(_C1, `*`(BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)), `*`(x))))), `*`(_C2, `*`(BesselY(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)), `*`(x)))))) (8)
 

Since BesselY becomes infinite x = 0_C2 should be zero and the solution is taken as: 

> U(x):=c[1]*BesselJ(0,(-s)^(1/2)*x);
 

`*`(c[1], `*`(BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)), `*`(x))))) (9)
 

> eq0:=eval(subs(x=0,bc1));
 

0 = 0 (10)
 

> eq1:=eval(subs(x=1,bc2));
 

`*`(c[1], `*`(BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)))))) = `/`(1, `*`(s)) (11)
 

> con:=solve({eq1},{c[1]}):
 

> U(x):=subs(con,U(x)):
 

> U(x):=factor(simplify(U(x)));
 

`/`(`*`(BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)), `*`(x)))), `*`(BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)))), `*`(s))) (12)
 

> P(s):=numer(U(x));
 

BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)), `*`(x))) (13)
 

> Q(s):=denom(U(x));
 

`*`(BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)))), `*`(s)) (14)
 

> solve(Q(s),s);
 

RootOf(BesselJ(0, `*`(`^`(`+`(`-`(_Z)), `/`(1, 2))))), 0 (15)
 

> eig:=BesselJ(0,(-s)^(1/2));
 

BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)))) (16)
 

> convert(eig,BesselI);
 

BesselJ(0, `*`(`^`(`+`(`-`(s)), `/`(1, 2)))) (17)
 

> eiglambda:=simplify(subs(s^(1/2)=I*lambda,(-s)^(1/2)=lambda,s=-lambda^2,eig));
 

BesselJ(0, lambda) (18)
 

> plot(eiglambda,lambda=0..20,thickness=3,axes=boxed):
 

The roots are: 

> 0,-lambda^2;
 

0, `+`(`-`(`*`(`^`(lambda, 2)))) (19)
 

> N:=20;
 

20 (20)
 

> l[1]:=fsolve(eiglambda,lambda=0..3);
 

2.404825558 (21)
 

> for i from 2 to N do l[i]:=fsolve(eiglambda,lambda=l[i-1]..l[i-1]+4);od:
 

> seq(l[i],i=1..N);
 

2.404825558, 5.520078110, 8.653727913, 11.79153444, 14.93091771, 18.07106397, 21.21163663, 24.35247153, 27.49347913, 30.63460647, 33.77582021, 36.91709835, 40.05842576, 43.19979171, 46.34118837, 49.48...
2.404825558, 5.520078110, 8.653727913, 11.79153444, 14.93091771, 18.07106397, 21.21163663, 24.35247153, 27.49347913, 30.63460647, 33.77582021, 36.91709835, 40.05842576, 43.19979171, 46.34118837, 49.48...
2.404825558, 5.520078110, 8.653727913, 11.79153444, 14.93091771, 18.07106397, 21.21163663, 24.35247153, 27.49347913, 30.63460647, 33.77582021, 36.91709835, 40.05842576, 43.19979171, 46.34118837, 49.48...
(22)
 

 

> A(s):=P(s)/diff(Q(s),s):
 

> A[n]:=simplify(subs(s=mu,A(s)));
 

`+`(`/`(`*`(2, `*`(BesselJ(0, `*`(`^`(`+`(`-`(mu)), `/`(1, 2)), `*`(x))), `*`(`^`(`+`(`-`(mu)), `/`(1, 2))))), `*`(`+`(`*`(BesselJ(1, `*`(`^`(`+`(`-`(mu)), `/`(1, 2)))), `*`(mu)), `*`(2, `*`(BesselJ(0... (23)
 

> A[0]:=limit(A[n],mu=0);
 

1 (24)
 

> A[n]:=simplify(subs(mu^(1/2)=I*lambda,(-mu)^(1/2)=lambda,mu^(3/2)=-I*lambda^3,mu=-lambda^2,A[n]));
 

`+`(`-`(`/`(`*`(2, `*`(BesselJ(0, `*`(lambda, `*`(x))))), `*`(`+`(`*`(BesselJ(1, lambda), `*`(lambda)), `-`(`*`(2, `*`(BesselJ(0, lambda))))))))) (25)
 

> u0s:=A[0]*subs(mu=0,1/(s-mu));
 

`/`(1, `*`(s)) (26)
 

> u0t:=invlaplace(u0s,s,t);
 

1 (27)
 

> uns:=A[n]/(s-mu);
 

`+`(`-`(`/`(`*`(2, `*`(BesselJ(0, `*`(lambda, `*`(x))))), `*`(`+`(`*`(BesselJ(1, lambda), `*`(lambda)), `-`(`*`(2, `*`(BesselJ(0, lambda))))), `*`(`+`(s, `-`(mu))))))) (28)
 

> unt:=invlaplace(uns,s,t);
 

`+`(`/`(`*`(2, `*`(BesselJ(0, `*`(lambda, `*`(x))), `*`(exp(`*`(mu, `*`(t)))))), `*`(`+`(`-`(`*`(BesselJ(1, lambda), `*`(lambda))), `*`(2, `*`(BesselJ(0, lambda))))))) (29)
 

> unt:=subs(mu=-l[n]^2,lambda=l[n],unt);
 

`+`(`/`(`*`(2, `*`(BesselJ(0, `*`(l[n], `*`(x))), `*`(exp(`+`(`-`(`*`(`^`(l[n], 2), `*`(t)))))))), `*`(`+`(`-`(`*`(BesselJ(1, l[n]), `*`(l[n]))), `*`(2, `*`(BesselJ(0, l[n]))))))) (30)
 

The following solution and plots are obtained: 

> U:=u0t+Sum(unt,n=1..infinity);
 

`+`(1, Sum(`+`(`/`(`*`(2, `*`(BesselJ(0, `*`(l[n], `*`(x))), `*`(exp(`+`(`-`(`*`(`^`(l[n], 2), `*`(t)))))))), `*`(`+`(`-`(`*`(BesselJ(1, l[n]), `*`(l[n]))), `*`(2, `*`(BesselJ(0, l[n]))))))), n = 1 ..... (31)
 

> u:=piecewise(t=0,0,t>0,subs(infinity=20,U)):
 

> u:=evalf(u):
 

> plot3d(u,x=0..1,t=0..0.5,axes=boxed,title="Figure Exp. 8.26.",labels=[x,t,"u"],orientation=[-145,60]);
 

Plot
 

> plot([subs(t=0,u),subs(t=0.1,u),subs(t=0.2,u),subs(t=0.5,u)],x=0..1,title="Figure Exp. 8.27.",axes=boxed,thickness=5,labels=[x,"u"]);
 

Plot_2d
 

>