MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Re: solve and Abs

  • To: mathgroup at
  • Subject: [mg69526] Re: [mg69456] Re: [mg69398] Re: solve and Abs
  • From: Andrzej Kozlowski <akoz at>
  • Date: Thu, 14 Sep 2006 06:57:23 -0400 (EDT)

On 13 Sep 2006, at 23:51, Daniel Lichtblau wrote:

> Andrzej Kozlowski wrote:
>> On 12 Sep 2006, at 20:40, Peter Pein wrote:
>>> Andrzej Kozlowski schrieb:
>>>> On 10 Sep 2006, at 20:20, Peter Pein wrote:
>>>>> Richard J. Fateman schrieb:
>>>>>> Is there a reason (in 5.1) for Solve[x-Abs[x]==0,x] to return  
>>>>>> {{}}?
>>>>>> This supposedly means all variables can have all possible values.
>>>>>> Reduce does better.
>>>>> Oops, I should have read further...
>>>>> Help says
>>>>> "Solve gives {{}} if all variables can have all possible values."
>>>>> I would consider this a bug, not a feature.
>>>>> Sorry for overhasty posting,
>>>>> Peter
>>>> However, the documentation does not say "Solve gives {{}} if  
>>>> and  only if all variables can have all possible values." There  
>>>> are  other cases when Solve returns {{}}. For example, Solve  
>>>> also gives  {{}} when, for example, there is no "generic"  
>>>> solution. (This is  stated in the Help also). In addition,  
>>>> although this does not seem  to be stated, Solve never returns  
>>>> solutions that would have to be  given in conditional form (like  
>>>> the solution returned in this  example by Reduce). This does not  
>>>> appear to be stated in the help  but has been pointed out  
>>>> several times on this list.
>>>> Andrzej Kozlowski
>>>> Tokyo, Japan
>>> all variables can have all possible values =:AVAPV
>>> solve rteurns {{}} =:SRE
>>> But if AVAPV=>SRE but not SRE=>AVAPV, what use has SRE? It would  
>>> be  better to admit "no solutions found" (by returning {}).
>>> Or am I completely wrong?
>>> Confused greetings,
>>> Peter
>> Oops, I think you are right. In fact, when Solve can find no  
>> generic  solutions it returns {} and not {{}}.
>> Solve[{x + y == 1, x + y == a}, {x, y}]
>> {}
>> So it does seem that {} has a different meaning from {{}}, which   
>> makes me now also confused ;-)
>> Andrzej
> An empty result, {}, indicates that either there are no generic  
> solutions (as in the case above, because all solutions force a  
> parameter  constraint a==1), or else that Solve found no solutions  
> (can happen e.g. with transcendentals that get "algebraicized" but  
> then fail to yield viable solutions using Solve's creaky technology).
> An AVAPV result, in the terminology above, is a different fish. It  
> means any value for the solve variable(s) will satisfy the  
> "polynomialized" problem. So what does that mean? In the simple  
> case that began this thread, Abs[x] is converted to Sqrt[x^2]  
> (which many will realize is already a mistake off the real line.  
> C'est la vie.) We make a new variable y which "encapsulates" Sqrt 
> [x^2], and new equation y^2==(Sqrt[x^2])^2==x^2. So we are doing,  
> in effect,
> Solve[{x==y,y^2==x^2}, x, y]
> (that is, eliminating y).
> This correctly returns {{}}. Ordinarily when radicals are present  
> Solve understands that parasite solutions may be found, and makes  
> an attempt to check them. But in this case what can it check, when  
> every possible value is a viable solution? So {{}} is the returned  
> result.
> Generally speaking, {{}} will be returned if there is some  
> continuum on which all values are viable results. This is because a  
> continuum of solutions implies (e.g. by the identity theorem of  
> complex analysis) that, after polynomialization, all values are  
> solutions. Even worse, there can be cases where all solutions will  
> be parasites but algebraicization caused a continuum of apparent  
> solutions to appear, etc. etc.
> Daniel Lichtblau
> Wolfram Research

Would it not be better, however, to be less ambitious here and also  
return the usual message about the presence of "non-algebraic  
functions"? Perhaps, this ought to be done as soon as the presence of  
Abs in the equations is detected. At least this might avoid postings  
like the one that started this thread.

Andrzej Kozlowski

  • Prev by Date: confusion about sampled points in NIntegrate[...,Method->Oscillatory]
  • Next by Date: Re: question on changing 'type' of numbers
  • Previous by thread: Re: Re: Re: solve and Abs
  • Next by thread: Re: Re: Re: solve and Abs