I got this solution from a PDE. I normally use unapply on the RHS of the solution to make it a function.

But in this, the PDE solution contain some extra stuff at the end. Which **"Where { .....}"**

So the only way for me, was to manually copy the initial part of the solution shown on the screen in order to use it later.

I could not find a way to program this part.

Here is an example

restart; f:=(r,z)->(r-a)*sin(z/H*Pi); lap:=VectorCalculus:-Laplacian(u(r, z, t), cylindrical[r, theta,z]); bc:=u(r,0,t)=0,u(r,H,t)=0, u(a,z,t)=0; ic:=u(r,z,0) = f(r,z); sol:=pdsolve([diff(u(r,z,t),t) = k*lap,bc,ic],u(r,z,t)) assuming a>0,k>0;

THis gives

Which I verified to be correct.

In case you are not able to get this solution (it needs Maple 2019.1 and Physics 368), here is the lprint

lprint(sol) u(r,z,t) = `casesplit/ans`(Sum(-BesselJ(0,lambda[n]/a*r)*sin(z/H*Pi)*exp(-k*t*( H^2*lambda[n]^2+Pi^2*a^2)/a^2/H^2)*a/lambda[n]^2*Pi*BesselJ(1,lambda[n])* StruveH(0,lambda[n])/hypergeom([1/2],[1, 2],-lambda[n]^2),n = 1 .. infinity),{ And(lambda[n] = BesselJZeros(0,n),0 < lambda[n])})

Next to use it (plot., evaluate, etc...) changed the sum go to 15 terms (more than enough) and also replaced a->1,H->3,k->1/100 and also replaced lambda[n] with BesselJ zeros as follows

sol:=subs({infinity=15,a=1,H=3,k=1/100,lambda[n]=BesselJZeros(0, n)},sol);

Before I use unapply, I had to extract the part of the solution up to where it says "where..." since I do not need the rest any more, since I allready replaced lambda[n] with BesselJZeros calls.

This I did by hand using copy/paste from the screen. Now I am able to finish the task:

solFiltered:=Sum(-BesselJ(0, BesselJZeros(0, n)*r)*sin(z*Pi/3)* exp(-t*(9*BesselJZeros(0, n)^2 + Pi^2)/900)*Pi* BesselJ(1, BesselJZeros(0, n))* StruveH(0, BesselJZeros(0, n))/(BesselJZeros(0, n)^2* hypergeom([1/2], [1, 2], -BesselJZeros(0, n)^2)), n = 1 .. 15): mapleSol:=unapply(solFiltered,r,z,t); value(mapleSol(.5,2,1));

Which prints -0.4107565091 which is the correct value. It matches my hand solution and also match numerical solution.

What would a better way to do the above than what I did? i.e. to obtain the solFitered above using code only?

Consider a wave y=f(x,t) with amplitude modulation such that it becomes

y_new=(1+A)*f(x,t), where A=A(t) is a small perturbation.

How can I do the simulation to test the robustness of the system to see if the wave is stable / unstable under perturbation? As the time t goes to infinity, I want to see if the original wave is distorted or not under either random or prescribed perturbation.

P.S. For example, f(x,t) = (sech(0.5*x-0.1*t))^2.

Thank you for your help.

Hi,

Can someone please help me plot a bunch of tangent lines to approximate the given space curve? I know how to do it in another CAS system however I am trying to make the switch over to maple. Question.mw.