# DSolve for first order nonlinear equation is solution numerical or analytical?

Hi I'm new to mathematica so I may have a somewhat trivial question. my code below solves and plots the results of a first order nonlinear ODE. The solutions mathematica gives me contains & and #1 which I don't know what those mean.

Clear[m, z, p, h, ld, to, td, mo, hc, mb, cb, t]
Clear[mm, sol, sol20, tt, mmm]

sol = DSolve[{m'[
t] == -((m[t]^(2/3))/(p^(2/3)))*(h/ld (to - td + ((mo - m[t])*hc)/(mb*cb))), m == mo}, m[t], t]
mm[t_] := Part[sol, 1, 1, 2];
mmm[tt_] :=
mm[t] /. {p -> 900, hc -> -17000*1000, ld -> -400*1000,
mo -> 60*0.453592, cb -> 0.49*1000, mb -> 2000*0.453592,
td -> 553, to -> 490, h -> 70, t -> tt}
mmm
Plot[mmm[x], {x, 0, 7500}]


Im wondering if this solution is an analytical solution and if so how can I extract a simplified form (for perhaps a specific range or only non-imaginary range) or something more presentable. OR is this using numerical techniques to solve it and if so which method is being used.

here is the output solution

{{m[t] ->
InverseFunction[((-1)^(2/3) (2 Sqrt ArcTan[(-1 + (2 (-1)^(1/3) hc^(1/3) #1^(
1/3))/(hc mo + cb mb (-td + to))^(1/3))/Sqrt] +
2 Log[(hc mo + cb mb (-td + to))^(1/3) + (-1)^(1/3) hc^(1/3) #1^(1/3)] -
Log[(hc mo + cb mb (-td + to))^(
2/3) - (-1)^(1/3) hc^(1/3) (hc mo + cb mb (-td + to))^(
1/3) #1^(1/3) + (-1)^(2/3) hc^(2/3) #1^(2/3)]))/(
2 hc^(1/3) (hc mo + cb mb (-td + to))^(2/3)) &][(h t)/(cb ld mb p^(2/3)) + ((-1)^(
2/3) (2 SqrtArcTan[(-1 + (
2 (-1)^(1/3) hc^(1/3) mo^(1/3))/(hc mo + cb mb (-td + to))^(1/3))/Sqrt] +
2 Log[(-1)^(1/3) hc^(1/3) mo^(1/3) + (hc mo + cb mb (-td + to))^(1/3)] -
Log[(-1)^(2/3) hc^(2/3) mo^(2/3) - (-1)^(1/3) hc^(1/3) mo^(
1/3) (hc mo + cb mb (-td + to))^(1/3) + (hc mo + cb mb (-td + to))^(2/3)]))/(
2 hc^(1/3) (hc mo - cb mb td + cb mb to)^(2/3))]}}

• Welcome to Mathematica.SE! I suggest the following: 1) As you receive help, try to give it too, by answering questions in your area of expertise. 2) Read the faq! 3) When you see good questions and answers, vote them up by clicking the gray triangles, because the credibility of the system is based on the reputation gained by users sharing their knowledge. Also, please remember to accept the answer, if any, that solves your problem, by clicking the checkmark sign!
– user9660
Nov 26, 2014 at 16:04

This is a symbolic solution obtained by separating variables and integrating, like this:

Integrate[
1/(-((m[t]^(2/3))/(p^(2/3)))*
(h/ld (to - td + ((mo - m[t])*hc)/(mb*cb))) /. m[t] -> m), m]
(*
((-1)^(2/3) cb ld mb p^(
2/3) (2 Sqrt
ArcTan[(-1 + (
2 (-1)^(1/3) hc^(1/3) m^(1/3))/(hc mo + cb mb (-td + to))^(
1/3))/Sqrt] +
2 Log[(-1)^(1/3) hc^(1/3) m^(1/3) + (hc mo + cb mb (-td + to))^(
1/3)] - Log[(-1)^(2/3) hc^(2/3) m^(2/3) - (-1)^(1/3) hc^(1/3)
m^(1/3) (hc mo + cb mb (-td + to))^(
1/3) + (hc mo + cb mb (-td + to))^(2/3)]))/(2 h hc^(
1/3) (hc mo + cb mb (-td + to))^(2/3))
*)


(Evaluate this antiderivative at m -> mo and m -> m[t], subtract and set equal to t, try solve for m[t]. It looks like inverse functions had to be used. I had no success simplifying this further.)

• Hi Mike that is helpful, I was confused as to how to interpret the &, #1 symbols and thought something numerical might be happening.. If I wanted to plot this in matlab how could I interpret those symbols? Dec 1, 2014 at 19:15
• The #1 (or simply #) and & are part of the "pure function" notation. See this answer for links to the documentation. The & binds #1 to the first argument of a function. For instance g = f[#1] & is roughly equivalent to g[x_] := f[x]. I don't know Matlab. The equations x == InverseFunction[f[#] &][y] and y == f[x] are equivalent, assuming f is 1-1 of course. HTH Dec 2, 2014 at 14:12