ReplaceAll and ReplaceRepeated Strange Behavior

• To: mathgroup at smc.vnet.net
• Subject: [mg111460] ReplaceAll and ReplaceRepeated Strange Behavior
• From: blamm64 <blamm64 at charter.net>
• Date: Mon, 2 Aug 2010 07:04:48 -0400 (EDT)

```Given the expression:

eff = (L*(-L*mu+dm*Pi*Cos[b]))/(dm*Pi*(dm*Pi*mu+L*Cos[b]))

After this I enter

eff /. {dm*Pi -> L/Tan[a]}

and get a result that does not, for a reason I cannot fathom and
believe to be a bug, replace one instance of dm*Pi. The result of the
evaluation yields

L*(-L*mu+L*Cos[b]*Cot[a])/(dm*Pi*(L*Cos[b]+L*mu*Cot[a]))

Precisely the same result occurs with eff //.{dm*Pi->L/Tan[a]}

Why is the one remaining dm*Pi not replaced with L/Tan[a]?

In fact, when define manually define eff1 as

eff1 = (L*(-L*mu + L*Cos[b]*Cot[b]))/(dm*Pi*(L*Cos[b]+L*mu*Cot[a]))

which is as you can see the result of the first ReplaceAll execution,
and then enter

eff1 /. {dm*Pi->L/Tan[a]}

Mathematica returns eff1 unaltered!

Now, I say this is a bug, so of course I'm probably missing something
and it isn't a bug.  I have to jump through syntactic hoops to get the

FullSimplify[eff /.{dm*Pi->L/Tan[a]}]/.{dm*Pi->L/Tan[a]}//FullSimplify

and FullSimplify[eff /. {dm*Pi->L/Tan[a]} does no good either.

It is not at all obvious to me what I might be missing with such an
apparently simple replacement.

By the way, how do you guys copy input or output from Mathematica
notebook into this usergroup window?  I had to do all this by hand,
copy it from here into a notebook, and execute the notebook cells just
to make sure I was getting it correct.  I ran across this originally
when I was constructing a simple notebook for doing some Acme power
screw calculations.

-Brian Lamm
(Windows XP x64 Version 2003 SP2, Mathematica 7.0.1)

```

• Prev by Date: Re: Problem with Min Max between two functions
• Next by Date: Re: Mathematica- Use a previous equation into the function Function
• Previous by thread: Re: All pairs shortest paths
• Next by thread: Re: ReplaceAll and ReplaceRepeated Strange Behavior