From: Mars creature <>
Newsgroups: comp.soft-sys.matlab
Subject: Re: finding complex root from nonlinear equations
Date: Sun, 4 Jan 2009 08:21:45 -0800 (PST)
Lines: 38
Message-ID: <>
References: <> 
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
X-Trace: 1231086105 18663 (4 Jan 2009 16:21:45 GMT)
NNTP-Posting-Date: Sun, 4 Jan 2009 16:21:45 +0000 (UTC)
Injection-Info:; posting-host=; 
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: 
	Gecko/20080416 Fedora/ Firefox/,gzip(gfe),gzip(gfe)
Xref: comp.soft-sys.matlab:509754

On Jan 3, 5:49 pm, "Roger Stafford"
<> wrote:
> Mars creature <> wrote in message <046c08c7-878f-4967-bab=>...
> > Hi Matlab users,
> >   I know fsolve can find the real roots from polynomial equations, but
> > I don't know how to find complex roots, like x^2+1=3D0. Also I have a
> > complicated nonlinear equation with complex coefficients to solve
> > numerically, anyone give me a hint where to find the instruction?
> > Thank you very much!
> > JB wang
>   For polynomial equations the matlab function 'roots' will find all root=
s, complex or real.  For general nonlinear equations, Mathworks' advice in =
their 'fsolve' documentation is "fsolve only handles real variables. When x=
 has complex variables, the variables must be split into real and imaginary=
 parts."  Presumably this splitting would also apply to the values in the f=
unction F(x) to be zero-ed.  Its real and imaginary parts could be brought =
to zero as separate elements of the F(x) vector.  In effect you would be do=
ubling the number of unknowns and the number of equations.
>   As to finding all possible roots, 'fsolve' only promises to find one ro=
ot.  However that can be manipulated by selecting differing starting values=
 on different calls to 'fsolve'.  That might be easier said than done, thou=
> Roger Stafford

Thanks Roger,
  This is helpful.  I can see that polynomial equations can be split
into two equations containing the real and imag parts. However, it
might be a problem for more complicated nonlinear equations, like
including sin/cos and sqrt of x and even more complicated cases, when
the whole equation is not easy to split. I was wondering if there's
solver like fsolve, and can find the complex roots without splitting
the equation. I googled but can not find very useful information.
Thank you very much!!
JB wang