MathGroup Archive 2002

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

Search the Archive

RE: FindRoot on complex 'interval'

  • To: mathgroup at
  • Subject: [mg36978] RE: [mg36943] FindRoot on complex 'interval'
  • From: "DrBob" <drbob at>
  • Date: Thu, 3 Oct 2002 05:33:33 -0400 (EDT)
  • Reply-to: <drbob at>
  • Sender: owner-wri-mathgroup at

Try this:

To the original function, add a function that's (a) zero when the
imaginary part is larger than some epsilon value you choose, (b) fairly
large when the imaginary part is 0 or negative, and (c) as smooth as
possible.  For instance, something like:

f=Max[(1 - x/epsilon)^5, 0]

This function has four continuous derivatives in the real components --
though not in the complex variable!

If it doesn't penalize the real root enough, multiply f by a constant
bigger than 1 and try again.

Bobby Treat

-----Original Message-----
From: David J Strozzi [mailto:dstrrozzi at MIT.EDU] 
To: mathgroup at
Subject: [mg36978] [mg36943] FindRoot on complex 'interval'


I am trying to use FindRoot in mathematica 4.0 to find the zeros of a 
complex-valued function of one complex variable.  In particular, I am 
looking for the one root with a positive imaginary part.  I have a rough

approximation for where the root should be, and this is good enough to 
give a reasonable guess.

However, there are always two other roots near the one I want - one with

0 imaginary part and another with negative imag part.  (For those who 
are interested, the zeros are the roots of the dispersion relation for a

plasma interacting with a laser).  Sometimes FindRoot picks up one of 
these instead of the one I want.

So, I'd like to tell mathematica to look for a root only in a certain 
rectangular region of the complex plane.  Well, if I could tell it, 
'look for roots with imag. part > something', I'd be happy too.

I tried specifying complex values for the start and stop points of an 
interval, hoping mathematica would interpret these as the corners of a 
rectangle.  No such luck.

Any help would be greatly appreciated.

I'd also like to point out that this and other issues about complex 
roots are not clearly addressed in the built-in help files.

Thanks much.

  • Prev by Date: RE: Mathematica stole my X so I had to kill it
  • Next by Date: Peculiar output from DSolve
  • Previous by thread: Re: FindRoot on complex 'interval'
  • Next by thread: Return["expr"] in functions and nested loops