Re: ReplaceAll and ReplaceRepeated Strange Behavior
- To: mathgroup at smc.vnet.net
- Subject: [mg111505] Re: ReplaceAll and ReplaceRepeated Strange Behavior
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 3 Aug 2010 06:41:36 -0400 (EDT)
eff = (L*(-L*mu + dm*Pi*Cos[b]))/(dm*Pi*(dm*Pi*mu + L*Cos[b]));
The replacement rule operates on the FullForm:
eff // FullForm
Times[Power[dm,-1],L,Power[Pi,-1],Power[Plus[Times[dm,mu,Pi],Times[L,Cos[b]]],-1],Plus[Times[-1,L,mu],Times[dm,Pi,Cos[b]]]]
Keep the LHS of a rule as simple as possible
eff /. {dm -> L/(Tan[a] Pi)}
(Tan[a]*(L*Cot[a]*Cos[b] - L*mu))/
(L*mu*Cot[a] + L*Cos[b])
Before copy and paste convert expressions to InputForm.
Bob Hanlon
---- blamm64 <blamm64 at charter.net> wrote:
=============
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
'right' answer:
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)