I wanna model 1D wave equation and plot it, Here is my try so far,

 (* length *)
length = 1;
(* Wave Equation *)
weqn = D[WaveEq[x, t], t, t] == 20*D[WaveEq[x, t], x, x];

(* Initial Conditions*)
ic = {WaveEq[x, 0] == Sin[Pi*x], Derivative[0, 1][WaveEq][x, 0] == 0};
(* Boundry Conditions*)
bc = {WaveEq[0, t] == 0, WaveEq[length, t] == 0};

(* Calculation *)

sol1 = NDSolve[{weqn, ic, bc }, WaveEq[x, t], {x, 0, 1}, {t, 0, 1}]

Issue are, Have I declared boundary conditions properly and is implementation right?


1 Answer 1


Try this

ClearAll[u, x, t];
len = 1;
pde = D[u[x, t], t, t] == 20*D[u[x, t], x, x];
(*Initial Conditions*)
ic = {u[x, 0] == Sin[Pi*x], Derivative[0, 1][u][x, 0] == 0};
(*Boundry Conditions*)
bc = {u[0, t] == 0, u[len, t] == 0};
sol = u[x, t] /. First@DSolve[{pde, ic, bc}, u[x, t], {x, t}]

Which gives

Mathematica graphics

 Plot[sol /. t -> t0, {x, 0, 1}, PlotRange -> {Automatic, {-1, 1}}],
 {{t0, 0, "time"}, 0, 2, .01}

enter image description here

  • $\begingroup$ Does the manipulation of an interpolating function (sol) like this have 1. Any impact on your ram usage and 2. Any difference from using a table to numerically collate the solution set to then just manipulate through by stepping through the indexes of the collated table? $\endgroup$ Jul 31, 2019 at 3:36
  • $\begingroup$ @CATrevillian hi., I am not sure on these performance issues you raise. For me, I do not see much RAM use issue. But these are good questions. May be you can post this as separate question and someone more experienced with performance issues can better help. $\endgroup$
    – Nasser
    Jul 31, 2019 at 3:57
  • $\begingroup$ oh, I suppose I can ask a question, I was just hoping to hear that it didn’t have much impact (I have a method for collating the data as I inquired to, as my systems are usually large enough to kill my ram (16-32gb) while I play with the manipulate) using DSolve versus NDSolve. I will post a question in the morning maybe then, with a wiki response. Perhaps others will have better recommendations. Mind if I link to this answer when I do? $\endgroup$ Jul 31, 2019 at 4:05
  • 1
    $\begingroup$ @CATrevillian yes, ofcourse you can add link. Only issue I had with manipulate in terms of performance is when I was doing 3D animations and with some options added (I think it was Opacity) That made it very slow. But for basic ones like this, I did not notice any RAM issues so far. $\endgroup$
    – Nasser
    Jul 31, 2019 at 4:07
  • $\begingroup$ Thank you @nasser. Highly appriciate it. $\endgroup$ Jul 31, 2019 at 6:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.