Jednowymiarowe (jedna współrzędna przestrzenna x) równanie falowe

ClearAll["Global`*"]

$Assumptions=c>0;

eq3={D[u[x,t],{x,2}]-(1/c^2)*D[u[x,t],{t,2}]==0}

Teraz wprowadzamy warunki początkowe i brzegowe.
Warunki początkowe dla równania drugiego rzędu w czasie oznaczają, że musimy podać postać funkcji u i jej pierwszej pochodnej w chwili t=0.

Dla fali na strunie o skończonej długości, x ∈ [-L,L], odpowiada to podaniu kształtu struny w chwili t=0 oraz rozkładu prędkości punktów struny w chwili t=0. W chwili początkowej wszystkie punkty struny miały zerową prędkość. Rozważamy prosty, sinusoidalny kształt struny w chwili t=0.

L=1;

c=1;

wp3={u[x,0]==(Cos[Pi*x/(2*L)]),Derivative[0,1][u][x,0]==0}

Warunki brzegowe: zakładamy, że fala występuje na strunie, która jest sztywno umocowana na obu końcach.

wb3={u[-L,t]==0,u[L,t]==0}

tmax=5;

s32=NDSolve[{eq3,wp3,wb3},u,{x,-L,L},{t,0,tmax}];

Plot3D[Evaluate[u[x,t]/.s32[[1]]],{t,0,tmax},{x,-L,L},AxesLabel->{"t","x","u(x,t)"},PlotRange->All]

Animate[Plot[Evaluate[u[x,t]/.s32[[1]]],{x,-L,L},PlotRange->{-1.1,1.1},AxesLabel->{"x","u(x,t)"}],{t,0,4}]

(*  ClearAll["Global`*"]  *)