0
$\begingroup$

I'm currently trying to solve a set of differential equations using NDSolve but I'm getting an error... The following was construced with the help of this answer using Mathematica 11.0.

solution[t_] := 
 With[{m = 0.01, L = 0.1, g = 9.81}, 
  NDSolve[{2 m (L^2 - 3 L s[t] + 3 s[t]^2) u''[t] == 
     3 L m g Sin[u[t]] + 6 m (L - 2 s[t]) s'[t] u'[t], 
    m ((L - 2 s[t]) u'[t]^2 + 2 s''[t]) == 0, u[0] == Pi, s[0] == 0, 
    s'[0] == 1, u'[0] == -0.1}, {u[t], s[t]}, {t, 0, 10}]]

Plot[solution[t], {t, 0, 10}]

The error message is:

NDSolve::dsvar: 0.0002042857142857143` cannot be used as a variable.

NDSolve::dsvar: 0.0002042857142857143` cannot be used as a variable.

NDSolve::dsvar: 0.20428591836734694` cannot be used as a variable.

General::stop: Further output of NDSolve::dsvar will be suppressed during this calculation.

I'm not really sure what to make of the error. I found this post here which to me at least doesn't seem related to my issue.. The initial values should work (I think at least) and I checked a couple of times now if there is any mistake in the equations...

$\endgroup$
  • $\begingroup$ Correct code: solution[t_] = With[{m = 0.01, L = 0.1, g = 9.81}, NDSolve[{2 m (L^2 - 3 L s[t] + 3 s[t]^2) u''[t] == 3 L m g Sin[u[t]] + 6 m (L - 2 s[t]) s'[t] u'[t], m ((L - 2 s[t]) u'[t]^2 + 2 s''[t]) == 0, u[0] == Pi, s[0] == 0, s'[0] == 1, u'[0] == -0.1}, {u[t], s[t]}, {t, 0, 10}]][[1, All, 2]] $\endgroup$ – Alex Trounev Apr 5 at 16:59
1
$\begingroup$

By giving solution the argument t, what is supposed to be the variable in the iterator {t, 0, 10} has a numeric value when solution[t] is called.

Clear["Global`*"]

solution = 
  With[{m = 0.01, L = 0.1, g = 9.81}, 
   NDSolve[{2 m (L^2 - 3 L s[t] + 3 s[t]^2) u''[t] == 
      3 L m g Sin[u[t]] + 6 m (L - 2 s[t]) s'[t] u'[t], 
     m ((L - 2 s[t]) u'[t]^2 + 2 s''[t]) == 0, u[0] == Pi, s[0] == 0, 
     s'[0] == 1, u'[0] == -0.1}, {u, s}, {t, 0, 10}]];

Plot[Evaluate[{s[t], u[t]} /. solution],
 {t, 0, 10},
 PlotLegends -> Placed[{s[t], u[t]}, {0.85, 0.55}]]

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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