1
$\begingroup$

The answer from this question helped me use Euler's method. It worked for a simple function, but when the function is more complicated, I get an empty plot. This is my function:

$y'=-\frac{3*(3*sin^2(t)-3*(y-1)^{1.5})*y^2}{pi*(1.6)^2}$

And this is the code:

Clear[x];
x = x /. First[
    NDSolve[{x'[t] == 
    -(3*(3*Sin[t]^2 - 3*((x[t] - 1)^1.5))*(x[t]^2))/(Pi*(1.6)^2), x[0] == 0.8},
    x, {t, 0, 10}, StartingStepSize -> 0.5, 
    Method -> {"FixedStep", Method -> "ExplicitEuler"}]];
grid = Table[{t, x[t]}, {t, 0, 10, 0.5}]
ListLinePlot[grid]

What am I doing wrong?

$\endgroup$

1 Answer 1

3
$\begingroup$

Side note - do not assign x = x/.First[NDSolve[...x[t]...]] - even though you use Clear[x] - it is just bad practice. Keep unknown functions - unknown and keep solutions - solutions.

You got some complex value noise. Decrease StartingStepSize -> 1/2 and it will get better. Also use 1/2 instead of 0.5, etc., - just in case to keep higher precision.

sol = x /. 
   First[NDSolve[{x'[
        t] == -(3 (3 Sin[t]^2 - 
             3 ((x[t] - 1)^(3/2)))*(x[t]^2))/(Pi*(16/10)^2), 
      x[0] == 8/10}, x, {t, 0, 10}, StartingStepSize -> 1/2, 
     Method -> {"FixedStep", Method -> "ExplicitEuler"}]];
gridR = Table[{t, Re@sol[t]}, {t, 0, 10, 0.5}];
gridI = Table[{t, Im@sol[t]}, {t, 0, 10, 0.5}];
ListLinePlot[{gridR, gridI}]

enter image description here

$\endgroup$
1
  • $\begingroup$ It works! Thank you very much $\endgroup$ Commented Mar 21, 2014 at 21:16

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.