Assignment 9 Problem 7

Classical Mathematical Methods in Engineering
April 25, 2026

Problem 7

I am always going to assume rho_0/epsilon = 1 in the calculations below.  I will also mostly specialize to L=1.  In any case, 1 < alpha < 2 and beta > 0.  

Here is the initial wave form.  Note the conditions on alpha ensure w’ > 0.

wzero[x_,alpha_,L_]=Piecewise[{{alpha x,0 < x < L/2},{(alpha-1) L + (2-alpha) x,L/2<x < L}}]

initialplot=Plot[wzero[x,3/2,1],{x,0,1}]

Initial velocity

vzero[x_,beta_,L_]=beta Sin[ Pi x/L]

Here are the coefficients a_j:

acoeff[j_,alpha_,L_]=(2/L)Integrate[(wzero[x,alpha,L]-x) Sin[j Pi x/L],{x,0,L},Assumptions->L>0]

and the coefficients a_j after simplification:

racoeff[j_,alpha_,L_]=(4L/(j^2 Pi^2)) (alpha-1) Sin[j Pi/2]

One nonzero coefficient b_j, namely b_1:

bcoeff[beta_,L_]=(2/Pi) Integrate[vzero[x,beta,L] Sin[Pi x/L],{x,0,L},Assumptions->L>0]

The basic superposition solution is this:

partialsum[x_,t_,k_,alpha_,beta_]:=x+Sum[racoeff[j,alpha,1] Cos[j Pi t] Sin[j Pi x],{j,1,k}]+bcoeff[beta,1] Sin[Pi t] Sin[Pi x]

The following plots show we’ve got the coefficients correct:

Show[initialplot,Plot[partialsum[x,0,1,3/2,1],{x,0,1}]]

Show[initialplot,Plot[partialsum[x,0,10,3/2,1],{x,0,1}]]

Show[initialplot,Plot[partialsum[x,0,20,3/2,1],{x,0,1}]]

10 terms seems to give a pretty good approximation; 20 terms seems to give a very good approximation (at least at this point).

wtzero[x_,t_,k_,alpha_,beta_]:=D[partialsum[x,t,k,alpha,beta],t]

wtzerofun[x_,t_]=wtzero[x,t,10,1,1]

Plot[wtzerofun[x,0],{x,0,1}]

Note that taking alpha = 1 and beta = 1 as we have done here may not, and as we will see below does not, lead to a physically reasonable model for internal deformation.

Here is animation plotted in the transverse style.  It is easier to see when the condition w_x > 0 is violated from such an animation/plot.  

when beta = 0, there should be no problem.  Here we take alpha = 3/2:

Animate[Plot[partialsum[x,t,10,3/2,0],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,10}]

This is as expected.  

When (too much) initial velocity is added, one may expect violation of the condition w_x > 0 as shown here:

Animate[Plot[partialsum[x,t,10,3/2,1],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,1}]

Note the presence of negative x derivatives for t around 1/4.

For either smaller values of alpha (closer to alpha = 1) or smaller values of beta, one should expect the situation to improve.  Here we drop alpha from 3/2 to 1.1 and beta from 1 to 1/2:

Animate[Plot[partialsum[x,t,10,1.1,1/2],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,2}]

We can try to find the maximum beta for a given alpha.  

Starting with alpha = 1 in the intended case of initial velocity, the maximum value of beta appears to be also about betamax = 1 with the minimum x derivative w_x = 0 attained around (x,t) = (1/1/2).

Animate[Plot[partialsum[x,t,10,1,1],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,1}]

The following attempts a verification of this assertion:

wxfun[x_,t_,k_,alpha_,beta_]:=D[partialsum[x,t,k,alpha,beta],x];

wxfunone[x_,t_]=wxfun[x,t,10,1,1];

Plot[partialsum[x,0.5,10,1,1],{x,0,1}]

Plot[wxfunone[x,0.5],{x,0,1}]

Show[Plot3D[wxfunone[x,t],{x,0,1},{t,0,1},ViewPoint->1.5 {1.3, 0.4, 0.5}],ParametricPlot3D[{1,t,0},{t,0,1}]]

Next, let’s try to determine betamax when alpha = 3/2.

Animate[Plot[partialsum[x,t,10,3/2,1],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,1}]

Animate[Plot[partialsum[x,t,10,3/2,0.1],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,1}]

Animate[Plot[partialsum[x,t,10,3/2,0.5],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,1}]

This suggests a value of about betamax = 0.5

wxfuntwo[x_,t_,beta_]=wxfun[x,t,100,3/2,beta];

Plot[partialsum[x,0.5,10,3/2,0.5],{x,0,1}]

Plot[wxfuntwo[x,0.35,0.5],{x,0,1},AxesOrigin->{0,0}]

Plot[wxfuntwo[x,0.4,0.5],{x,0,1},AxesOrigin->{0,0}]

Plot[wxfuntwo[x,0.45,0.5],{x,0,1},AxesOrigin->{0,0}]

Plot[wxfuntwo[x,0.4,0.5],{x,0,1},AxesOrigin->{0,0}]

Plot[wxfuntwo[x,0.4,0.5],{x,0,1},AxesOrigin->{0,0},PlotRange->{{-0.1,1},{-0.1,2.5}}]

Animate[Plot[wxfuntwo[x,t,0.5],{x,0,1},AxesOrigin->{0,0},PlotRange->{{-0.1,1},{-0.1,2.5}}],{t,0,0.5}]

Animate[Plot[wxfuntwo[x,t,0.4],{x,0,1},AxesOrigin->{0,0},PlotRange->{{-0.1,1},{-0.1,2.5}}],{t,0,0.5}]

Animate[Plot[wxfuntwo[x,t,0.45],{x,0,1},AxesOrigin->{0,0},PlotRange->{{-0.1,1},{-0.1,2.5}}],{t,0,0.5}]

This suggests the critical value is probably beta = 0.5, and beta = 0.4 is definitely fine.

Here is an animation using the transverse model/visualization:

step[a_,b_,j_,k_]=a+j (b-a)/k;
aniplot[t_,alpha_,beta_]:=ListPlot[Table[{partialsum[step[0,1,j,20],t,100,alpha,beta],0},{j,0,20}],PlotStyle->{AbsolutePointSize[8],Black},PlotRange->{{-0.1,1.1},{-0.1,0.1}}]

aniplot[0.5,3/2,1]

Animate[aniplot[t,3/2,1],{t,0,10}]

You can see here that when alpha = 3/2 and beta = 1, the internal oscillations become external or break the medium.  

Dropping beta to 0.5 gives maximum compressions at the endpoints.

Animate[aniplot[t,3/2,0.5],{t,0,10}]

Extreme case giving the condition beta < 2-alpha:

newpartial[t_,k_]:=Sum[(-1)^j Cos[(2j+1) Pi t]/(2j+1),{j,0,k}]

Show[Plot[newpartial[t,100],{t,0,Pi/2}],Plot[Pi/4,{t,0,Pi/2}]]

Rest points when beta > 0?

Animate[Plot[partialsum[x,t,10,1.3,0.5],{x,0,1},PlotRange->{{-0.1,1.1},{-0.1,1.1}},PlotStyle->Black],{t,0,5}]