Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I'm trying to solve the following system using NDSolve:

$$ \begin{align} u_t(x,t) &= u_{xx}(x,t) - v(x,t) \\ v_t(x,t) &= u(v(x,t),t) \end{align} $$

with

$$ u_x(-1,t) = 0, \quad u_x(1,t) = 0, \quad u(x,0) = \tanh(10x), \quad v(x,0) = 1/3. $$

I tried the following code in Mathematica 7.

NDSolve[{
    Derivative[0, 1][u][x, t] == Derivative[2, 0][u][x, t] - v[x, t],
    Derivative[0, 1][v][x, t] == u[v[x, t], t],

    Derivative[1, 0][u][-1, t] == 0,
    Derivative[1, 0][u][1, t] == 0,

    u[x, 0] == Tanh[10 x],
    v[x, 0] == 1/3
  }, {u, v}, {x, -1, 1}, {t, 0, 5}]

This produces an error: NDSolve::delpde: Delay partial differential equations are not currently supported by NDSolve. I think this is coming from the second differential equation, because if it doesn't have a composition, for example if I change the second equation to

$$ v_t(x,t) = u(x,t)+v(x,t), $$

and try the code

NDSolve[{
    Derivative[0, 1][u][x, t] == Derivative[2, 0][u][x, t] - v[x, t],
    Derivative[0, 1][v][x, t] == u[x, t] + v[x, t],

    Derivative[1, 0][u][-1, t] == 0,
    Derivative[1, 0][u][1, t] == 0,

    u[x, 0] == Tanh[10 x],
    v[x, 0] == 1/3
  }, {u, v}, {x, -1, 1}, {t, 0, 5}]

then I get a result.

Is there anything I can do to help NDSolve solve the original system (with the composition)?

share|improve this question
    
I do not think the error message is right. I think the pde itself is not valid mathematically speaking. You have a dependent variable being treated as independent variable. One can see this more clearly in this example: Clear[u, v, x]; eq1 = u'[x] == u[x] - v[x]; eq2 = v'[x] == u[v[x]]; DSolve[{eq1, eq2}, {u[x], v[x]}, x] the error is DSolve::nestdv: "The expression v[x] has nested dependent variables". Now switch to NDSolve, same system, and now you get the delay error: NDSolve[{eq1, eq2, u[0] == 0, v[0] == 0}, {u[x], v[x]}, {x, 0, 1}] and the error is ... –  Nasser Nov 12 '13 at 15:51
    
... NDSolve::cdelay: The method currently implemented for delay differential equations does not support delays that depend directly on the time variable or dependent variables. so if the same system is not valid to be solved analytically (mathematically speaking), how could it becomes valid to be solved Numerically? (I'd have to ask my teacher when I go to school tomorrow on this and see what he says about this).. either way, what you are to do does not seem to be supported by direct use of NDSolve... –  Nasser Nov 12 '13 at 16:24
    
DEs aren't my specialty either, but I don't think it's obvious that the system in your example wouldn't have a solution. I think all you could say is that DSolve doesn't like the form it's in. –  Antonio Vargas Nov 12 '13 at 16:24
    
DO you have a reference or published examples of such PDE's? (I mean of similar form) to give one an idea of how they can come about. –  Nasser Nov 12 '13 at 17:16
add comment

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

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

Browse other questions tagged or ask your own question.