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}

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. Chcemy mieć teraz pojedynczy impuls początkowy poruszający się w prawo, w stronę sztywno umocowanego końca struny.

f=Exp[-50*(x-c*t)^2]

wp3={u[x,0]==f/.t->0,Derivative[0,1][u][x,0]==D[f,t]/.t->0}

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

L=1;

wb3={u[-L,t]==(f/.{t->0,x->-L}),u[L,t]==(f/.{t->0,x->L})}

c=1;tmax=5;

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

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`*"]  *)