Re: Thread function now working as expected

*To*: mathgroup at smc.vnet.net*Subject*: [mg74607] Re: Thread function now working as expected*From*: Peter Pein <petsie at dordos.net>*Date*: Wed, 28 Mar 2007 01:40:52 -0500 (EST)*References*: <euan64$do9$1@smc.vnet.net>

siewsk at bp.com schrieb: > I cannot get the Thread function to work on In[3] and I > am forced to do it manually in In[4] > > Does anyone has any idea why In[3] is not working as I expected? > > In[1]:= eqn1 = Sqrt[1 + 196*x^4] == 12*x - 1 - 14*x^2 > Out[1]= > 4 2 > Sqrt[1 + 196 x ] == -1 + 12 x - 14 x > > > In[2]:= eqn2 = Thread[(#1^2 & )[eqn1], Equal] > Out[2]= > 4 2 2 > 1 + 196 x == (-1 + 12 x - 14 x ) > > > In[3]:= dummy = Thread[Expand[eqn2], Equal] > Out[3]= > 4 2 2 > 1 + 196 x == (-1 + 12 x - 14 x ) > > > In[4]:= eqn3 = Equal[ eqn2[[1]] , Expand[ eqn2[[2]] ] ] > Out[4]= > 4 2 3 4 > 1 + 196 x == 1 - 24 x + 172 x - 336 x + 196 x > > > In[5]:= Simplify[eqn3] > Out[5]= > 2 > x (6 - 43 x + 84 x ) == 0 > > Hi, I guess, Expand evaluates before Mathematica "sees" the Thread, because In[3]:= eqn3 = ReleaseHold[Thread[HoldForm[Expand][eqn2], Equal]] Out[3]= 1 + 196*x^4 == 1 - 24*x + 172*x^2 - 336*x^3 + 196*x^4 evaluates to the desired result. In[4]:= Simplify[eqn3] Out[4]= x*(6 - 43*x + 84*x^2) == 0 But because I'm too lazy to type all these Thread[...,Equal], I would prefer In[5]:= Simplify[(#1^2 & ) /@ eqn1] Out[5]= x*(6 - 43*x + 84*x^2) == 0 Peter