Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to render the solution of the following partial differential equation:

$$ u = u(x,y)~;\quad \frac1{x^{2/3}}\partial_xu + x^3\partial_yu + \partial_y^2u + \partial_x^3u = 0 $$

However, the kernel seems to not produce anything. I checked documentation for different ways of inputting in the equation, but nothing helps. I even tried the sample problems directly from the documentation and those still had no explicit solution. I also quit the local kernel and repeated the process twice. I used something of the following:

eqn2 = D[u[x, y], {x, 3}] + D[u[x, y], {y, 2}] + x^3 D[u[x, y], y] + 
1/x^(2/3) D[u[x, y], {x, 1}] == 0;

DSolve[eqn2, u, {x, y}]

Any ideas of what is going on?

share|improve this question
The solution of your PDE can not be determined without boundary conditions. You should specify them. – faleichik Feb 11 '12 at 8:30
I would be surprised if this can be solved by Mathematica with DSolve. Do you need an analytic solution or would it be enough if you have it numerically solved? – halirutan Feb 11 '12 at 8:41
Yeah, it is rare that a PDE admits an analytical solution. Did you check handbooks for this particular PDE? – J. M. Feb 11 '12 at 9:22
up vote 8 down vote accepted

As far as I know Mathematica can only solve very special cases of partial differential equations exactly. However, since you want to render the solution, a numerical solution will be enough. Here's an example using the heat equation as a placeholder:

(* Differential equation *)
eqn = D[u[x, t], t] - D[u[x, t], x, x];
(* Boundary/Initial conditions:
   Absorbing boundaries, Gaussian bump *)
ic = {
    u[x, 0] == Exp[-x^2/2],
    u[-10, t] == u[10, t] == Exp[-10^2/2]
(* Unleash the fury *)
s = NDSolve[{eqn == 0}~Join~ic, u, {x, -10, 10}, {t, 0, 20}];
(* Visualize result *)
Plot3D[Evaluate[u[x, t] /. s], {x, -10, 10}, {t, 0, 20}]

enter image description here

NDSolve does not care about the type of differential equation, so your variable coefficients aren't a problem (modulo numerical instabilities of course). Replace eqn by your equation and add according initial conditions and you'll be fine. Here's an example of the same equation, only that now the diffusion constant is not $1$ but $e^{-t/3}$, making diffusion disappear over a time scale of $3$:

eqn = D[u[x, t], t] - E^(-t/3) D[u[x, t], x, x];
ic = {
    u[x, 0] == Exp[-x^2/2],
        u[-10, t] == u[10, t] == Exp[-10^2/2]
s = NDSolve[{eqn == 0}~Join~ic, u, {x, -10, 10}, {t, 0, 20}];
Plot3D[Evaluate[u[x, t] /. s], {x, -10, 10}, {t, 0, 20}, AxesLabel -> Automatic, MaxRecursion -> 8, PlotPoints -> 32]

enter image description here

share|improve this answer
Thanks. I was hoping on a analytic solution I guess. What I was really trying to do is check my solution that I obtained by hand. I guess I could equate things and check it with the numerical value given by NDSolve. – night owl Feb 11 '12 at 11:28
Just take the wave equation as an example, which is a really easy PDE: $u_{xx}-u_{tt}=0$. It has either a useless solution, $u=\phi(x-t)+\phi(x+t)$, or one that is already too long for this comment if you want to incorporate Cauchy boundary conditions. Yours will be a lot messier I assume. – David Feb 11 '12 at 16:58
You should discuss this in the chat, comments aren't reallly suitable for things like these - it's kind of a new question you're asking there. – David Mar 23 '12 at 22:54
Can you join here: – night owl Mar 23 '12 at 23:30
We can delete the recent comments – night owl Mar 23 '12 at 23:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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