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