Example 6.4 Rev 1.mw

Example 6.4 

> restart;with(linalg):with(plots):
 

>
 

> ge:=diff(u(x,y),y$2)=-epsilon^2*diff(u(x,y),x$2);
 

diff(diff(u(x, y), y), y) = `+`(`-`(`*`(`^`(epsilon, 2), `*`(diff(diff(u(x, y), x), x))))) (1)
 

> bc1:=u(x,y)-0;
 

u(x, y) (2)
 

> bc2:=diff(u(x,y),x);
 

diff(u(x, y), x) (3)
 

The nonlinear boundary condition at y = 0 is entered: 

> bc3:=diff(u(x,y),y)-u(x,y)^4;
 

`+`(diff(u(x, y), y), `-`(`*`(`^`(u(x, y), 4)))) (4)
 

> bc4:=u(x,y)-1;
 

`+`(u(x, y), `-`(1)) (5)
 

> H:=0.5;
 

.5 (6)
 

> epsilon:=1;
 

1 (7)
 

> dydxf:=1/2/h*(-u[m+2](zeta)-3*u[m](zeta)+4*u[m+1](zeta)):
 

> dydxb:=1/2/h*(u[m-2](zeta)+3*u[m](zeta)-4*u[m-1](zeta)):
 

> dydx:=1/2/h*(u[m+1](zeta)-u[m-1](zeta)):
 

> d2ydx2:=1/h^2*(u[m-1](zeta)-2*u[m](zeta)+u[m+1](zeta)):
 

> bc1:=subs(diff(u(x,y),x)=subs(m=0,dydxf),u(x,y)=u[0](zeta),bc1);
 

u[0](zeta) (8)
 

> bc2:=subs(diff(u(x,y),x)=subs(m=N+1,dydxb),u(x,y)=u[N+1](zeta),bc2);
 

`+`(`/`(`*`(`/`(1, 2), `*`(`+`(u[`+`(N, `-`(1))](zeta), `*`(3, `*`(u[`+`(N, 1)](zeta))), `-`(`*`(4, `*`(u[N](zeta))))))), `*`(h))) (9)
 

> N:=10;
 

10 (10)
 

> eq[0]:=bc1;
 

u[0](zeta) (11)
 

> eq[N+1]:=bc2;
 

`+`(`/`(`*`(`/`(1, 2), `*`(`+`(u[9](zeta), `*`(3, `*`(u[11](zeta))), `-`(`*`(4, `*`(u[10](zeta))))))), `*`(h))) (12)
 

> for i from 1 to N do eq[N+1+i]:=diff(u[N+1+i](zeta),zeta)= subs(diff(u(x,y),x$2) = subs(m=i,d2ydx2),diff(u(x,y),x) = subs(m=i,dydx),diff(u(x,y),y)=epsilon/h*u[N+1+i](zeta),u(x,y)=u[i](zeta),x=i*h,rhs(h^2/epsilon^2*ge));od:
 

> u[0](zeta):=(solve(eq[0],u[0](zeta)));
 

0 (13)
 

> u[N+1](zeta):=solve(eq[N+1],u[N+1](zeta));
 

`+`(`-`(`*`(`/`(1, 3), `*`(u[9](zeta)))), `*`(`/`(4, 3), `*`(u[10](zeta)))) (14)
 

> for i from 1 to N do eq[i]:=diff(u[i](zeta),zeta)= u[N+1+i](zeta);od:
 

> for i from 1 to N do eq[i]:=eval(eq[i]);od:for i from 1 to N do eq[N+1+i]:=eval(eq[N+1+i]);od:
 

> eqns:=[seq(rhs(eq[j]),j=1..N),seq(rhs(eq[N+1+j]),j=1..N)]:
 

> Y:=[seq(u[i](zeta),i=1..N),seq(u[N+1+i](zeta),i=1..N)]:
 

> A:=genmatrix(eqns,Y,'b1'):
 

> if N>2 then A:=map(evalf,A):end:
 

> evalm(A):
 

> b:=matrix(2*N,1):for i from 1 to 2*N do b[i,1]:=-b1[i];od:evalm(b):
 

> h:=eval(1/(N+1));
 

`/`(1, 11) (15)
 

> J:=jordan(A,S):
 

> mat:=evalm(S&*exponential(J,zeta)&*inverse(S)):
 

> mat1:=evalm(subs(zeta=zeta-zeta1,evalm(mat))):
 

> b2:=evalm(subs(zeta=zeta1,evalm(b))):
 

> mat2:=evalm(mat1&*b2):
 

> mat2:=map(expand,mat2):
 

> mat3:=map(int,mat2,zeta1=0..zeta):
 

> Y0:=matrix(2*N,1);
 

array( 1 .. 20, 1 .. 1, [ ] ) (16)
 

> for i to N do Y0[i,1]:=p[i];od:
 

> for i to N do Y0[N+i,1]:=c[i]:od:
 

> evalm(Y0):
 

> Y:=evalm(mat&*Y0+mat3):
 

For calculating the constants, the solution is evaluated at y = 0 and y = H. 

> sol0:=map(eval,evalm(subs(zeta=0,evalm(Y)))):
 

> sol1:=map(eval,evalm(subs(zeta=epsilon*H/h,evalm(Y)))):
 

The boundary condition at y = 0 (bc3) yields N nonlinear algebraic equations. 

> for i to N do Eq[i]:=subs(diff(u(x,y),y)=epsilon/h*c[i],u(x,y)=p[i],x=i*h,bc3);od;
 

 

 

 

 

 

 

 

 

 

`+`(`*`(11, `*`(c[1])), `-`(`*`(`^`(p[1], 4))))
`+`(`*`(11, `*`(c[2])), `-`(`*`(`^`(p[2], 4))))
`+`(`*`(11, `*`(c[3])), `-`(`*`(`^`(p[3], 4))))
`+`(`*`(11, `*`(c[4])), `-`(`*`(`^`(p[4], 4))))
`+`(`*`(11, `*`(c[5])), `-`(`*`(`^`(p[5], 4))))
`+`(`*`(11, `*`(c[6])), `-`(`*`(`^`(p[6], 4))))
`+`(`*`(11, `*`(c[7])), `-`(`*`(`^`(p[7], 4))))
`+`(`*`(11, `*`(c[8])), `-`(`*`(`^`(p[8], 4))))
`+`(`*`(11, `*`(c[9])), `-`(`*`(`^`(p[9], 4))))
`+`(`*`(11, `*`(c[10])), `-`(`*`(`^`(p[10], 4)))) (17)
 

The boundary condition at y = H yields N linear algebraic equations. 

> for i to N do Eq[N+i]:=evalf(subs(diff(u(x,y),y)=epsilon/h*sol1[N+i,1],u(x,y)=sol1[i,1],bc4));od;
 

 

 

 

 

 

 

 

 

 

`+`(`*`(3858.514108, `*`(p[1])), `-`(`*`(4653.164388, `*`(p[2]))), `*`(3033.298877, `*`(p[3])), `-`(`*`(1287.203492, `*`(p[4]))), `*`(382.331788, `*`(p[5])), `-`(`*`(83.702002, `*`(p[6]))), `*`(13.125...
`+`(`*`(3858.514108, `*`(p[1])), `-`(`*`(4653.164388, `*`(p[2]))), `*`(3033.298877, `*`(p[3])), `-`(`*`(1287.203492, `*`(p[4]))), `*`(382.331788, `*`(p[5])), `-`(`*`(83.702002, `*`(p[6]))), `*`(13.125...
`+`(`*`(3858.514108, `*`(p[1])), `-`(`*`(4653.164388, `*`(p[2]))), `*`(3033.298877, `*`(p[3])), `-`(`*`(1287.203492, `*`(p[4]))), `*`(382.331788, `*`(p[5])), `-`(`*`(83.702002, `*`(p[6]))), `*`(13.125...
`+`(`*`(3858.514108, `*`(p[1])), `-`(`*`(4653.164388, `*`(p[2]))), `*`(3033.298877, `*`(p[3])), `-`(`*`(1287.203492, `*`(p[4]))), `*`(382.331788, `*`(p[5])), `-`(`*`(83.702002, `*`(p[6]))), `*`(13.125...
`+`(`-`(`*`(4652.719290, `*`(p[1]))), `*`(6892.416885, `*`(p[2])), `-`(`*`(5939.614617, `*`(p[3]))), `*`(3416.111850, `*`(p[4])), `-`(`*`(1370.173173, `*`(p[5]))), `*`(396.812172, `*`(p[6])), `-`(`*`(...
`+`(`-`(`*`(4652.719290, `*`(p[1]))), `*`(6892.416885, `*`(p[2])), `-`(`*`(5939.614617, `*`(p[3]))), `*`(3416.111850, `*`(p[4])), `-`(`*`(1370.173173, `*`(p[5]))), `*`(396.812172, `*`(p[6])), `-`(`*`(...
`+`(`-`(`*`(4652.719290, `*`(p[1]))), `*`(6892.416885, `*`(p[2])), `-`(`*`(5939.614617, `*`(p[3]))), `*`(3416.111850, `*`(p[4])), `-`(`*`(1370.173173, `*`(p[5]))), `*`(396.812172, `*`(p[6])), `-`(`*`(...
`+`(`-`(`*`(4652.719290, `*`(p[1]))), `*`(6892.416885, `*`(p[2])), `-`(`*`(5939.614617, `*`(p[3]))), `*`(3416.111850, `*`(p[4])), `-`(`*`(1370.173173, `*`(p[5]))), `*`(396.812172, `*`(p[6])), `-`(`*`(...
`+`(`*`(3033.288274, `*`(p[1])), `-`(`*`(5940.242143, `*`(p[2]))), `*`(7274.187535, `*`(p[3])), `-`(`*`(6023.523132, `*`(p[4]))), `*`(3429.538896, `*`(p[5])), `-`(`*`(1372.844114, `*`(p[6]))), `*`(395...
`+`(`*`(3033.288274, `*`(p[1])), `-`(`*`(5940.242143, `*`(p[2]))), `*`(7274.187535, `*`(p[3])), `-`(`*`(6023.523132, `*`(p[4]))), `*`(3429.538896, `*`(p[5])), `-`(`*`(1372.844114, `*`(p[6]))), `*`(395...
`+`(`*`(3033.288274, `*`(p[1])), `-`(`*`(5940.242143, `*`(p[2]))), `*`(7274.187535, `*`(p[3])), `-`(`*`(6023.523132, `*`(p[4]))), `*`(3429.538896, `*`(p[5])), `-`(`*`(1372.844114, `*`(p[6]))), `*`(395...
`+`(`*`(3033.288274, `*`(p[1])), `-`(`*`(5940.242143, `*`(p[2]))), `*`(7274.187535, `*`(p[3])), `-`(`*`(6023.523132, `*`(p[4]))), `*`(3429.538896, `*`(p[5])), `-`(`*`(1372.844114, `*`(p[6]))), `*`(395...
`+`(`-`(`*`(1286.902661, `*`(p[1]))), `*`(3416.016222, `*`(p[2])), `-`(`*`(6022.990988, `*`(p[3]))), `*`(7288.502688, `*`(p[4])), `-`(`*`(6024.985893, `*`(p[5]))), `*`(3430.417815, `*`(p[6])), `-`(`*`...
`+`(`-`(`*`(1286.902661, `*`(p[1]))), `*`(3416.016222, `*`(p[2])), `-`(`*`(6022.990988, `*`(p[3]))), `*`(7288.502688, `*`(p[4])), `-`(`*`(6024.985893, `*`(p[5]))), `*`(3430.417815, `*`(p[6])), `-`(`*`...
`+`(`-`(`*`(1286.902661, `*`(p[1]))), `*`(3416.016222, `*`(p[2])), `-`(`*`(6022.990988, `*`(p[3]))), `*`(7288.502688, `*`(p[4])), `-`(`*`(6024.985893, `*`(p[5]))), `*`(3430.417815, `*`(p[6])), `-`(`*`...
`+`(`-`(`*`(1286.902661, `*`(p[1]))), `*`(3416.016222, `*`(p[2])), `-`(`*`(6022.990988, `*`(p[3]))), `*`(7288.502688, `*`(p[4])), `-`(`*`(6024.985893, `*`(p[5]))), `*`(3430.417815, `*`(p[6])), `-`(`*`...
`+`(`*`(382.327953, `*`(p[1])), `-`(`*`(1370.354689, `*`(p[2]))), `*`(3429.497343, `*`(p[3])), `-`(`*`(6025.177349, `*`(p[4]))), `*`(7288.463045, `*`(p[5])), `-`(`*`(6025.395860, `*`(p[6]))), `*`(3429...
`+`(`*`(382.327953, `*`(p[1])), `-`(`*`(1370.354689, `*`(p[2]))), `*`(3429.497343, `*`(p[3])), `-`(`*`(6025.177349, `*`(p[4]))), `*`(7288.463045, `*`(p[5])), `-`(`*`(6025.395860, `*`(p[6]))), `*`(3429...
`+`(`*`(382.327953, `*`(p[1])), `-`(`*`(1370.354689, `*`(p[2]))), `*`(3429.497343, `*`(p[3])), `-`(`*`(6025.177349, `*`(p[4]))), `*`(7288.463045, `*`(p[5])), `-`(`*`(6025.395860, `*`(p[6]))), `*`(3429...
`+`(`*`(382.327953, `*`(p[1])), `-`(`*`(1370.354689, `*`(p[2]))), `*`(3429.497343, `*`(p[3])), `-`(`*`(6025.177349, `*`(p[4]))), `*`(7288.463045, `*`(p[5])), `-`(`*`(6025.395860, `*`(p[6]))), `*`(3429...
`+`(`-`(`*`(83.259147, `*`(p[1]))), `*`(396.141711, `*`(p[2])), `-`(`*`(1372.017216, `*`(p[3]))), `*`(3429.889887, `*`(p[4])), `-`(`*`(6025.047339, `*`(p[5]))), `*`(7288.569251, `*`(p[6])), `-`(`*`(60...
`+`(`-`(`*`(83.259147, `*`(p[1]))), `*`(396.141711, `*`(p[2])), `-`(`*`(1372.017216, `*`(p[3]))), `*`(3429.889887, `*`(p[4])), `-`(`*`(6025.047339, `*`(p[5]))), `*`(7288.569251, `*`(p[6])), `-`(`*`(60...
`+`(`-`(`*`(83.259147, `*`(p[1]))), `*`(396.141711, `*`(p[2])), `-`(`*`(1372.017216, `*`(p[3]))), `*`(3429.889887, `*`(p[4])), `-`(`*`(6025.047339, `*`(p[5]))), `*`(7288.569251, `*`(p[6])), `-`(`*`(60...
`+`(`-`(`*`(83.259147, `*`(p[1]))), `*`(396.141711, `*`(p[2])), `-`(`*`(1372.017216, `*`(p[3]))), `*`(3429.889887, `*`(p[4])), `-`(`*`(6025.047339, `*`(p[5]))), `*`(7288.569251, `*`(p[6])), `-`(`*`(60...
`+`(`*`(13.760632, `*`(p[1])), `-`(`*`(85.040984, `*`(p[2]))), `*`(396.297985, `*`(p[3])), `-`(`*`(1372.110554, `*`(p[4]))), `*`(3429.753632, `*`(p[5])), `-`(`*`(6024.358765, `*`(p[6]))), `*`(7282.176...
`+`(`*`(13.760632, `*`(p[1])), `-`(`*`(85.040984, `*`(p[2]))), `*`(396.297985, `*`(p[3])), `-`(`*`(1372.110554, `*`(p[4]))), `*`(3429.753632, `*`(p[5])), `-`(`*`(6024.358765, `*`(p[6]))), `*`(7282.176...
`+`(`*`(13.760632, `*`(p[1])), `-`(`*`(85.040984, `*`(p[2]))), `*`(396.297985, `*`(p[3])), `-`(`*`(1372.110554, `*`(p[4]))), `*`(3429.753632, `*`(p[5])), `-`(`*`(6024.358765, `*`(p[6]))), `*`(7282.176...
`+`(`*`(13.760632, `*`(p[1])), `-`(`*`(85.040984, `*`(p[2]))), `*`(396.297985, `*`(p[3])), `-`(`*`(1372.110554, `*`(p[4]))), `*`(3429.753632, `*`(p[5])), `-`(`*`(6024.358765, `*`(p[6]))), `*`(7282.176...
`+`(`-`(`*`(1.7763726, `*`(p[1]))), `*`(13.936468, `*`(p[2])), `-`(`*`(85.048253, `*`(p[3]))), `*`(396.252442, `*`(p[4])), `-`(`*`(1371.340087, `*`(p[5]))), `*`(3423.655191, `*`(p[6])), `-`(`*`(5984.7...
`+`(`-`(`*`(1.7763726, `*`(p[1]))), `*`(13.936468, `*`(p[2])), `-`(`*`(85.048253, `*`(p[3]))), `*`(396.252442, `*`(p[4])), `-`(`*`(1371.340087, `*`(p[5]))), `*`(3423.655191, `*`(p[6])), `-`(`*`(5984.7...
`+`(`-`(`*`(1.7763726, `*`(p[1]))), `*`(13.936468, `*`(p[2])), `-`(`*`(85.048253, `*`(p[3]))), `*`(396.252442, `*`(p[4])), `-`(`*`(1371.340087, `*`(p[5]))), `*`(3423.655191, `*`(p[6])), `-`(`*`(5984.7...
`+`(`-`(`*`(1.7763726, `*`(p[1]))), `*`(13.936468, `*`(p[2])), `-`(`*`(85.048253, `*`(p[3]))), `*`(396.252442, `*`(p[4])), `-`(`*`(1371.340087, `*`(p[5]))), `*`(3423.655191, `*`(p[6])), `-`(`*`(5984.7...
`+`(`*`(.1835672, `*`(p[1])), `-`(`*`(1.781117, `*`(p[2]))), `*`(13.865369, `*`(p[3])), `-`(`*`(84.306946, `*`(p[4]))), `*`(390.136308, `*`(p[5])), `-`(`*`(1331.859755, `*`(p[6]))), `*`(3226.042819, `...
`+`(`*`(.1835672, `*`(p[1])), `-`(`*`(1.781117, `*`(p[2]))), `*`(13.865369, `*`(p[3])), `-`(`*`(84.306946, `*`(p[4]))), `*`(390.136308, `*`(p[5])), `-`(`*`(1331.859755, `*`(p[6]))), `*`(3226.042819, `...
`+`(`*`(.1835672, `*`(p[1])), `-`(`*`(1.781117, `*`(p[2]))), `*`(13.865369, `*`(p[3])), `-`(`*`(84.306946, `*`(p[4]))), `*`(390.136308, `*`(p[5])), `-`(`*`(1331.859755, `*`(p[6]))), `*`(3226.042819, `...
`+`(`*`(.1835672, `*`(p[1])), `-`(`*`(1.781117, `*`(p[2]))), `*`(13.865369, `*`(p[3])), `-`(`*`(84.306946, `*`(p[4]))), `*`(390.136308, `*`(p[5])), `-`(`*`(1331.859755, `*`(p[6]))), `*`(3226.042819, `...
`+`(`-`(`*`(0.95035e-2, `*`(p[1]))), `*`(.1088333, `*`(p[2])), `-`(`*`(1.0335078, `*`(p[3]))), `*`(7.7574718, `*`(p[4])), `-`(`*`(44.8267739, `*`(p[5]))), `*`(192.5636291, `*`(p[6])), `-`(`*`(586.3217...
`+`(`-`(`*`(0.95035e-2, `*`(p[1]))), `*`(.1088333, `*`(p[2])), `-`(`*`(1.0335078, `*`(p[3]))), `*`(7.7574718, `*`(p[4])), `-`(`*`(44.8267739, `*`(p[5]))), `*`(192.5636291, `*`(p[6])), `-`(`*`(586.3217...
`+`(`-`(`*`(0.95035e-2, `*`(p[1]))), `*`(.1088333, `*`(p[2])), `-`(`*`(1.0335078, `*`(p[3]))), `*`(7.7574718, `*`(p[4])), `-`(`*`(44.8267739, `*`(p[5]))), `*`(192.5636291, `*`(p[6])), `-`(`*`(586.3217...
`+`(`-`(`*`(0.95035e-2, `*`(p[1]))), `*`(.1088333, `*`(p[2])), `-`(`*`(1.0335078, `*`(p[3]))), `*`(7.7574718, `*`(p[4])), `-`(`*`(44.8267739, `*`(p[5]))), `*`(192.5636291, `*`(p[6])), `-`(`*`(586.3217...
(18)
 

Since the equations are nonlinear Maple's 'fsolve' is used to solve for the constants: 

> csol:=fsolve({seq(Eq[i],i=1..2*N)},{seq(c[i],i=1..N),seq(p[i],i=1..N)});
 

{c[9] = 0.8277548289e-1, c[8] = 1.208912783, c[7] = 1.103795551, c[5] = 0.3605297735e-1, c[6] = .1259009972, c[10] = 0.1460469850e-1, p[1] = -.6902338498, p[3] = -1.096798643, p[2] = -2.191015105, c[4...
{c[9] = 0.8277548289e-1, c[8] = 1.208912783, c[7] = 1.103795551, c[5] = 0.3605297735e-1, c[6] = .1259009972, c[10] = 0.1460469850e-1, p[1] = -.6902338498, p[3] = -1.096798643, p[2] = -2.191015105, c[4...
{c[9] = 0.8277548289e-1, c[8] = 1.208912783, c[7] = 1.103795551, c[5] = 0.3605297735e-1, c[6] = .1259009972, c[10] = 0.1460469850e-1, p[1] = -.6902338498, p[3] = -1.096798643, p[2] = -2.191015105, c[4...
{c[9] = 0.8277548289e-1, c[8] = 1.208912783, c[7] = 1.103795551, c[5] = 0.3605297735e-1, c[6] = .1259009972, c[10] = 0.1460469850e-1, p[1] = -.6902338498, p[3] = -1.096798643, p[2] = -2.191015105, c[4...
(19)
 

When 'fsolve' is used Maple returns values that do not make physical sense.  The dependent variable at y = 0 (pi, i=1..N) cannot be negative.  Since the equations are nonlinear there can be more than one solution.  To get the correct solution that makes physical sense the range should be provided for the constants (see Chapter 1). 

> csol:=fsolve({seq(Eq[i],i=1..2*N)},{seq(c[i]=0..1,i=1..N),seq(p[i]=0..1,i=1..N)});
 

{p[2] = .3210078119, p[10] = .7561371250, c[2] = 0.9653164793e-3, c[1] = 0.7314833686e-4, c[3] = 0.3700447301e-2, c[4] = 0.8191872861e-2, p[1] = .1684221804, p[6] = .6724477879, p[8] = .7322608786, c[...
{p[2] = .3210078119, p[10] = .7561371250, c[2] = 0.9653164793e-3, c[1] = 0.7314833686e-4, c[3] = 0.3700447301e-2, c[4] = 0.8191872861e-2, p[1] = .1684221804, p[6] = .6724477879, p[8] = .7322608786, c[...
{p[2] = .3210078119, p[10] = .7561371250, c[2] = 0.9653164793e-3, c[1] = 0.7314833686e-4, c[3] = 0.3700447301e-2, c[4] = 0.8191872861e-2, p[1] = .1684221804, p[6] = .6724477879, p[8] = .7322608786, c[...
{p[2] = .3210078119, p[10] = .7561371250, c[2] = 0.9653164793e-3, c[1] = 0.7314833686e-4, c[3] = 0.3700447301e-2, c[4] = 0.8191872861e-2, p[1] = .1684221804, p[6] = .6724477879, p[8] = .7322608786, c[...
{p[2] = .3210078119, p[10] = .7561371250, c[2] = 0.9653164793e-3, c[1] = 0.7314833686e-4, c[3] = 0.3700447301e-2, c[4] = 0.8191872861e-2, p[1] = .1684221804, p[6] = .6724477879, p[8] = .7322608786, c[...
(20)
 

> assign(csol);
 

> YY:=map(eval,Y):
 

> for i from 1 to N do u[i](zeta):=eval((YY[i,1]));od:
 

> for i from 0 to N+1 do u[i](zeta):=eval(u[i](zeta));od:
 

> for i from 0 to N+1 do u[i](y):=eval(subs(zeta=epsilon*y/h,u[i](zeta)));od:
 

> for i from 0 to N+1 do p[i]:=plot(u[i](y),y=0..H,thickness=3);od:
 

> pp:=plot([seq(u[i](y),i=0..N+1,2)],y=0..H,thickness=3,legend=[seq(typeset(u[i],"(y)"),i=0..N+1,2)]);
 

PLOT(CURVES([[0., 0.], [0.108985770833333330e-1, 0.], [0.203813707291666674e-1, 0.], [0.310457639583333334e-1, 0.], [0.417808477083333324e-1, 0.], [0.524649094791666618e-1, 0.], [0.623704023958333298e... (21)
 

> display({pp},axes=boxed,title="Figure Exp. 6.10.",labels=[y,"u"]);
 

Plot_2d
 

> M:=5;
 

5 (22)
 

> T1:=[seq(evalf(i*H/M),i=0..M)];
 

[0., .1000000000, .2000000000, .3000000000, .4000000000, .5000000000] (23)
 

> for j from 1 to M do P[j]:=plot([seq([h*i,evalf(subs(y=T1[j],evalf(u[i](y))))],i=0..N+1)],style=line,thickness=3,axes=boxed,view=[0..1,0..1.1]):od:
 

> P[M+1]:=plot([seq([h*i,evalf(subs(x=i*h,1))],i=0..N+1)],style=line,thickness=3,axes=boxed):
 

> for j from 1 to M+1 do
 pt[j]:=textplot([0.5,evalf(subs(y=T1[j],u[5](y))),typeset(y,sprintf("=%4.2f",T1[j]))],align={above});
od:
 

> display({seq(P[i],i=1..M+1),seq(pt[i],i=1..M+1)},title="Figure Exp.6.11.",labels=[x,u]);
 

Plot_2d
 

> Ny:=30;
 

30 (24)
 

> PP:=matrix(N+2,Ny);
 

array( 1 .. 12, 1 .. 30, [ ] ) (25)
 

First, the boundaries x = 0 and y = 1 are defined. 

> for i to Ny do PP[1,i]:=0;od:
 

> for i to N+2 do PP[i,Ny]:=1;od:
 

The temperature inside the rectangle is obtained using the seimanalytical solution: 

> for i from 2 to N+2 do for j from 1 to Ny-1 do PP[i,j]:=evalf(subs(y=(j-1)*H/(Ny-1),u[i-1](y)));od;od:
 

> plotdata := [seq([ seq([(i-1)/(N+1),(j-1)*H/(Ny-1),PP[i,j]], i=1..N+2)], j=1..Ny)]:
 

> surfdata(plotdata,axes=boxed,title="Figure Exp. 6.12.",labels=[x,y,u],orientation=[-120,60] );
 

Plot
 

>