This question already has an answer here:

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


$0<x<\pi , t>0$

Initial Conditions:

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

Boundary Conditions:


  • 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}];

marked as duplicate by xzczd differential-equations Jan 19 at 6:38

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    $\begingroup$ Yes! Apparently it looks fine. $\endgroup$ – zhk Jan 19 at 3:51
  • $\begingroup$ @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. $\endgroup$ – xzczd Jan 19 at 6:41
  • $\begingroup$ @xzczd Thx for pointing that out. $\endgroup$ – zhk Jan 19 at 6:43
  • $\begingroup$ 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! $\endgroup$ – Ulrich Neumann Jan 19 at 13:36
  • $\begingroup$ @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? $\endgroup$ – Alex Trounev Jan 19 at 15:50