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

MathGroup Archive 2011

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

Search the Archive

Re: getting ride of 0.i

  • To: mathgroup at smc.vnet.net
  • Subject: [mg120567] Re: getting ride of 0.i
  • From: Joseph Gwinn <joegwinn at comcast.net>
  • Date: Fri, 29 Jul 2011 04:43:24 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <j0oomv$krj$1@smc.vnet.net> <j0rips$41r$1@smc.vnet.net>

In article <j0rips$41r$1 at smc.vnet.net>,
 Armand Tamzarian <mike.honeychurch at gmail.com> wrote:

> On Jul 27, 8:19 pm, Eli Fenichel <Eli.Fenic... at asu.edu> wrote:
> > I am trying to use FindMinimum to minimize the square of a function over 
> many variables (i.e., parameters).  The function itself has the potential
>  to generate imaginary numbers and involves numerical integration (the 
>  parameter values that minimize the function are real).  For clarification 
>  the function in evaluated at multiple points so it can be written as vector. 
>  By squaring the vector the numerical values of the elements are always real 
>  with no imaginary parts.  However, Mathematica often writes x + 0.i, where x 
>  is a some numerical value, for some of the elements.
> >
> > Typically, this can be ignored, the Chop command can be used, or it simply 
> > does not cause problems.  However, I keep getting an error: 
> > [cid:image003.... at 01CC4BBC.E87A0F30]
> >
> > NIntegrate::nlim: "t = Y[1.] is not a valid limit of integration."
> >
> > Y is an array with the parameters to be minimized.
> >
> > However, if evaluate the objective function to be minimized using 
> > replacement rules I get
> > x + 0.i.
> >
> > Is there a way for me tell Mathematica to always treat 0.i as 0 and drop 
> > it?  It seems to be causing problems in the FindMinimum call.
> >
> > Thanks,
> > Eli
> 
> Re[3 + 2 I]

It sounds like the "0 I" is in fact a roundoff error times I, such as 
10^-18 I.  This problem is what Chop[] used for.

Chop[x+0 I] will yield x, if roundoff error is in fact the problem.  One 
can tell Chop[] what threshold to use.

Joe Gwinn




  • Prev by Date: Re: Timing progress bar
  • Next by Date: Indeterminate result (numerical problem)
  • Previous by thread: Re: getting ride of 0.i
  • Next by thread: How Can I Make Plot Options Conditional?