Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

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

Search the Archive

RE: Re: Re: Re: solve and Abs

  • To: mathgroup at smc.vnet.net
  • Subject: [mg69561] RE: [mg69517] Re: [mg69456] Re: [mg69398] Re: solve and Abs
  • From: "Erickson Paul-CPTP18" <Paul.Erickson at Motorola.com>
  • Date: Fri, 15 Sep 2006 06:46:19 -0400 (EDT)

The logic appears to be:

{ {1st solution set of conditions}, {2nd solution set of conditions},
...} If there are no conditions needed for a solution it is therefore
{{}}, and if the is no set of conditions that allow a solution it is
therefore {}. This is shown by:

Solve[{y^2 == 1}, {x, y}]
Results in:
{{y -> -1}, {y -> 1}}

So the general form is list of solution conditions list.


-----Original Message-----
From: Daniel Lichtblau [mailto:danl at wolfram.com] 
To: mathgroup at smc.vnet.net
Subject: [mg69561] [mg69517] Re: [mg69456] Re: [mg69398] Re: solve and Abs

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


  • Prev by Date: Re: Q: How to animate a list plot?
  • Next by Date: Re: Re: Re: solve and Abs
  • Previous by thread: Re: Re: Re: solve and Abs
  • Next by thread: Re: Re: Re: solve and Abs