MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: More /.{I->-1} craziness


Richard Fateman wrote:
> I think it is interesting that the same issue came up in the design of 
> another computer algebra system, years ago.
> That is, which objects are "atomic" and which are decomposable for 
> purposes of substitution.  And further,
> of those which are decomposable, how much cleverness should be applied 
> during substitution
> 
> For example,  Exp[I x] -Exp[- I x]  /.   Exp[I x] -> s   should probably 
> result in s-1/s.
> In Mathematica, one gets  s-E^(-Ix).
> 
> can either
> (1) Make this come out s-1/s
>   or
> (2) Argue that Mathematica already does the right thing, blame the user, 
> blame the documentation, blame the nature of mathematics, claim that it 
> is impossible to "read the user's mind" etc.
> 
> To me, the question is simply, by what programming technique can we make 
> Mathematica do the truly expected thing.

Notice that using the transformation rule Exp[I x] -> s (or f[x]->s in 
general) in the way you require, involves inverting it to produce 
x->g[s] for some g. In general g may not be unique, which is why the 
following code generates a warning, but essentially does what you want 
to do:

Solve[Eliminate[{ans == Exp[I x] - Exp[-I x], Exp[I x] == s}, {x}], ans]

Reduce (rather than Eliminate) yields a more mathematically precise 
answer, but the result is considerably more clumsy.

Note also that ReplaceAll *can* be used to do mathematical operations 
without complications provided the LHS of each rule is a variable (but 
not a constant such as I, Pi, etc).

David Bailey
http://www.dbaileyconsultancy.co.uk


  • Prev by Date: Re: Re: algebraic numbers
  • Next by Date: Re: Bind double-[ to keyboard shortcut
  • Previous by thread: Re: More /.{I->-1} craziness
  • Next by thread: Re: Re: Re: More /.{I->-1} craziness