Re: Replacement

*To*: mathgroup at smc.vnet.net*Subject*: [mg4458] Re: Replacement*From*: wagner at motel6.cs.colorado.edu (Dave Wagner)*Date*: Mon, 29 Jul 1996 02:37:15 -0400*Organization*: University of Colorado, Boulder*Sender*: owner-wri-mathgroup at wolfram.com

In article <4shud7$g7n at ralph.vnet.net>, Sergej Gerassimov <ges at vsnhdd.cern.ch> wrote: > >x/Sqrt[a^2+b^2]+Sqrt[a^2+b^2]/y //. Sqrt[a^2+b^2]->r >gives: > > x r >------------- + - >Sqrt[a^2+b^2] y > >(replace one only in the numerator) >How to replace Sqrt[a^2+b^2] by r everywhere in the expression? The reason what you're doing doesn't work is that the Sqrt in the denominator is represented internally as Power[a^2+b^2, -1/2], which doesn't match the pattern. As somebody in this forum once said, "Pattern matching is relentlessly syntactic." (Please take credit for this, whoever said it.) A general solution to this type of problem is to introduce a dummy variable and use Solve: In[15]:= Solve[{dummy==x/Sqrt[a^2+b^2]+Sqrt[a^2+b^2]/y, r==Sqrt[a^2+b^2]}, {dummy},{a,b}] Out[15]= x r ------------- + - 2 2 y Sqrt[a + b ] The arguments to Solve tell it to solve for dummy and to attempt to eliminate a and b. Dave Wagner Principia Consulting (303) 786-8371 dbwagner at princon.com http://www.princon.com/princon ==== [MESSAGE SEPARATOR] ====