Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1992
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1992

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

Search the Archive

Re: Expand[] on the RHS of a rule

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: Re: Expand[] on the RHS of a rule
  • From: roger at isy.liu.se (Roger Germundsson)
  • Date: Thu, 28 May 92 15:50:00 +0200

> From: athos at warp.stanford.edu (Athos Kasapi)
> Subject: Expand[] on the RHS of a rule
> 
> Has anybody found a way to work around the problem that Expand does not
> work when it is on the right hand side of a rule?  For example, if I
> define
> 
> p := Sqrt[ (a + b) (c + d) ]
> 
> and then apply the rule
> 
> p /. Sqrt[ x_ y_ ] -> Sqrt[ Expand[ x y ] ]
> 
> Then all I get back is
> 
> Sqrt[ (a + b)(c + d) ]
> 
> What I wanted was
> 
> Sqrt[ ac + ad + bc + bd ]
> 
> I'd appreciate any suggestions for getting around this.
> 
> Athos Kasapi
> 
> 
You should use a delayed rule, i.e. 

In[11]:= r = Sqrt[ x_ y_ ] :> Sqrt[ Expand[ x y ] ] 
 
Out[11]= Sqrt[(x_) (y_)] :> Sqrt[Expand[x y]]

In[12]:= Sqrt[ (a+b)(c+d) ] /. r
 
Out[12]= Sqrt[a c + b c + a d + b d]

... if you use -> the right hand side gets evaluated 
only when the rule is defined. In this case 

In[13]:= Expand[ x y ]
 
Out[13]= x y

Happy computing // Roger







  • Prev by Date: re: speed
  • Next by Date: non-linear fitting of data
  • Previous by thread: Re: Expand[] on the RHS of a rule
  • Next by thread: Re: Expand[] on the RHS of a rule