Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

Re: How to eliminate noises? A better way perhaps.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122732] Re: How to eliminate noises? A better way perhaps.
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Wed, 9 Nov 2011 06:22:56 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111021121.GAA03503@smc.vnet.net> <j8tl5t$f3t$1@smc.vnet.net> <j90gmp$shi$1@smc.vnet.net> <201111081215.HAA04941@smc.vnet.net>

On 8 Nov 2011, at 13:15, Noqsi wrote:

> Now, note the the documentation for Root makes the following promise:
> "The ordering used by Root[f,k] takes real roots to come before
> complex ones, and takes complex conjugate pairs of roots to be
> adjacent. " One difficulty with this promise is that it doesn't tell
> you how to find the break between the real part of the vector and the
> complex part. The following code assumes that N[Root[f,n]] will
> reliably have head Real for real roots.

If f is a polynomial, as it is in your case, than this will be true. The 
reason is that the roots of a polynomial can always be completely 
isolated and Mathematica does so  the first time a numerical value of a 
root is used. Although Root isolation uses extended precision arithmetic 
(it can also be done exactly, if you use the options ExactRootIsolation 
but that will make the computation slower and should not affect the 
result), applying N with MachinePrecision to a real Root object should 
always produce a number with head Real  (as long as the coefficients of 
f are exact; note that Root has the Attribute NHoldAll)

By the way, this is not going to be necessarily true when f is a 
transcendental function. In this case a Root object may represent a 
cluster of roots, some of which could be real and some not, and it may 
require high precision arithmetic to decide. In this situation 
Mathematica will not perform root isolation until sufficient precision 
is specified. But when f is a polynomial this is not an issue.

Andrzej Kozlowski




  • Prev by Date: NIntegrate fails to work...
  • Next by Date: Re: nVidia Optumus prevents using CUDA?
  • Previous by thread: Re: How to eliminate noises? A better way perhaps.
  • Next by thread: Re: How to eliminate noises? A better way perhaps.