Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Mathematica differential equation

  1. Nov 25, 2011 #1
    On mathematica:
    Solve the differential equation

    d^2 x(t)/dt^2 + x(t)(x^2(t) − 1) + t = 0

    numerically, subject to the initial conditions that x(0) = 1 and dx(0)/dt = 0. Use
    Plot to plot the solution for the domain t 2 [0, 10].

    Above is what i'm trying to do. Below is what i've typed in on mathematica:

    s = NDSolve[{x''[t] + (x[t]) (x[t]^2 - 1) + t == 0, x[0] == 1,
    x3'[0] == 0}, x, {t, 0, 10}]

    This is wrong, it says it's not a diff. equation. Where am i going wrong?
  2. jcsd
  3. Nov 25, 2011 #2
    You have x3'[0] instead of x'[0].
    That's the only problem....
  4. Nov 25, 2011 #3
    Sorry that was mistake, but it's still wrong, i've tryed everything i can think of.

    n = NDSolve[{x''[t] + x[t] (x^2[t] - 1) + t == 0, x[0] == 1,
    x'[0] == 0}, x[t], t, {t, 0, 10}]

    above is what i got. Says duplicate variable t found, so it's still wrong. I'm not sure what to do, any ideas?
  5. Nov 25, 2011 #4
    I have fought with the obsession of both Mathematica and the forum software to translate characters into what they think are best for your, despite that breaking this going in both directions.

    Attached is a tiny working notebook. Do a binary byte-by-byte comparison with what you have in your notebook and see what is different.

    Attached Files:

    • nd.nb
      File size:
      3.7 KB
  6. Nov 25, 2011 #5
    P-Jay: No, making the correction I suggested in your original code worked.
    You've changed your code in your second post. It can be corrected by changing
    x^2[t] -> x[t]^2
    and by removing the extra t argument you had.

    n2 = NDSolve[{x''[t] + x[t] (x[t]^2 - 1) + t == 0, x[0] == 1, x'[0] == 0}, x[t], {t, 0, 10}]

    Finally, your first version was better, since you solved for x instead of x[t].
    The former returns a pure interpolated function, while the latter returns the function evaluated at t, which is not as flexible.

    For example, using the former version

    n1 = NDSolve[{x''[t] + x[t] (x[t]^2 - 1) + t == 0, x[0] == 1, x'[0] == 0}, x, {t, 0, 10}]

    you can plot the function and its derivative easily

    Plot[Evaluate[{x[t], x'[t]} /. n1], {t, 0, 10}]

    Doing the same with n2 is not as straight forward...
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Similar Threads for Mathematica differential equation
Mathematica Storing Mathematica output
Mathematica Mathematica to MATLAB
Mathematica Cannot do the integral of the Hyper-geometric function?
Mathematica Cannot Plot This Function in Mathematica
Mathematica While Loop in Mathematica