Normal modes

u[x_,t_,n_,l_,c_]=Cos[n Pi/l c t]Sin[n Pi/l x]

Animate[Plot[u[x,t,1,1,1],{x,0,1},PlotRange->{-1,1}],
{t,0,2},AnimationRunning->False]

Animate[Plot[u[x,t,2,1,1],{x,0,1},PlotRange->{-1,1}],{t,0,2},AnimationRunning->False]

GraphicsArray[{
Plot[u[x,0,1,1,1],{x,0,1},PlotRange->{-1,1}],
Plot[u[x,0,2,1,1],{x,0,1},PlotRange->{-1,1}],
Plot[u[x,0,3,1,1],{x,0,1},PlotRange->{-1,1}]
},ImageSize->Medium]

Animate[
GraphicsArray[{
Plot[u[x,t,1,1,1],{x,0,1},PlotRange->{-1,1}],
Plot[u[x,t,2,1,1],{x,0,1},PlotRange->{-1,1}],
Plot[u[x,t,3,1,1],{x,0,1},PlotRange->{-1,1}]
},ImageSize->Large],
{t,0,2},
AnimationRunning->False]

D'Alembert solution for wave equation on a bounded interval

f[x_]=Piecewise[{{x/10,0<x<0.5},{(1-x)/10,0.5<x<1}}]

Plot[f[x],{x,-2,2},PlotRange->All]

fodd[x_]=Piecewise[{{-f[-x],-1<x<0},{f[x],0<x<1}}]

Plot[fodd[x],{x,-2,2},PlotRange->All]

Plot[fodd[1-Mod[x,2]],{x,-2,2},PlotRange->All]

foddext[x_]:=fodd[1-Mod[x,2]]

Plot[foddext[x],{x,-2,2},PlotRange->All]

Plot[{
foddext[x-0.2]/2,
foddext[x+0.2]/2,
(foddext[x-0.2]+foddext[x+0.2])/2},{x,-2,2}]

Animate[Plot[{foddext[x-t]/2,foddext[x+t]/2,(foddext[x-t]+foddext[x+t])/2},{x,-2,2},
PlotRange->{-0.05,0.05},PlotStyle->Thick],{t,0,2},AnimationRunning->False]

Animate[Plot[{foddext[x-t]/2,foddext[x+t]/2,(foddext[x-t]+foddext[x+t])/2},{x,0,1},
PlotRange->{-0.06,0.06},PlotStyle->{{Thick,Red,Opacity[0.35]},{Thick,Green,Opacity[0.35]},{Thick,Blue}}],{t,0,2},AnimationRunning->False]

myframes=Table[Plot[{foddext[x-t]/2,foddext[x+t]/2,(foddext[x-t]+foddext[x+t])/2},{x,0,1},
PlotRange->{-0.06,0.06},PlotStyle->{{Thick,Red,Opacity[0.35]},{Thick,Green,Opacity[0.35]},{Thick,Blue}},
Ticks->{{0,{1,"L"}},None}],{t,0,2,0.05}];

Export["wavesoln.gif",myframes]