Re: Thread function now working as expected
- To: mathgroup at smc.vnet.net
- Subject: [mg74616] Re: Thread function now working as expected
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 28 Mar 2007 01:45:29 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <euan64$do9$1@smc.vnet.net>
siewsk at bp.com wrote:
> 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 )
[snip]
Expand is evaluated before Thread is applied. Use a dummy head and a
transformation rule. For instance,
In[1]:=
eqn1 = Sqrt[1 + 196*x^4] == 12*x - 1 - 14*x^2;
eqn2 = Thread[(#1^2 & )[eqn1], Equal];
dummy = Thread[ed[eqn2], Equal] /. ed -> Expand
Out[3]=
4 2 3 4
1 + 196 x == 1 - 24 x + 172 x - 336 x + 196 x
Regards,
Jean-Marc