Re: question 1

*To*: mathgroup at smc.vnet.net*Subject*: [mg75870] Re: [mg75810] question 1*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Sat, 12 May 2007 03:09:41 -0400 (EDT)*References*: <200705110924.FAA05900@smc.vnet.net>

On 11 May 2007, at 18:24, dimitris wrote: > I have > > In[5]:= > f = (o - 8)^4 - (e + 4)^8 > > Out[5]= > -(4 + e)^8 + (-8 + o)^4 > > In[6]:= > ff = Expand[f] > > Out[6]= > -61440 - 131072*e - 114688*e^2 - 57344*e^3 - 17920*e^4 - 3584*e^5 - > 448*e^6 - 32*e^7 - e^8 - 2048*o + 384*o^2 - 32*o^3 + o^4 > > Is it possible to simplify ff to f again? > > Thanks! > > I don't think Mathematica can do it automatically, because the most obvious way of carrying out this simplification relies on transformations of the kind that that Simplify or FullSimplify never use (such as adding and simultaneously subtracting some number, then rearranging the whole expression and factoring parts of it). These kind of transformations could be implemented but they would work in only a few cases, and would considerably increase the time complexity of simplifying. Here is an example of another transformation that will work in this and some similar cases: transf[f_, {e_, o_}] := With[{a = Integrate[D[f, e], e], b = Integrate[D[f, o], o]}, Simplify[a] + Simplify[b] + Simplify[(f - (a + b))]] (one can easily implment a version with more than two variables). This works in your case: ff = Expand[(o - 8)^4 - (e + 4)^8]; transf[ff, {e, o}] (o - 8)^4 - (e + 4)^8 and in quite many cases like yours : gg = Expand[(a + 3)^5 + (x - 7)^6]; transf[gg, {a, x}] (x - 7)^6 + (a + 3)^5 but not in all hh = Expand[(x - 5)^4 + (y - 3)^3]; transf[hh, {x, y}] (x - 5)^4 + y*((y - 9)*y + 27) - 27 Even this, however, is better than the answer FullSimplify gives: FullSimplify[hh] (x - 10)*x*((x - 10)*x + 50) + y*((y - 9)*y + 27) + 598 Unfortunately transf also has very high complexity (it uses Integrate) and is unlikely to be useful in cases other than sums of polynomials in different variables (without "cross terms") so I doubt that it would be worth implementing some version of it in FullSimplify. Andrzej Kozlowski

**References**:**question 1***From:*dimitris <dimmechan@yahoo.com>