MathGroup Archive 2005

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

Search the Archive

Re: Re: FullSimplify with Assumptions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53364] Re: [mg53349] Re: [mg53339] FullSimplify with Assumptions
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Sat, 8 Jan 2005 02:39:32 -0500 (EST)
  • References: <200501070300.WAA10775@smc.vnet.net> <200501070618.BAA13516@smc.vnet.net> <opsj8m7hq0iz9bcq@monster.ma.dl.cox.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On 8 Jan 2005, at 00:12, DrBob wrote:

>>> One should really deal with such problems by using polynomial 
>>> algebra,
>>> that is PolynomialReduce etc, with specified variable ordering.
>
> Umm... OK... But WHAT specified variable ordering would that be?
>
> Try different orderings until one of them works? If that's impractical 
> for FullSimplify, why is it practical for humans?
>
> Bobby


Yes, it's a wonder what HUMAN intelligence can achieve, isn't it?

Andrzej



>
> On Fri, 7 Jan 2005 01:18:49 -0500 (EST), Andrzej Kozlowski 
> <akoz at mimuw.edu.pl> wrote:
>
>> On 7 Jan 2005, at 12:00, Goyder Dr HGD wrote:
>>
>>> In the examples below I would expect FullSimplify to give L.
>>> However, I get results that depend on the symbols I use.
>>> It would appear that symbols x and y are treated differently.
>>>
>>> How can I force FullSimplify to use the LeafCount as the
>>> ComplexityFunction?
>>>
>>>
>>> In[14]:= r1 = FullSimplify[(L - L*y^2)/x^2, {-1 + x^2 + y^2 == 0}]
>>>
>>> Out[14]= (L - L*y^2)/x^2
>>>
>>> In[15]:= r2 = FullSimplify[(L - L*x^2)/y^2, {-1 + x^2 + y^2 == 0}]
>>>
>>> Out[15]= L
>>>
>>> In[16]:= LeafCount[r1]
>>>
>>> Out[16]= 12
>>>
>>> In[17]:= LeafCount[r2]
>>>
>>> Out[17]= 1
>>>
>>> In[18]:= $Version
>>>
>>> Out[18]= "5.1 for Microsoft Windows (October 25, 2004)"
>>>
>>> Thanks for any comment
>>>
>>> Hugh Goyder
>>>
>> I would speculate that the reason has something to do with 
>> FullSimplify
>> using PolynomialReduce or related functions, whose outcome depends on
>> the ordering of the variables. Compare for example:
>>
>>
>> Last[PolynomialReduce[(L - L*y^2)/x^2, {-1 + x^2 + y^2},
>>     {x, y}]]
>>
>>
>> L/x^2 - (L*y^2)/x^2
>>
>> with
>>
>>
>> Last[PolynomialReduce[(L - L*y^2)/x^2, {-1 + x^2 + y^2},
>>     {y, x}]]
>>
>> L
>>
>> Note also that if you do not include explicitly the variables you will
>> get:
>>
>>
>> Last[PolynomialReduce[(L - L*y^2)/x^2, {-1 + x^2 + y^2}]]
>>
>>
>> L/x^2 - (L*y^2)/x^2
>>
>>
>> I suspect this isn't a bug in FullSimplify. To remedy it FullSimplify
>> would need to use all possible orderings of variables when applying
>> algebraic functions whose output depends on variable order, and that 
>> is
>> obviously just not a reasonable option in terms of performance. Also,
>> Simplify and FullSimplify are not really optimized for conditions of
>> the form  something == something else; I find it a little surprising
>> that it works as well as it does. One should really deal with such
>> problems by using polynomial algebra, that is PolynomialReduce etc,
>> with specified variable ordering.
>>
>>
>> Andrzej Kozlowski
>> Chiba, Japan
>> http://www.akikoz.net/~andrzej/
>> http://www.mimuw.edu.pl/~akoz/
>>
>>
>>
>>
>
>
>
> -- 
> DrBob at bigfoot.com
> www.eclecticdreams.net
>


  • Prev by Date: Re: Re: Re: Run, RunThrough on OSX?
  • Next by Date: Re: logical indexing using more than one variable in a pure function
  • Previous by thread: Re: Re: FullSimplify with Assumptions
  • Next by thread: Re: FullSimplify with Assumptions