While solving ODE x^2*y'''[x] == (y''[x])^2, DSolve and Wolfram|Alpha miss the solution y(x)=(x^3)/ 6 + c1*x + c2:
Any idea why Wolfram|Alpha & DSolve lose the solution above?
While solving ODE x^2*y'''[x] == (y''[x])^2, DSolve and Wolfram|Alpha miss the solution y(x)=(x^3)/ 6 + c1*x + c2:
Any idea why Wolfram|Alpha & DSolve lose the solution above?
This is a third order ODE. Shouldn’t it have three integration constants?
Why? Good question? Because things are sometimes full of surprises?
dgl = D[y[x], x]^2 - x D[y[x], x] + y[x] == 0
lsg = DSolve[dgl, y[x], x][[1, 1]]
dgl /. {y[x] :> x^2/4, y'[x] :> x/2}
Two totally different solutions…
Why doesn’t Mathematica find the solution (x^4) /2 ?
Sometimes it’s worth looking at what happens as the parameters approach the boundaries of their domains. For instance, the DSolve result, C[1] cannot be 0. But the limit of the DSolve solution as C[1] -> 0 yields the desired solution:
Limit[x/C[1]^2 - x^2/(2 C[1]) + C[2] +
x C[3] + ((1 - x C[1]) Log[1 - x C[1]])/C[1]^3, C[1] -> 0]
(* x^3/6 + C[2] + x C[3] *)
Thanks for approach!
As Michael Rogers mentioned below, this solution occurs when c[1]->0, thus, it has 2 constants.
Yes, it has 2 constants.
However, it is not the general solution but a special case. I expect Mma to give the general solution. At least to me, your original question suggested that your solution is the general one. I just wanted to express that I do not believe that this can be the correct (general) solution.
Hi Hans,
I will note that there are two ways that DSolve (currently) can miss solutions assuming the problem is generally solvable, or at least two ways I know. The OP’s example shows one way, and your example shows the other way.
In the OP’s example, the general solution is “generic”; that is, it is missing a component of its boundary (in a suitable function space), which may be found by taking a limit (C[1] -> 0 in this case, but C[..] -> Infinity seems more common in my experience).
The other way is when there is a disconnected component, and in the case of a Clairaut equation like yours, it is traditional to call it the “singular solution,” which you probably know already. This is solution is not contain in the general solution or its limiting boundary (in function space), although it is the envelope of the general solution (in the xy plane). As you also may know, one can derive the singular solution without integration.
Here, as a supplement to DSolve, is a function for deriving singular solutions. It comes from a differential equations package I wrote; the function may also be found here:
singularSolve[de_Equal, form : y_[x_] | y_, x_] :=
Module[{p, q, u, fn, rads, a, b, ode, discriminant},
fn = de /. {y[x] -> y, y'[x] -> p, Equal -> Subtract};
rads = DeleteDuplicates@Cases[fn, Power[a_, b_Rational], Infinity];
ode = First@
GroebnerBasis[
Flatten@{fn /. Power[a_, b_Rational] :> u[a, b],
rads /. Power[a_, b_Rational] :>
u[a, b]^Denominator[b] - a^Numerator[b]},
rads /. Power[a_, b_Rational] :> u[a, b]];
discriminant = Solve[{ode == 0, D[ode, p] == 0}, {y}, {p}];
Pick[Which[
MatchQ[form, y[x]], {y[x] -> (y /. #)},
MatchQ[form, y], {y -> Function @@ {{x}, y /. #}},
True, # /. p -> y'[x]] & /@ discriminant,
TrueQ@Simplify[ode == 0 /. Flatten@{#, p -> D[y /. #, x]}] & /@
discriminant]];
singularSolve[dgl, y[x], x]
(* {{y\[x\] -> x^2/4}} *)
The system for the envelope is given by the ODE and its partial derivative with respect to y' (Clairaut’s equation admits a simpler approach). The ode dgl is written in the function in terms of p = y'[x], and the system to solve, eliminating p, is the following:
{p^2 - p x + y == 0, 2 p - x == 0}
According to Live CEOing Ep 591, a new option called SingularSolutions is coming for DSolve. Hopefully it will take care of this example too.
As you also may know, one can derive the singular solution without integration.
Blockquote
No, I didn’t know that.