Subject: [mg91852] Re: Real and Complex Roots presented in a single plot

From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>

Date: Wed, 10 Sep 2008 05:09:04 -0400 (EDT)

Organization: The Open University, Milton Keynes, UK

References: <ga5koj$r82$1@smc.vnet.net>

Narasimham wrote:
> z[x_] = 1.3 Sin[1.7* x] + 0.6 Sin[4* x] ;
> Plot[z[x], {x, 0, 18}]
>
> In the above plot we can see all the real roots of z very
> approximately at {2.1,3.4, 5.5, 7.6, 9, 11, 13.1, 14.5, 16.5}, as the
> curve crosses x-axis.
>
> We can also recognize and see the real parts of all the
> complex roots of z where the curve is nearest to x -axis at {1.4,
> 4.2, 6.6, 9.6, 12.3, 15.3, 17.7}. They are near to x-values where the
> local maxima/minima occur.But we cannot 'see' their complex parts, as
> they need to be computed.
>
> After computation of all real and complex roots I would like to
> represent all roots, real and complex roots alike, on an ( x - y )
> Argand diagram (in a 2D plot) with the real part on x - axis and
> imaginary part on y - axis. How to do this ?
Assuming I have correctly understood what you are looking for,
visualizing real as well as complex roots can be achieve by formatting
the list of solutions as a list of pairs {Re, Im} that can be displayed
with ListPlot. For instance,
z[x_] = 1.3 Sin[1.7*x] + 0.6 Sin[4*x]
g = Plot[z[x], {x, 0, 18}]
sols = Reduce[Rationalize[z[x], 0] == 0, x] // N
Select[List[sols /. C[1] -> 0 // ToRules], (0 <= Re[x /. #] <= 18 &)]
pts = Through[{Re, Im}[x /. %]] // Transpose
p = ListPlot[pts, PlotStyle -> {Orange, PointSize[Large]}]
Show[g, p]
HTH,
-- Jean-Marc