MathGroup Archive 2005

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

Search the Archive

Re:Re: FullSimplify with Assumptions

  • To: mathgroup at smc.vnet.net
  • Subject: [mg53435] Re:Re: FullSimplify with Assumptions
  • From: "Goyder Dr HGD" <h.g.d.goyder at cranfield.ac.uk>
  • Date: Tue, 11 Jan 2005 01:31:58 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Thank you for your comments on my questions. However, this raises more questions:

1. What is the mission of FullSimplify? I thought the mission was to minimise the LeafCount of the expression. Are you are saying that this is not possible if assumptions are included? If this is not possible then what can FullSimplify hope to do?

2. If I change the input of FullSimplify from an expression to an assertion to be tested, see below, then it seems to be able to use the assumptions. Is this always going to be true?

In[3]:=
InputForm[FullSimplify[(L - L*y^2)/x^2, {-1 + x^2 + y^2 == 0}]]

Out[3]//InputForm=
(L - L*y^2)/x^2

In[4]:=
InputForm[FullSimplify[(L - L*y^2)/x^2 == L, {-1 + x^2 + y^2 == 0}]]

Out[4]//InputForm=
True

3. Why is it so impossible to check all lexical orderings? How would the time increase with the number of variables and the number of assumptions? Should this be an option, with warnings and time constraints?

4. The actual source of my problem was a huge trig function. I had changed the trig functions into polynomials and the assumption above was the remains of Sin[t]^2 + Cos[t]^2 == 1. FullSimplify did a lot of good work before falling at the last hurdle.  How else can one proceed?

Thanks 

Hugh Goyder
-----Original Message-----
From: Adam Strzebonski [mailto:adams at wolfram.com]
To: mathgroup at smc.vnet.net
Subject: [mg53435] Re: [mg53339] FullSimplify with Assumptions


Andrzej Kozlowski wrote:
> *This message was transferred with a trial version of CommuniGate(tm) Pro*
> 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/
> 

This is exactly the case.

When FullSimplify is given equational assumptions it
computes a single Groebner basis of the assumptions
(with the DegreeReverseLexicographic monomial order
and with the variables ordered by Sort).
PolynomialReduce with respect to this Groebner basis
is then applied as one of the transformation functions
used to simplify subexpressions.

Best Regards,

Adam Strzebonski
Wolfram Research




-- 
This message has been scanned for viruses and
dangerous content by the Cranfield MailScanner, and is
believed to be clean.


  • Prev by Date: Re: extra data in expressions
  • Next by Date: Re: MultipleListPlot MakeSymbol Issue
  • Previous by thread: Re: FullSimplify with Assumptions
  • Next by thread: Re: Re:Re: FullSimplify with Assumptions