Re: A way around the limitations of Re[] and Im[]

*To*: mathgroup at smc.vnet.net*Subject*: [mg51118] Re: A way around the limitations of Re[] and Im[]*From*: carlos at colorado.edu (Carlos Felippa)*Date*: Tue, 5 Oct 2004 04:37:04 -0400 (EDT)*References*: <cjr8lg$opp$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

carlos at colorado.edu (Carlos Felippa) wrote in message news:<cjr8lg$opp$1 at smc.vnet.net>... > As you know, Re[expr] and Im[expr] are left unevaluated when expr is > not numeric. I had good luck in simple cases with the following > substitution trick: > > Real[c_]:=c/.I->0; Imag[c_]:=(c-Real[c])/.I->1; > > Do you see any problem with these definitions? Not yet there. Found limitations because n*I is internally stored as Complex[0,n]. This version has done better: RealPart[c_]:=ComplexExpand[c]/.{Complex[0,_]->0}; Examples: Print[ RealPart[(a+I*b)^2] //InputForm]; Print[ RealPart[(a+I*b)^n] //InputForm]; Print[ RealPart[Exp[I*x]/I] //InputForm]; Print[ RealPart[Cosh[x+y*I]] //InputForm]; Results: a^2 - b^2 Abs[a]^n*Cos[n*Arg[a]] Sin[x] Cos[y]*Cosh[x]

**Follow-Ups**:**Re: Re: A way around the limitations of Re[] and Im[]***From:*Murray Eisenberg <murray@math.umass.edu>