MathGroup Archive 2007

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

Search the Archive

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


  • Prev by Date: Re: Thread function now working as expected
  • Next by Date: Re: Cantor Function problem
  • Previous by thread: Re: Thread function now working as expected
  • Next by thread: Re: Thread function now working as expected