0
$\begingroup$

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?

$\endgroup$
2
  • $\begingroup$ 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. $\endgroup$
    – Michael E2
    May 19, 2018 at 0:36
  • $\begingroup$ 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] $\endgroup$
    – Michael E2
    May 19, 2018 at 0:43

1 Answer 1

1
$\begingroup$

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)}}}   *)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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