Message Boards Message Boards

0
|
21161 Views
|
5 Replies
|
3 Total Likes
View groups...
Share
Share this post:

Having difficulty with "use Reduce for complete solution information"

I repeatedly get a response similar to the following:

In[13]:= Clear[Derivative]; gensol = 
 DSolve[y'[x] == (2 Sqrt[y[x]] - 2 y[x])/x, y[x], x]

During evaluation of In[13]:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information. >>

Out[13]= {{y[x] -> (E^(C[1]/2) + x)^2/x^2}}

How should I follow the instruction "use Reduce for complete solution information"? What command should I type it for complete solution information?

POSTED BY: David Arnold
5 Replies

Slight follow-up. If you search for

DSolve ifun

in the Documentation Center and look at the various Tutorial links that come up and then, in them search for the string ifun to find the warning messages in some of the examples, you will see some cases where such messages arise and some discussion of the circumstances that they are responding to. Here's an example

http://reference.wolfram.com/language/tutorial/DSolveClassificationOfDifferentialEquations.html

POSTED BY: David Reiss

Yes, I've read that URL. Thanks.

P.S. I added a little more to the problem via a new question.

http://community.wolfram.com/groups/-/m/t/398753?p_p_auth=skCcbI7K

POSTED BY: David Arnold

Yes, you're right, I didn't explain that part clearly enough and only alluded to it!

I am guessing that within DSolve it is, at some point in the course of solving your original equation, using Solve to do some algebraic solving as, perhaps, a final step. And when doing this it is generating the warning message. As such, it's reference to Reduce is only pertinent to the internal step which, of course, you have no access to! So, there really is nothing Reduce-able that can be done with what DSolve provides, nor a Reduce-able alternative to DSolve.

In the case where you might have been Solve-ing an equation and directly generating the warning message in the course of that, then one might use Reduce. So, in the documentation for Solve there is this example:

Solve[x^(2 a) + 2 x^a + 1 == 0, x] 

and it generates the warning message that you encountered. And then using Reduce instead of Solve one gets a richer set of solution possibilties along with the conditional statements that govern them:

Reduce[x^(2 a) + 2 x^a + 1 == 0, x] 

So, in summary, in the original DSolve case of yours, the mention of Reduce is, I think, a red herring (i.e., fishy in a way) in that it does not give you direct actionable recourse. But it does hint that there may be alternative approaches to forming the original equation that may lay bare any issues or assumptions.

POSTED BY: David Reiss

This is a really great answer, extremely well explained, and much appreciated. But I still don't understand the phrase "use Reduce for complete solution information ."

What does this mean, "Use Reduce"? What command should I type in to follow this suggestion "Use Reduce"? In this situation, how do you use the command "Reduce"?

POSTED BY: David Arnold

I suspect that the message is being generated from the internal use of Solve when dealing with the presence of the square roots and alerting you to the fact that there may be an assumption in the answer as to the sign of the function.

If, for Real values, you allow y[x] to be assumed positive, then you can get a sense of this by transforming the equation in a way that removes a square root by y[x]==z[x]^2 and using the following equation:

D[z[x]^2, x] == ((2 Sqrt[y[x]] - 2 y[x])/x) /. y[x] -> z[x]^2

then

DSolve[2 z[x] Derivative[1][z][x] == (-2 z[x]^2 + 2 Sqrt[z[x]^2])/x, z[x], x]

yields (without an error message:

{{z[x] -> (E^C[1] + x)/x}}

and hence y[x] is

 (E^C[1] + x)/x}2
POSTED BY: David Reiss
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract