The main problem is your definition of p
. Try, for instance, what evaluating p[0, t]
gets you:
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}]
NDSolve
. $\endgroup$