How to prevent Solve from DSolve?
- Subject: [mg888] How to prevent Solve from DSolve?
- From: chen at fractal.eng.yale.edu (Richard Q. Chen)
- Date: Fri, 28 Apr 1995 00:45:48 -0400
- Apparently-to: mathgroup-send at christensen.cybernetics.net
- Organization: Yale University
Hi,
I find it very frustrating that Mma always tries
to give explicit solutions to an ODE, even if the solutions are
so complicated as to be useless. For example
In[2]:= Needs["Calculus`DSolve`"]
In[3]:= DSolve[2 y[x] + (x + y[x]) y'[x] == 0, y[x], x]
Out[3]= {{y[x] ->
1/3 2
> -2 x + (3 2 x ) /
3 6 3 2 1/3
> (54 x + 27 C[1] + Sqrt[-2916 x + (54 x + 27 C[1]) ]) +
3 6 3 2 1/3 1/3
> (54 x + 27 C[1] + Sqrt[-2916 x + (54 x + 27 C[1]) ]) / (3 2 )}
> , {y[x] ->
2
> -2 x - (3 (1 + I Sqrt[3]) x ) /
2/3 3 6 3 2 1/3
> (2 (54 x + 27 C[1] + Sqrt[-2916 x + (54 x + 27 C[1]) ]) ) -
3
> ((1 - I Sqrt[3]) (54 x + 27 C[1] +
6 3 2 1/3 1/3
> Sqrt[-2916 x + (54 x + 27 C[1]) ]) ) / (6 2 )},
2
> {y[x] -> -2 x - (3 (1 - I Sqrt[3]) x ) /
2/3 3 6 3 2 1/3
> (2 (54 x + 27 C[1] + Sqrt[-2916 x + (54 x + 27 C[1]) ]) ) -
3
> ((1 + I Sqrt[3]) (54 x + 27 C[1] +
6 3 2 1/3 1/3
> Sqrt[-2916 x + (54 x + 27 C[1]) ]) ) / (6 2 )}}
I would like to have Mma out put something like f(x,y) == C[1] so
that I will know what kind of simpler function f(x,y) may be. I can
then choose to solve for y in terms of x if it is desirable.
In this particular case I had to use pencil and paper and I obtained
the much simpler implicit solution
f(x,y) = y*(y+2x)^2 = C[1]
This is the kind of solution I wanted.
How can I prevent DSolve from using Solve to give complicated
solution?
Thanks for any info.
--
Richard Q. Chen
chen at fractal.eng.yale.edu