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

Not sure what is wrong with the boundary conditions for this problem:

NDSolve[{D[u[x, y], x, x] + D[u[x, y], y, y] - 
    u[x, y] == -DiracDelta[x, y], u[10, y] == 0, u[x, 10] == 0, 
  u[-10, y] == 0}, u, {x, 0, 10}, {y, 0, 10}].

The error message is:

NDSolve::ivone: Boundary values may only be specified for one independent variable. Initial values may only be specified at one value of the other independent variable.

share|improve this question
There are two problems: Mathematica doesn't support elliptic PDEs. Please see here. Some of this is explained if you click the >> after the error message. The other problem (which is not the cause of the error) is that you can't (it doesn't make sense to) use DiracDelta in a numerical method. – Szabolcs Feb 5 '13 at 17:19
@Yong, could you explain a bit what you wanted to achieve? Then, perhaps, there may be a solution. – user21 Feb 5 '13 at 19:28

Mathematica does not support the numerical solution of elliptic PDEs. This is explained here. It is also mentioned in the page that opens if you click the >> after the error message. It only supports initial value problems.

Another problem with your input is the use of DiracDelta. It doesn't make sense to use this function in a numerical method. But this is not the cause of the error message.

share|improve this answer
Are you aware any Methmatica tool for this type of problem? It appears DSolve works for a similar 1-D problem with a delta function – Yong Feb 5 '13 at 18:56
Hi Ruebenko, what we are trying to solve is a steady-state 2-D diffusion equation with a "decay term", -u[x,y] and a generation term at the orgin x = y = 0, -DiracDelta[x, y]. I understand the comment of Szabolcs regarding the delta-function. It can be replaced by a highly localizaed fucntion. If Mathematica can only handel an initial value problem, we could perhaps set it up as a time-dependent problem and later let t becomes very large. I am puzzled about how to set-up the boundary conditions. ">>" does not explain it well (sometime showing nothing). Thanks! – Yong Feb 8 '13 at 14:29

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.