How to solve that equation with DSolve?(nonlinear differential equation)

I'm trying to solve the equation $2(y')^3 - 3(y')^2 +x = y$. I need an analytical solution. And that one is easy to solve on paper. I got answer $y=1/\sqrt{3} \cdot 2/3 \sqrt{(x+C_1)^3} + C_2$.

However in Mathematica

DSolve[2 (y'[x])^3 - 3 (y'[x])^2 + x == y[x], y[x], x]


seems to take forever to evaluate.

I was trying to change variables, like t=y-x or q=y', but with no luck.

How can I get that answer from Mathematica?

• Since it's a cubic equation in the highest-order derivative, DSolve will end up solve three ODES, which you can infer from Solve[2 (y'[x])^3 - 3 (y'[x])^2 + x == y[x], y'[x]]. None of them look like they'd be easy to solve. If you were lucky, it quit right away instead of chewing on it for a long time. But who knows, it might finish. – Michael E2 May 19 '18 at 0:36
• If you use withTimedIntegrate from this answer, you'll get a partial result in terms of implicit equations involving unevaluated integral: withTimedIntegrate[DSolve[2 (y'[x])^3 - 3 (y'[x])^2 + x == y[x], y[x], x], 1] – Michael E2 May 19 '18 at 0:43

Differentiate the equation to get solutions at once.

equ = x - 3 Derivative[1][y][x]^2 + 2 Derivative[1][y][x]^3 == y[x];

dequ = D[equ, x]

(*   1 - 6 Derivative[1][y][x] (y'')[x] +
6 Derivative[1][y][x]^2 (y'')[x] ==
Derivative[1][y][x]   *)

dsol = DSolve[dequ, y, x]

(*   {{y -> Function[{x}, x + C[1]]},
{y -> Function[{x}, -((2 (x + 6 C[1])^(3/2))/(3 Sqrt[3])) + C[2]]},
{y ->Function[{x}, (2 (x + 6 C[1])^(3/2))/(3 Sqrt[3]) + C[2]]}}   *)


Get conditions for the C[i]

{equ /. dsol[[1]], Solve[equ /. dsol[[1]], C[1]]}

(*   {-1 + x == x + C[1],
{{C[1] -> -1}}}   *)


Even simple y[x] = x - 1 is a solution.

{equ /. dsol[[2]], Solve[equ /. dsol[[2]], C[1]]}

(*   {-6 C[1] - (2 (x + 6 C[1])^(3/2))/(
3 Sqrt[3]) == -((2 (x + 6 C[1])^(3/2))/(3 Sqrt[3])) + C[2],
{{C[1] -> -(C[2]/6)}}}   *)


And the solution you mentioned.

{equ /. dsol[[3]], Solve[equ /. dsol[[3]], C[1]]}

(*   {-6 C[1] + (2 (x + 6 C[1])^(3/2))/(3 Sqrt[3]) == (
2 (x + 6 C[1])^(3/2))/(3 Sqrt[3]) + C[2],
{{C[1] -> -(C[2]/6)}}}   *)