No answer is given when I evaluate the following expression:

p[x_,t_]:=D[h[x, t], x]
  D[h[x, t], t] == 11120 D[h[x, t], {x, 2}] + 0.000625,
  h[60000, t] == 10,
  p[0, t] == 0,
  (h[x, 0])^2 == 45100 - 0.0000125 x^2
}, h[x, t], {x, t}]

Did I go wrong somewhere?

  • $\begingroup$ Does it have a symbolic solution? If not, try NDSolve. $\endgroup$
    – Michael E2
    Apr 6, 2014 at 12:52

1 Answer 1


The main problem is your definition of p. Try, for instance, what evaluating p[0, t] gets you:

Mathematica graphics

As you define it, it only works if you call it with undefined symbols. Calling it with the value of 0 in the x slot effectively evaluates

D[h[0, t], 0]

which is obviously nonsense.

It is better to define it using Derivative:

p[x_, t_] := Derivative[1, 0][h][x, t]

which doesn't depend on x being symbolic. Less elegant, but just as effective and perhaps more educational is this alternative:

p[x_, t_] := D[h[x1, t], x1] /. x1 -> x

Dsolve still doesn't solve your problem symbolically and NDSolve has problems with the way your initial and boundary conditions are specified. Rewriting the equations as follows helps:

sol = h /. First@NDSolve[{
     D[h[x, t], t] == 11120 D[h[x, t], {x, 2}] + 1/1600,
     h[60000, t] == 10,
     p[0, t] == 0,
     (h[x, 0]) == Sqrt[45100 - 1/80000 x^2]}, 
    h, {x, 0, 60000}, {t, 0, 10}]

enter image description here


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.