# Are the following Mathematica codes correct for solving wave equation PDE? [duplicate]

I wanna solve the following PDE of wave equation using Mathematica.

$$u_{tt}=u_{xx}$$

$$00$$

Initial Conditions:

$$\begin{cases}u(x,0)=sin(x) \\u_{t}(x,0)=1\end{cases}$$

Boundary Conditions:

$$\begin{cases}u(0,t)+u_{x}(0,t)=1\\u(\pi,t)+u_{x}(\pi,t)=-1\end{cases}$$

• I know the boundary and initial conditions are inconsistent.

Are the following codes correct?

weqn = D[u[x, t], {t, 2}] == D[u[x, t], {x, 2}];
ic = {u[x, 0] == Sin[x],Derivative[0, 1][u][x, 0] == 1 };
bc = {u[0, t] + Derivative[1, 0][u][0, t] == 1,
u[Pi, t] + Derivative[1, 0][u][Pi, t] == -1};
sol = NDSolve[{weqn, ic, bc}, u, {x, 0, Pi}, {t, 0, 10}];

• Yes! Apparently it looks fine. – zhk Jan 19 '19 at 3:51
• @zhk In this case, the solution happens to be correct, but it's no more than a coincidence. Just change u[0, t] + Derivative[1, 0][u][0, t] == 1 to e.g. u[0, t] + Derivative[1, 0][u][0, t] == 100, you'll find the solution doesn't change at all. To make the solution always correct, option like Method -> {"MethodOfLines", "DifferentiateBoundaryConditions" -> {True, "ScaleFactor" -> 20}} is necessary. One can also turn to FiniteElement method, of course. Please check the linked question for more information. – xzczd Jan 19 '19 at 6:41
• @xzczd Thx for pointing that out. – zhk Jan 19 '19 at 6:43
• Are the b.c. correct? Only for bc = {u[0, t] - Derivative[1, 0][u][0, t] == 1 , u[Pi, t] + Derivative[1, 0][u][Pi, t] == -1}; I get finite symmetric periodic solution! – Ulrich Neumann Jan 19 '19 at 13:36
• @xzczd here the solution of a hyperbolic type equation is discussed, and in your example, a solution has been given of a parabolic type equation. How can these problems be duplicates? – Alex Trounev Jan 19 '19 at 15:50