Example 7.13 Heat Transfer with Nonhomogeneous Boundary Conditions
| > | restart: |
| > | with(plots): |
| > | eq:=diff(v(x,y),y$2)=-diff(v(x,y),x$2); |
| (1) |
| > | bc1:=v(x,y)=0; |
| (2) |
| > | bc2:=v(x,y)=0; |
| (3) |
| > | bc3:=v(x,y)=0; |
| (4) |
| > | bc4:=u(x,y)=1; |
| (5) |
| > | Eq:=subs(v(x,y)=X(x)*Y(y),eq); |
| (6) |
| > | Eq:=expand(Eq/X(x)/Y(y)); |
| (7) |
| > | Eq_Y:=lhs(Eq)=lambda^2: |
| > | Eq_Y:=eval(Eq_Y*Y(y)); |
| (8) |
| > | dsolve(Eq_Y,Y(y)); |
| (9) |
| > | Y(y):=C[1]*sinh(lambda*y)+C[2]*cosh(lambda*y); |
| (10) |
| > | Bc3:=Y(y)=0; |
| (11) |
| > | Eq_Bc3:=eval(subs(y=0,Bc3)); |
| (12) |
| > | C[2]:=solve(Eq_Bc3); |
| (13) |
| > | Y(y):=eval(Y(y)); |
| (14) |
| > | Eq_X:=rhs(Eq)=lambda^2: |
| > | Eq_X:=expand(Eq_X*X(x)); |
| (15) |
| > | dsolve({Eq_X},X(x)); |
| (16) |
| > | X(x):=c[1]*sin(lambda*x)+c[2]*cos(lambda*x); |
| (17) |
| > | Bc1:=X(x)=0; |
| (18) |
| > | Bc2:=X(x)=0; |
| (19) |
| > | Eq_Bc1:=eval(subs(x=0,Bc1)); |
| (20) |
| > | c[2]:=solve(Eq_Bc1,c[2]); |
| (21) |
| > | Eq_Bc2:=eval(subs(x=1,Bc2)); |
| (22) |
| > | Eq_Eig:=sin(lambda)=0; |
| (23) |
| > | _EnvAllSolutions := true: |
| > | solve(Eq_Eig,lambda); |
| (24) |
| > | V:=eval(X(x)*Y(y)); |
| (25) |
| > | Vn:=subs(c[1]=A[n]/C[1],lambda=lambda[n],V): |
| > | v(x,y):=Sum(Vn,n=1..infinity): |
| > | v(x,y):=subs(lambda[n]=n*Pi,v(x,y)); |
| (26) |
| > | eq_An:=eval(subs(y=1,v(x,y)))=rhs(bc4); |
| (27) |
| > | phi[n]:=sin(n*Pi*x); |
| (28) |
| > | r(x):=1; |
| (29) |
| > | I1:=int(phi[n]^2*r(x),x=0..1): |
| > | I2:=int(1*phi[n]*r(x),x=0..1): |
| > | vars:={sin(n*Pi)=0}: |
| > | I1:=subs(vars,I1): |
| > | I2:=subs(vars,I2): |
| > | A[n]:=I2/I1/sinh(n*Pi); |
![]() |
(30) |
| > | v(x,y):=eval(v(x,y)); |
![]() |
(31) |
| > | v(x,y):=subs(infinity=N,v(x,y)): |
| > | va:=subs(N=20,v(x,y)); |
![]() |
(32) |
| > | wa:=subs(x=Y,y=X,va):wa:=subs(X=x,Y=y,wa); |
![]() |
(33) |
| > | ua:=va+wa; |
![]() ![]() |
(34) |
| > | plot(subs(x=1,ua),y=0..1,thickness=3,title="Figure Exp. 7.30.",axes=boxed); |
![]() |
| > | uu:=piecewise(x=1,1,y=1,1,ua); |
![]() |
(35) |
| > | plot3d(evalf(uu),x=0..1,y=1..0,axes=boxed,title="Figure Exp. 7.31.",labels=[x,y,"u"],orientation=[-120,60],view=[0..1,0..1,0..1]); |
![]() |
| > | plot([subs(y=0,uu),subs(y=0.4,uu),subs(y=0.6,uu),subs(y=0.8,uu),subs(y=0.9,uu),subs(y=1,uu)],x=0..1,axes=boxed,title="Figure Exp. 7.32.",thickness=5,labels=[x,"u"],legend=["y=0","y=0.4","y=0.6","y=0.8","y=0.9","y=1.0"]); |
![]() |
| > |