Re: Replacement Rule with Sqrt in denominator
- To: mathgroup at smc.vnet.net
- Subject: [mg114440] Re: Replacement Rule with Sqrt in denominator
- From: Roland Franzius <roland.franzius at uos.de>
- Date: Sat, 4 Dec 2010 06:15:17 -0500 (EST)
- References: <ic5igm$44p$1@smc.vnet.net> <ic8ad7$81f$1@smc.vnet.net> <id7t95$lh1$1@smc.vnet.net> <idagbn$js7$1@smc.vnet.net>
Am 03.12.2010 11:21, schrieb Richard Fateman:
> On 12/2/2010 2:43 AM, Roland Franzius wrote:
> ....
>
>>
>> Use rules like
>>
>> HoldPattern[x^Rational[a_,2]] :> G^a
>>
>> eg this works for contraction of products of fractional powers
>>
>> ((1 + I x)^(1/2)/(1 - I x)^(1/2)) /.
>> {HoldPattern[a_^Rational[b_, c_] d_^Rational[e_, c_]]
>> :> (a^b d^e)^(1/c)}
>
> Not really. Consider the very similar example
>
> ((1 + I x)^(a/2)/(1 - I x)^(a/2)) /. {HoldPattern[
> a_^Rational[b_, c_] d_^Rational[e_, c_]] :> (a^b d^e)^(1/c)}
>
> where we have a/2 instead of 1/2
>
> and the pattern does not match. Maybe you don't want it to match in
> this case, but the problem persists even if you do. Like this pattern:
>
> ((1 + I x)^(a/2)/(1 - I x)^(a/2)) /. {HoldPattern[
> a_^(b_/c_) d_^(e_/c_)] :> (a^b d^e)^(1/c)}
>
> which fails.
It seems you have not yet recognized that pattern matching in
Mathematica fails by construction if the symbol name of pattern, here a_
concides with a symbol in the expression.
The rest of these kind of problems - different typisation of numbers and
expressions, real number rules failing in complex cases, comlex
multivaluedness in fractional powers logarithms and contour integrals,
pattern evaluation precedence and rule noncommutativity of rule
application in real time and many different problems of this kind are
deeply knitted into the design of a pattern replacement language like
Mathematica.
So the alternatives are to write an alternative language or to learn
mastering the of use it. The same alternative holds for all of
mathematics.
--
Roland Franzius