[Date Index] [Thread Index] [Author Index]
RE: FindRoot on complex 'interval'
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 smc.vnet.net Subject: [mg36978] [mg36943] FindRoot on complex 'interval' Hello, 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.