Example 8.12.mw

Example 8.12 Distribution of Overpotential in a Porous Electrode 

Equation (8.1.28) is solved in Maple and the results obtained are given below: 

> restart; -1; with(inttrans); -1; with(plots); -1
 

> eq:=diff(u(x,t),t)=diff(u(x,t),x$2)-nu^2*u(x,t);
 

diff(u(x, t), t) = `+`(diff(diff(u(x, t), x), x), `-`(`*`(`^`(nu, 2), `*`(u(x, t))))) (1)
 

> u(x,0):=0;
 

0 (2)
 

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

diff(u(x, t), x) = `+`(`-`(delta)) (3)
 

> bc2:=diff(u(x,t),x)=delta*beta;
 

diff(u(x, t), x) = `*`(delta, `*`(beta)) (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), `-`(`*`(`^`(nu, 2), `*`(U(x))))) (5)
 

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

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

diff(U(x), x) = `+`(`-`(`/`(`*`(delta), `*`(s)))) (6)
 

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

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

diff(U(x), x) = `/`(`*`(delta, `*`(beta)), `*`(s)) (7)
 

> dsolve(eqs,U(x));
 

U(x) = `+`(`*`(_C1, `*`(sin(`*`(`^`(`+`(`-`(s), `-`(`*`(`^`(nu, 2)))), `/`(1, 2)), `*`(x))))), `*`(_C2, `*`(cos(`*`(`^`(`+`(`-`(s), `-`(`*`(`^`(nu, 2)))), `/`(1, 2)), `*`(x)))))) (8)
 

> U(x):=c[1]*cosh((s+nu^2)^(1/2)*x)+c[2]*sinh((s+nu^2)^(1/2)*x);
 

`+`(`*`(c[1], `*`(cosh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1, 2)), `*`(x))))), `*`(c[2], `*`(sinh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1, 2)), `*`(x)))))) (9)
 

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

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

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

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

`+`(`/`(`*`(delta, `*`(`+`(cosh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1, 2)))), beta), `*`(cosh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1, 2)), `*`(x)))))), `*`(sinh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1... (10)
 

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

`/`(`*`(delta, `*`(`+`(cosh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1, 2)), `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(`^`(`+`(s, `*`(`^`(nu, 2))), `/`(1, 2)), `*`(x))), `*`(beta))))), `*`(sinh(`*`(`^`(`+`(s, `... (11)
 

> U1(x):=subs(s=s-nu^2,U(x));
 

`/`(`*`(delta, `*`(`+`(cosh(`*`(`^`(s, `/`(1, 2)), `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(`^`(s, `/`(1, 2)), `*`(x))), `*`(beta))))), `*`(sinh(`*`(`^`(s, `/`(1, 2)))), `*`(`^`(s, `/`(1, 2)), `*`(`+`(s, `... (12)
 

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

`+`(`-`(`*`(delta, `*`(`+`(cosh(`*`(`^`(s, `/`(1, 2)), `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(`^`(s, `/`(1, 2)), `*`(x))), `*`(beta))))))) (13)
 

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

`*`(sinh(`*`(`^`(s, `/`(1, 2)))), `*`(`^`(s, `/`(1, 2)), `*`(`+`(`-`(s), `*`(`^`(nu, 2)))))) (14)
 

> solve(Q(s),s);
 

0, `*`(`^`(nu, 2)) (15)
 

> _EnvAllSolutions := true;
 

true (16)
 

> solve(Q(s),s);
 

`+`(`-`(`*`(`^`(Pi, 2), `*`(`^`(_Z1, 2))))), 0, `*`(`^`(nu, 2)) (17)
 

The roots are: 

> 0,0,nu^2,-n^2*Pi^2;
 

0, 0, `*`(`^`(nu, 2)), `+`(`-`(`*`(`^`(n, 2), `*`(`^`(Pi, 2))))) (18)
 

> mu0:=0;
 

0 (19)
 

> b[2]:=(s-mu0)^2*P(s)/Q(s);
 

`+`(`-`(`/`(`*`(`^`(s, `/`(3, 2)), `*`(delta, `*`(`+`(cosh(`*`(`^`(s, `/`(1, 2)), `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(`^`(s, `/`(1, 2)), `*`(x))), `*`(beta)))))), `*`(sinh(`*`(`^`(s, `/`(1, 2)))), `*`... (20)
 

> B[2]:=limit(b[2],s=0);
 

0 (21)
 

> b[1]:=diff(b[2],s):
 

> B[1]:=limit(b[1],s=0);
 

`/`(`*`(`+`(`-`(`*`(delta, `*`(beta))), `-`(delta))), `*`(`^`(nu, 2))) (22)
 

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

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

`+`(`/`(`*`(2, `*`(delta, `*`(`+`(cosh(`*`(`^`(mu, `/`(1, 2)), `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(`^`(mu, `/`(1, 2)), `*`(x))), `*`(beta))), `*`(`^`(mu, `/`(1, 2)))))), `*`(`+`(`*`(cosh(`*`(`^`(mu, `... (23)
 

> A[0]:=subs(mu^(1/2)=nu,mu^(3/2)=nu^3,mu=nu^2,A[n]):
 

> A[0]:=simplify(A[0]);
 

`/`(`*`(delta, `*`(`+`(cosh(`*`(nu, `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(nu, `*`(x))), `*`(beta))))), `*`(nu, `*`(sinh(nu)))) (24)
 

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

> vars:={cos(n*Pi)=(-1)^n,sin(n*Pi)=0};
 

{cos(`*`(n, `*`(Pi))) = `^`(-1, n), sin(`*`(n, `*`(Pi))) = 0} (25)
 

> A[n]:=simplify(subs(vars,A[n])):
 

> A[n]:=simplify(subs(vars,expand(A[n])));
 

`+`(`-`(`/`(`*`(2, `*`(delta, `*`(cos(`*`(n, `*`(Pi, `*`(x)))), `*`(`+`(1, `*`(`^`(-1, `+`(`-`(n))), `*`(beta))))))), `*`(`+`(`*`(`^`(n, 2), `*`(`^`(Pi, 2))), `*`(`^`(nu, 2))))))) (26)
 

> b1s:=B[1]*subs(mu0=0,1/(s-mu0));
 

`/`(`*`(`+`(`-`(`*`(delta, `*`(beta))), `-`(delta))), `*`(`^`(nu, 2), `*`(s))) (27)
 

> b1t:=invlaplace(b1s,s,t);
 

`+`(`-`(`/`(`*`(`+`(1, beta), `*`(delta)), `*`(`^`(nu, 2))))) (28)
 

> b2s:=B[2]*subs(mu0=0,1/(s-mu0)^2);
 

0 (29)
 

> b2t:=invlaplace(b2s,s,t);
 

0 (30)
 

> u0s:=subs(mu=nu^2,A[0]/(s-mu));
 

`/`(`*`(delta, `*`(`+`(cosh(`*`(nu, `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(nu, `*`(x))), `*`(beta))))), `*`(nu, `*`(sinh(nu), `*`(`+`(s, `-`(`*`(`^`(nu, 2)))))))) (31)
 

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

`/`(`*`(delta, `*`(`+`(cosh(`*`(nu, `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(nu, `*`(x))), `*`(beta))), `*`(exp(`*`(`^`(nu, 2), `*`(t)))))), `*`(nu, `*`(sinh(nu)))) (32)
 

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

`+`(`-`(`/`(`*`(2, `*`(delta, `*`(cos(`*`(n, `*`(Pi, `*`(x)))), `*`(`+`(1, `*`(`^`(-1, `+`(`-`(n))), `*`(beta))))))), `*`(`+`(`*`(`^`(n, 2), `*`(`^`(Pi, 2))), `*`(`^`(nu, 2))), `*`(`+`(s, `-`(mu))))))... (33)
 

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

`+`(`-`(`/`(`*`(2, `*`(delta, `*`(cos(`*`(n, `*`(Pi, `*`(x)))), `*`(`+`(1, `*`(`^`(-1, `+`(`-`(n))), `*`(beta))), `*`(exp(`*`(mu, `*`(t)))))))), `*`(`+`(`*`(`^`(n, 2), `*`(`^`(Pi, 2))), `*`(`^`(nu, 2)... (34)
 

> unt:=subs(mu=-n^2*Pi^2,unt);
 

`+`(`-`(`/`(`*`(2, `*`(delta, `*`(cos(`*`(n, `*`(Pi, `*`(x)))), `*`(`+`(1, `*`(`^`(-1, `+`(`-`(n))), `*`(beta))), `*`(exp(`+`(`-`(`*`(`^`(n, 2), `*`(`^`(Pi, 2), `*`(t))))))))))), `*`(`+`(`*`(`^`(n, 2)... (35)
 

> U:=b1t*exp(-nu^2*t)+b2t*exp(-nu^2*t)+simplify(u0t*exp(-nu^2*t))+exp(-nu^2*t)*Sum(unt,n=1..infinity);
 

`+`(`-`(`/`(`*`(`+`(1, beta), `*`(delta, `*`(exp(`+`(`-`(`*`(`^`(nu, 2), `*`(t)))))))), `*`(`^`(nu, 2)))), `/`(`*`(delta, `*`(`+`(cosh(`*`(nu, `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(nu, `*`(x))), `*`(bet...
`+`(`-`(`/`(`*`(`+`(1, beta), `*`(delta, `*`(exp(`+`(`-`(`*`(`^`(nu, 2), `*`(t)))))))), `*`(`^`(nu, 2)))), `/`(`*`(delta, `*`(`+`(cosh(`*`(nu, `*`(`+`(x, `-`(1))))), `*`(cosh(`*`(nu, `*`(x))), `*`(bet...
(36)
 

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

> pars:={nu=1,delta=1,beta=0.1};
 

{nu = 1, beta = .1, delta = 1} (37)
 

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

Plot
 

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

Plot_2d
 

In all the examples discussed in this chapter until now, the roots of q(s) were obtained analytically.  This is not always possible.  Often the roots should be obtained numerically as in section 7.1.4.  This is illustrated in the next example. 

>