Dwuwymiarowe (dwie współrzędna przestrzenne: x i y) równanie falowe

ClearAll["Global`*"]

$Assumptions=c>0;

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

(* dwa równoważne zapisy dwuwymiarowego równania falowego *)

eq1={(1/c^2)*D[u[t,x,y],{t,2}]==(Subscript[∇, {x,y}]^2)u[t,x,y]};

FullSimplify[eq==eq1]

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 po czasie w chwili t=0.

Dla drgającej kwadratowej membrany o rozmiarach, x,y ∈ [-L,L], odpowiada to podaniu kształtu powierzchni w chwili t=0 oraz rozkładu prędkości punktów membrany w chwili t=0. 
Zakładamy, że w chwili początkowej wszystkie punkty membrany mają zerową prędkość. Rozważamy prosty, sinusoidalny kształt membrany w chwili t=0.

L=1;

c=1;

wp={u[0,x,y]==Sin[Pi*x/L]*Sin[3*Pi*y/L],Derivative[1,0,0][u][0,x,y]==0};

Warunki brzegowe: zakładamy, że fala występuje membranie, która jest sztywno umocowana na wszystkich brzegach.

wb=DirichletCondition[u[t,x,y]==0,True];

tmax=4;

su=NDSolveValue[{(1/c^2)*D[u[t,x,y],{t,2}]==(Subscript[∇, {x,y}]^2)u[t,x,y],u[0,x,y]==Sin[Pi*x/L]*Sin[3*Pi*y/L],Derivative[1,0,0][u][0,x,y]==0,DirichletCondition[u[t,x,y]==0,True]},u,{t,0,tmax},{x,-L,L},{y,-L,L},Method->{"PDEDiscretization"->{"MethodOfLines",{"SpatialDiscretization"->"FiniteElement"}}}]

Plot3D[su[0.5,x,y],{x,-L,L},{y,-L,L},PlotRange->{-1,1}]

Plot3D[su[1.5,x,y],{x,-L,L},{y,-L,L},PlotRange->{-1,1}]

Animate[Plot3D[su[t,x,y],{x,-L,L},{y,-L,L},PlotRange->{-1,1},AxesLabel->{"x","y","u  "}],{t,0,tmax}]