Re: ReplaceAll and ReplaceRepeated Strange Behavior
- To: mathgroup at smc.vnet.net
- Subject: [mg111484] Re: ReplaceAll and ReplaceRepeated Strange Behavior
- From: Eric Loots <eric.loots at gmail.com>
- Date: Tue, 3 Aug 2010 06:35:48 -0400 (EDT)
Hi,
I'm new to this group, but I'll have a go at this.
The rule dm*Pi -> L/Tan[a] must look for matches of the pattern. I
guess that the pattern just doesn't match in all cases. When you look
at the output after entering the first line of input, you see that one
of the dm * Pi terms is rearranged.
A simple solution to your problem is to apply another for of the rule:
dm -> L / Pi / Tan[a]
Adding Simplify on top of that:
(L*(-L*mu + dm*Pi*Cos[b]))/(dm*Pi*(dm*Pi*mu + L*Cos[b])) /. dm -> L /
=CF=80/Tan[a] // Simplify
gives:
(Cos[b] - mu Tan[a])/(Cos[b] + mu Cot[a])
With respect to copy/paste from a Notebook to the group, I'm using
regular mail to post this reply, and an ordinary copy/past just works.
Regards -- Eric
On 02 Aug 2010, at 13:04, blamm64 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)
>