Re: Re: Replace not spotting a replacement
- To: mathgroup at smc.vnet.net
- Subject: [mg103452] Re: [mg103422] Re: [mg103399] Replace not spotting a replacement
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 21 Sep 2009 19:29:20 -0400 (EDT)
- References: <200909201021.GAA24204@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
I suppose I'd do it this way:
Sqrt[2 \[Pi]] \[Tau]^(3/2) /.
First@Solve[Sqrt[2 \[Pi] \[Tau]] == \[Mu], \[Tau]] // PowerExpand
\[Mu]^3/(2 \[Pi])
Bobby
On Mon, 21 Sep 2009 04:50:56 -0500, <danl at wolfram.com> wrote:
>> Hi Folks,
>>
>> Seems the replace function is being a bit dim here. This fails:
>>
>> Sqrt[2 \[Pi]] \[Tau]^(3/2) /. Sqrt[ 2 \[Pi] \[Tau]] -> \[Mu]
>>
>> Apologies if this is an FAQ - I couldn't see anything about it. What
>> do I
>> need to do here to coerce Mathematica into making this replacement? I
>> tried using the
>> Collect function on tau first, but that didn't seem to work. I also
>> tried
>> re-writing the replacement rule as
>>
>> Sqrt[2 \[Pi]] \[Tau]^(3/2) /. Sqrt[ 2 \[Pi] ] t^(1/2) -> \[Mu]
>>
>> But still no joy.
>>
>> Anyone know?
>>
>> Many thanks,
>> David.
>
> It's more of an Occasionally Asked Question. Replacement is working fine;
> the fact is, your expression does not contain \[Tau]^(1/2). Syntactic
> replacement cares about niceties of that sort.
>
> What you want can usually be attained by algebraic replacement. I say
> "usually" because it can be a bit tricky to get the right algebraic
> relation recognized where it is needed. Here is a slight alteration of
> some code from a few years back, that works on your example.
>
> replacementFunction[expr_, rep_, vars_] :=
> Module[{num = Numerator[expr], den = Denominator[expr],
> hed = Head[expr], base, expon},
> If[PolynomialQ[num, vars] &&
> PolynomialQ[den, vars] && ! NumberQ[den],
> replacementFunction[num, rep, vars]/
> replacementFunction[den, rep, vars],
> If[hed === Power && Length[expr] == 2,
> base = replacementFunction[expr[[1]], rep, vars];
> expon = replacementFunction[expr[[2]], rep, vars];
> PolynomialReduce[base/expon, rep, vars][[2]],
> If[Head[hed] === Symbol &&
> MemberQ[Attributes[hed], NumericFunction],
> Map[replacementFunction[#, rep, vars] &, expr],
> PolynomialReduce[expr, rep, vars][[2]]]]]]
>
> In[10]:= replacementFunction[Sqrt[2 \[Pi]] \[Tau]^(3/2),
> Sqrt[2 \[Pi] \[Tau]] - \[Mu], \[Tau]]
>
> Out[10]= \[Mu]^3/(2 \[Pi])
>
> Some day I'll have an epiphany, or at least a minor vision, and see a way
> to code this so that it always just "does the right thing", whatever that
> might be.
>
> Daniel Lichtblau
> Wolfram Research
>
>
>
>
--
DrMajorBob at yahoo.com
- References:
- Replace not spotting a replacement
- From: "claranet news" <david@carter-hitchin.clara.co.uk>
- Replace not spotting a replacement