[Date Index]
[Thread Index]
[Author Index]
Re: Real and Complex Roots presented in a single plot
*To*: mathgroup at smc.vnet.net
*Subject*: [mg91847] Re: Real and Complex Roots presented in a single plot
*From*: "David Park" <djmpark at comcast.net>
*Date*: Wed, 10 Sep 2008 05:08:06 -0400 (EDT)
*References*: <ga5koj$r82$1@smc.vnet.net>
Narasimham,
I'll do your problem using the Presentations package.
Needs["Presentations`Master`"]
First I find your notation just a little jarring. z is usually used for the
complex variable, x is usually the real part of a complex number and I'll
use f for the function.
f[z_] := 1.3 Sin[1.7 z] + 0.6 Sin[4 z]
The easiest way to see the zeros is to make a contour plot of the modulus of
the function. All the zeros occur in a narrow strip about the x-axis.
With[
{zmin = -I,
zmax = 18 + I,
contourlist = {0, 0.1, 0.2, .5, 1, 2}},
Draw2D[
{ComplexCartesianContour[f[z], {z, zmin, zmax}, Abs,
Contours -> contourlist,
ColorFunctionScaling -> False,
ColorFunction -> (ContourColors[contourlist,
ColorData["SolarColors"]][#] &),
PlotPoints -> {50, 15},
MaxRecursion -> 3,
PlotRange -> {0, 4}]},
AspectRatio -> Automatic,
Frame -> True, FrameLabel -> {Re, Im}, RotateLabel -> False,
PlotLabel -> Row[{"Modulus of ", f[z]}],
ImageSize -> 900]
]
The following gives a closeup of the region that contains the first seven
zeros.
With[
{zmin = -.5 - I,
zmax = 5 + I,
contourlist = {0, 0.1, 0.2, .5, 1, 2, 10}},
Draw2D[
{ComplexCartesianContour[f[z], {z, zmin, zmax}, Abs,
Contours -> contourlist,
ColorFunctionScaling -> False,
ColorFunction -> (ContourColors[contourlist,
ColorData["SolarColors"]][#] &),
PlotPoints -> {30, 15},
MaxRecursion -> 3,
PlotRange -> {0, 11}]},
AspectRatio -> Automatic,
PlotRange -> {{-.5, 5}, {-1, 1}},
Frame -> True, FrameLabel -> {Re, Im}, RotateLabel -> False,
PlotLabel -> Row[{"Modulus of ", f[z]}],
ImageSize -> 900]
]
I might be happy with those diagrams, but if we want numerical root values
we can click the root locations off the diagram, using DrawingTools, and
then refine the values with FindRoot.
roots = z /.
FindRoot[
f[z], {z, ToComplex@#}] & /@ {{-0.005546, -0.02102}, {1.285,
0.3771}, {1.279, -0.3678}, {2.081,
0.01109}, {3.462, -0.008173}, {4.194, -0.3485}, {4.213, 0.345}} //
Chop
{0, 1.27946+ 0.374308 I, 1.27946- 0.374308 I, 2.09155, 3.43663,
4.19786- 0.355809 I, 4.19786+ 0.355809 I}
The following then plots just the roots in the Argand plane.
Draw2D[
{ComplexCirclePoint[#, 3, Black, Red] & /@ roots},
AspectRatio -> Automatic,
PlotRange -> {{-.5, 5}, {-1, 1}},
Frame -> True, FrameLabel -> {Re, Im}, RotateLabel -> False,
PlotLabel -> Row[{"Some Roots of ", f[z]}],
BaseStyle -> {FontSize -> 12},
ImageSize -> 900]
--
David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/
"Narasimham" <mathma18 at hotmail.com> wrote in message
news:ga5koj$r82$1 at smc.vnet.net...
> 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 ?
>
> Regards,
> Narasimham
>
Prev by Date:
**Re: Real and Complex Roots presented in a single plot**
Next by Date:
**Transformations in expressions**
Previous by thread:
**Re: Real and Complex Roots presented in a single plot**
Next by thread:
**Error in file / load entire notebook into memory**
| |