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] ====