I'm trying to find roots of the characteristic equation of a
dielectric-loaded waveguide. There are multiple roots of the equation and I
use FindRoot to find them. The sequence of roots is very important in my
further calculations.
Is there a routine or a clever way to (numerically) find all the roots of an
equation in a predefined values?
As it is now I have to look for each individual root manually and it gets a
bit tedious as the number of required modes increases.
Thanks a lot.
--
Regards,
Novak Petrovic
no...@itee.uq.edu.au
This probably depends on the specifics of your equations (polynomial?
exponential? analytic? other?) and region of interest (a segment?
rectangle in complex plane? something else?). A similar question was
raised at the URL below. Several replies showed various approaches one
might take.
http://forums.wolfram.com/mathgroup/archive/2001/Jun/msg00226.html
For certain special cases one might be able to get exact solutions e.g.
by using Solve and taking advantage of periodicity e.g. for a
trigonometric polynomial. This can only be done if the equation is such
that Solve can form a polynomial in some reasonable set of "variables".
Daniel Lichtblau
Wolfram Research
You might want to try the RootSearch package by Ted Ersek available on
MathSource. It is quite robust, and will find all the roots in a given
interval. I'm not certain at the moment if it gives them in order, but it
probably does. In any case you could always sort them.
David Park
dj...@earthlink.net
http://home.earthlink.net/~djmp/
From: Novak Petrovic [mailto:no...@itee.uq.edu.au]
> I'm trying to find roots of the characteristic equation of a
> dielectric-loaded waveguide. There are multiple roots of the equation and I
> use FindRoot to find them. The sequence of roots is very important in my
> further calculations.
>
> Is there a routine or a clever way to (numerically) find all the roots of an
> equation in a predefined values?
>
> As it is now I have to look for each individual root manually and it gets a
> bit tedious as the number of required modes increases.
I wrote a function called RootsInRange which does exactly what you want
(attached). This originally appeared in The Mathematica Journal which is
a good resource for such applications.
[contact the author to get the attachment - moderator]
Cheers,
Paul