Re: Only real data

• To: mathgroup at smc.vnet.net
• Subject: [mg122150] Re: Only real data
• From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
• Date: Sun, 16 Oct 2011 07:08:46 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <201110151003.GAA03159@smc.vnet.net>

On 15 Oct 2011, at 12:03, J=F6rg Schr=F6der wrote:

> Hello,
>
>
>
> I have a problem to exclude complex solutions. I tried
>
>
>
> data1={2,3/4,1.3,=E4}
>
>
>
> {2,3/4,1.3,=E4}
>
>
>
> Cases[data1, Except[_Complex]]
>
>
>
> {2,3/4,1.3}
>
>
>
> and got, what I expected. But when I have data like
>
>
>
> {0,0,-I Sqrt[3],I Sqrt[3]}
>
>
>
> The above doesn't work. Is this due to a different Head? Is there an =
easy
> way to filter the non-complex data?
>
>
>
>
>
>
> Greetings
>
>
>
> Joerg
>
>
>
> ################
>
> Dr. J=F6rg Schr=F6der
>
> Bremen, Germany
>

Yes. ,I Sqrt[3] is a product so it has head Times and not Complex. You
could use:

Select[data, FreeQ[#, Complex] &]

or

Select[data, Element[#, Reals] &]

I consider the second approach better, but note that in more complicated
cases neither will guarantee that the numbers you have selected are all
the real numbers in your list.
For example, if

data = {1, I, Cos[2 + I] + I*Sin[2]*Sinh[1]}

both methods will fail to select Cos[2 + I] + I*Sin[2]*Sinh[1]  which is
a real number since:

ComplexExpand[Cos[2 + I] + I*Sin[2]*Sinh[1]]

cos(2) cosh(1)

Andrzej Kozlowski

• References:
• Only real data
• From: Jörg Schröder <HB-Kowalczyk-Schroeders@t-online.de>
• Prev by Date: Re: How to create this kind of list
• Next by Date: Re: How to create this kind of list
• Previous by thread: Re: Only real data
• Next by thread: Re: Only real data