An archive the questions from Mark's Fall 2018 Complex Variables Course.

The final exam problem

Mark

The problem

Let f denote your favorite cubic polynomial and let M denote the smallest integer such that the Julia set of

g(z) = \frac{1}{M} f(z)

is connected.

  1. What is your function g(z)?
  2. Find any critical points of g.
  3. Find any fixed points of g.
  4. Plot the Julia set of g the orbit generated by g starting from critical points.
  5. Do the orbits converge to the fixed points?

Notes - Read carefully!

A few of you have not answered the favorite cubic polynomial question. If you haven’t, then do so - it will help your grade!! Be sure to typeset your mathematics properly and post any code or reference any software that you use. You may use any software that you like to generate the images. I would guess that my online tool is the easiest. You may use any software that you want to solve the equations numerically.

Feel free to talk to one another and/or emulate code that is posted.

And have fun!

PengMas

For f(z)=4z^3+3z^2+2z+1 I have an M=7. So, g(z)=\frac{4}{7}z^3+\frac{3}{7}z^2+\frac{2}{7}z+\frac{1}{7}.
I found the critical and fixed points in Mathematica.
For the critical points I took the derivative of g and used NSolve[]. So, the critical points are:
{{z -> -0.25 - 0.322749 I}, {z -> -0.25 + 0.322749 I}}.
For the fixed points I set g=z and used Nsolve once more and got
{{z -> -1.61803}, {z -> 0.25}, {z -> 0.618034}}.
From this I determined that 0.25 is an attractor and the other two are repelling. The plot look like the following (achieved using https://marksmath.org/visualization/polynomial_julia_sets/):

Great_Big

My favorite polynomial was f(z) = -\sqrt{2}z^3+\frac{1+\sqrt{5}}{2}z^2+e^{\sqrt{3}}z-\pi.

I have M=5 yielding a connected julia set. This means that g(z) = \frac{1}{5}f(z)=-\frac{\sqrt{2}}{5}z^3+\frac{1+\sqrt{5}}{10}z^2+\frac{e^{\sqrt{3}}}{5}z-\frac{\pi}{5}.

In order to find the critical points of g(z), we will find the solutions to g'(z)=0 using Wolfram Mathematica:

f[z] = (-Sqrt[2]/5)*z^3+((1+Sqrt[5])/10)*z^2+(Exp[Sqrt[3]]/5)*z-(Pi/5) 
f'[z] = D[f[z],z]
NSolve[f'[z]==0,z]

This code yields {{z->-0.834229},{z->1.59698}} as solutions.

Now, to find the fixed points of g(z), we will find the solutions to g(z)=z using Wolfram Mathematica once again:

f[z]= (-Sqrt[2]/5)*z^3+((1+Sqrt[5])/10)*z^2+(Exp[Sqrt[3]]/5)*z-(Pi/5)
NSolve[f[z]==z,z]

This code yields {{z->-1.10235},{z->1.12324 -0.868064 I},{z->1.12324 +0.868064 I}} as solutions

Below we have a plot of the Julia set of g(z) with orbits generated by starting near the critical points z_1 = -0.834229 and z_2 = 1.59698:

From this plot, we can see that the orbits of z_1 and z_2 converge to the fixed point z_3 = -1.10235.

Confirming the plot, from Wolfram Mathematica we see that z_3 is an attractive fixed point, while z_4 = 1.12324 -0.868064 i and z_5 = 1.12324 +0.868064 i are repulsive fixed points.

Abs[f'[-1.10235]]
0.61412
Abs[f'[1.12324-0.868064I]]
1.79683
Abs[f'[1.12324+0.868064I]]
1.79683

Have a great winter break everyone!

JoeLemmings

My favorite cubic was f(x) = x^3 + 9.

I have an M = 9 to get a connected Julia set, so

g(z) = \tfrac{1}{9}z^3 - 1 and g'(z) = \tfrac{1}{3}z^2

We find critical points by setting g'(z) = 0, thus z = 0 is a critical point. If z = 0 were a fixed point it would be a super attractive fixed point, but it is not, so lets actually find the fixed points.

To find fixed points we want to solve g(z) = z, and for this I used the following python code:

from numpy import roots
root_list = roots([1/9,0,-1,1])
print(root_list)

and I got

[-3.41147413, 2.2266816, 1.18479253]

to see what kind of fixed points we need to plug them into g'(z), so I used the following python code:

def fixed_point_test(z): return (1/3)*z**2

and found:

fixed_point_test(-3.41147413) = 3.8793852465530856
fixed_point_test(2.2266816) = 1.65270364925952
fixed_point_test(1.18479253) = 0.46791111304793354

It looks like -3.41147 and 2.2266816 are repulsive and 1.18479253 is attractive, let’s see if this is what the graph tells us

Looks like if I start just smaller than either of my two repulsive fixed points, the orbit is pulled into the attractive fixed point, whereas if I start larger than that the function blows up and goes to \infty.

This is all well and good, but it seems my favorite cubic is kinda boring, with an orbit of one, perhaps we can see a cooler picture if we found a cubic with an orbit of three. Since my cubic was in the family f_c(z) = z^3 + c, let use that one to find a super attractive orbit of three. Since we know the super attractive fixed point of this family is z=0, we want to see what f(f(f(0))) gives use in terms of c, here is some python code to help us with that:

from sympy import *
c = Symbol('c')

def g(z): return z**3 + c

def g_3(z): return g(g(g(z)))

expand(g_3(0))

and that gave me the function c^9 + 3c^7 + 3c^5 + c^3 + c, so lets set that equal to zero and solve to get

[-0.26442502+1.26048934j -0.26442502-1.26048934j 0.26442502+1.26048934j
0.26442502-1.26048934j -0.55757284+0.54034682j -0.55757284-0.54034682j
0.55757284+0.54034682j 0.55757284-0.54034682j 0. +0. j]

Nine roots, all of which should be values of c that give us super attractive orbits of 3, but lets use the first to check graphically:

Looks like we got the triangle we were looking for, and just to add some different color, here’s the same image with red shading instead:

Anyway, hope everyone stays safe and warm during the snow storm we are about to get, and then has a wonderful break.

warsh

First Favorite Polynomial
My first favorite cubic polynomial is f(z)=z^3-z. f_{1}(z) has a connected Julia set, so for g_{1}(z), we let M=1.

  1. g_{1}(z)=z^3-z

  2. The critical points of g_{1} are where g'_{1}(z)=0.
    g'_{1}(z)=3z^2-1
    3z^2-1=0
    z^2=\frac{1}{3}
    So there are critical points at \sqrt{\frac{1}{3}} and -\sqrt{\frac{1}{3}}.

I verified this with Mathematica using the following code:

g1 = z^3 - z;
dg1 = D[g1, z];
Solve[dg1 == 0, z]
NSolve[dg1 == 0, z]

Which gives us:
{{z -> -(1/Sqrt[3])}, {z -> 1/Sqrt[3]}}
{{z -> -0.57735}, {z -> 0.57735}}
This is what we got when solving it by hand.

g_{1} has two critical points at \sqrt{\frac{1}{3}} and -\sqrt{\frac{1}{3}}.

  1. Fixed points of g_{1} are the points that satisfy g_{1}(z)=z.
    g_{1}(z)=z^3-z=z
    z^3-2z=0
    z(z^2-2)=0
    This is satisfied for z=0, z=\sqrt{2}, and z=-\sqrt{2}.

I verified this with Mathematica as well:

g1 = z^3 - z;
Solve[g1 == z, z]
NSolve[g1 == z, z]

Which gave us:
{{z -> 0}, {z -> -Sqrt[2]}, {z -> Sqrt[2]}}
{{z -> -1.41421}, {z -> 0.}, {z -> 1.41421}}.
This verifies our previous answer.

0, \sqrt{2}, and -\sqrt{2} are the fixed points of g_{1}.

  1. The plot of the Julia set of g_{1} and the orbits generated by g_{1} starting from \sqrt{\frac{1}{3}} and -\sqrt{\frac{1}{3}}:

  2. The orbits seem to converge onto the fixed point at the origin, and the orbits bounce back and forth across the imaginary axis while remaining on the real axis. Neither orbit converges onto the fixed points at \sqrt{2} or -\sqrt{2}.

To be sure of this, I decided to classify the fixed points by finding the value of |g'_{1}(z)| at each of the fixed points:
|g'_{1}(\sqrt{2})|=|3(\sqrt{2})^2-1|=|3(2)-1|=|5|>1, so \sqrt{2} is a repulsive fixed point.
|g'_{1}(-\sqrt{2})|=|3(-\sqrt{2})^2-1|=|3(2)-1|=|5|>1, so -\sqrt{2} is a repulsive fixed point.
|g'_{1}(0)|=|3(0)^2-1|=|-1|=1, the origin is a neutral fixed point.

Because the fixed point at 0 is not attractive, I decided to iterate the function starting at each of the critical points a few times just to get a better picture of how it may be converging onto the origin. I did this iteration in Mathematica:

g1[z_] = z^3 - z;
Table[N[Nest[g1, Sqrt[1/3], n]], {n, 1, 15}]
Table[N[Nest[g1, - Sqrt[1/3], n]], {n, 1, 15}]

This gave these lengthy outputs:
{-0.3849, 0.327878, -0.29263, 0.267571, -0.248415, 0.233085, -0.220422, 0.209712, -0.200489, 0.192431, -0.185305, 0.178942, -0.173212, 0.168015, -0.163272} for \sqrt{\frac{1}{3}}.
{0.3849, -0.327878, 0.29263, -0.267571, 0.248415, -0.233085, 0.220422, -0.209712, 0.200489, -0.192431, 0.185305, -0.178942, 0.173212, -0.168015, 0.163272} for -\sqrt{\frac{1}{3}}.
They have not gotten very close to the origin yet, but my computer really didn’t want to do any more than 15 iterations. I think that it is pretty safe to assume that with more iteration, the orbits will continue to converge on the fixed point 0.

The orbits converge on the fixed point at 0, but not on the fixed points at \sqrt{2} and -\sqrt{2}.

Second, and also Favorite, Polynomial
All of this was previously written as a reply to my original post, but I figured I shouldn’t take up that extra space on this forum so I’ll just edit it in here:

At the beginning of the semester, I actually put two polynomials, so I figured its only fair if I give them similar treatments (I also don’t have anything to do today, so I figured I might as well do this to pass sometime). I’ll keep this much shorter than my first one. The second polynomial was f_{2}(z)=z^3+z and it already has a connected Julia set as well. Since M=1,

g_{2}(z)=z^3+z.

For the critical points, I used mathematica:

g2 = z^3 + z;
dg2 = D[g2, z];
Solve[dg2 == 0, z]
NSolve[dg2 == 0, z]

which gave us

{{z -> -(I/Sqrt[3])}, {z -> I/Sqrt[3]}}
{{z -> 0. - 0.57735 I}, {z -> 0. + 0.57735 I}}

g_{2} has critical points at i\sqrt{\frac{1}{3}} and -i\sqrt{\frac{1}{3}}.

I then also used Mathematica to find the fixed points:

g2 = z^3 + z;
Solve[g2 == z, z]

Which gave

{{z -> 0}, {z -> 0}, {z -> 0}}

The only fixed point is at the origin.

Taking a look at the plot of the Julia set or g_{2} with the orbits generated by starting at 0.57735i and -0.57735i, we can see where the orbits are converging:

It looks like this time the orbits are converging to the fixed point at 0, going straight in on the imaginary axis.

It is interesting that on g_{1}, the iterations starting on the critical points alternated between positive and negative real values; however on g_{2}, the iterations stay in the upper-half or lower-half plane that is respective to the starting critical point the whole time.

Stay safe and enjoy the snow everybody!

Mark

These are some really awesome answers! I anticipated that most folks would find an attractive fixed point and was wondering if anyone would find attractive orbits of other periods. Still curious to see if that happens by chance.

tjenkin2
  1. My original favorite cubic polynomial was f(z) = \frac{1}{6} z^3 + \frac{1}{2}z^2 + z + 1. For this case, M=3, so my new polynomial is g(z) = \frac{1}{18}z^3 + \frac{1}{6}z^2 + \frac{1}{3}z + \frac{1}{3}.

  2. To find the critical points of my g(z), I need to find the roots of g'(z) = \frac{1}{6}z^2 + \frac{1}{3}z + \frac{1}{3} = 0. To do this, I can use the following MATLAB code:

    a = [1/6 1/3 1/3];
    critical = roots(a)
    critical =
    
      -1.0000 + 1.0000i
      -1.0000 - 1.0000i
    
  3. The fixed points of g(z) satisfy the equation z = \frac{1}{18}z^3 + \frac{1}{6}z^2 + \frac{1}{3}z + \frac{1}{3}. We can rewrite this as a new polynomial, \frac{1}{18}z^3 + \frac{1}{6}z^2 - \frac{2}{3}z + \frac{1}{3} = 0, and find that the fixed points of g(x) are simply the roots of this polynomial. As such, I can find them using the same method in MATLAB:

    b = [1/18 1/6 -2/3 1/3];
    fixed = roots(b)
    
    fixed =
    
       -5.4188
        1.8056
        0.6132
    
  4. Forming a Julia set and starting from the critical points of g(z) yields the following result.

  5. It seems fairly evident that iteration of both critical points converges to the fixed point at 0.6132. We can confirm this by iterating a few times in Python though. I’ll set it up for twelve iterations, which will give the following sequences:

    In:
    def g(z): return (z**3)/18 + (z**2)/6 + z/3 + 1/3
    z = -1.0000 + 1.0000j
    for i in range(10):
        z = g(z)
        print(z)
    
    Out:
    (0.1111111111111111+0.1111111111111111j)
    (0.3702179545800945+0.041304679164761465j)
    (0.4820122892113635+0.01980510179567358j)
    (0.5388514492737809+0.010550275689260237j)
    (0.5700077150702045+0.0059222683340780236j)
    (0.5877671111246537+0.0034200236303651415j)
    (0.598111860618203+0.0020069841522676077j)
    (0.6042129147497195+0.0011887902919664095j)
    (0.6078373553608436+0.0007080234082854713j)
    (0.6099997696950683+0.0004230606007148358j)
    (0.6112932029828129+0.00025327927414231245j)
    (0.6120680396076301+0.00015180993041325125j)
    

    For z = -1.0000 - 1.0000i:

    Out:
    (0.1111111111111111-0.1111111111111111j)
    (0.3702179545800945-0.041304679164761465j)
    (0.4820122892113635-0.01980510179567358j)
    (0.5388514492737809-0.010550275689260237j)
    (0.5700077150702045-0.0059222683340780236j)
    (0.5877671111246537-0.0034200236303651415j)
    (0.598111860618203-0.0020069841522676077j)
    (0.6042129147497195-0.0011887902919664095j)
    (0.6078373553608436-0.0007080234082854713j)
    (0.6099997696950683-0.0004230606007148358j)
    (0.6112932029828129-0.00025327927414231245j)
    (0.6120680396076301-0.00015180993041325125j)
    

    We can see that by the end of these limited iterations, both points are in fact converging to the same fixed point at 0.6132.

Hope everybody has a great break! Enjoy the snow and drive safe if you’re traveling!

Sidneykidney

My favorite cubic polynomial was f(z) = 3z^3-2z^2+z. Since this julia set is already connected, M = 1 and g(z) = 3z^3-2z^2+z.

The critical points of g(z) is z such that g'(z) = 0.
For my g(z), g'(z) = 9z^2 -4z +1.
Thus the critical points of g(z) is the z that satisfy
9z^2 - 4z + 1 = 0.
Thus, the critical points of g(z) are z = \frac{2}{9} +\frac{\sqrt{5}}{9}i, \frac{2}{9} +\frac{\sqrt{5}}{9}i.

The fixed points of g(z) is z satisfying g(z) =z.
Therefore the fixed points of g(z) satisfy
3z^3 - 2z^2 +1.
Thus the fixed points of g(z) are z = 0, 0, \frac{2}{3}

The plot of the julia set of g(z) and the orbits from z = \frac{2}{9} +\frac{\sqrt{5}}{9}i, \frac{2}{9} +\frac{\sqrt{5}}{9}i is shown below.

The orbits converge to 0.

However 0 is a neutral fixed point since |g'(0)| = |9(0)^2 -4(0) +1| = 1.
\frac{2}{3} is a repulsive fixed point since |g'(\frac{2}{3})| = |9(\frac{2}{3})^2 -4(\frac{2}{3}) +1| = \frac{7}{3} > 1.

axk

A slightly different version of my favorite cubic polynomial is f(z) = z^{3} + \sqrt{2}z^{2} + \sqrt{3}z. (The original, f(z) = z^{3} + \sqrt{2}z^{2} + \sqrt{3}z + \sqrt{5}, gave a totally disconnected Julia set.) M = 2 gives a connected Julia set, so g(z) = \frac{1}{2}z^{3} + \frac{\sqrt{2}}{2}z^{2} + \frac{\sqrt{3}}{2}z and g'(z) = \frac{3}{2}z^{2} + \sqrt{2}z + \frac{\sqrt{3}}{2}.

I used NSolve in Mathematica to find the critical points of g(z):

    f[z_] = ((1/2) ((z^3) + (Sqrt[2] z^2) + (Sqrt[3] z)))
    f'[z_] = D[f[z], z]
    NSolve[f'[z] == 0, z].

The resulting values for the critical points are

    {{z -> -0.471405 - 0.595926 I}, {z -> -0.471405 + 0.595926 I}}.

To find the fixed points, we set g(z) = z. Using NSolve once again in Mathematica,

    NSolve[f[z] == z, z]
    {{z -> -1.58343}, {z -> 0}, {z -> 0.16922}}.

Here is the plot of the Julia set of g(z):

Starting around the critical points, we can see that both orbits converge to the fixed point z = 0. This makes sense since |g'(0)| = \frac{\sqrt{3}}{2} < 1; that is, z = 0 is an attractive fixed point.

Nathan
  1. My favorite cubic polynomial is 8x^3-4x^2+2x-1. I found that the smallest value for M where g(z) had a connected Julia set was -2, so my function is g(z)=-4x^3+2x^2-x+ .5.

  2. To find the critical points, I used WolframAlpha.com and entered the following:

critical points of g(z)=-4z^3 + 2z^2-z+.5

and found that the critical points of g are z=\frac16(1 \pm i\sqrt2) .

  1. To find the fixed points, I returned to WolframAlpha.com and entered the following:

z=-4z^3 + 2z^2-z+.5
and found that the solutions to this (the values of z where g(z)=z) are .10754 \pm .65357 and .28492.

  1. I used Mark’s tool to create the following image:

Notice when starting from around the critical points, the orbits converge to some point on the real axis. I bet that point is the fixed point .28492.

  1. I used wolfram alpha to find that |g'(.28492)|=.8344728768. So the fixed point on the real axis is where these orbits converge to, as it is an attractive point.
Rebecca
  1. My favourite cubic is 5z^3+3z^2-9z-6. The smallest value for M where g(z) looked like a connected Julia set in the mathematica notebook was 6.

  2. The derivative of my g worked out to be g'(z)=\frac{5}{2}z^2+z-\frac{3}{2}, with the critical points at the roots of that function… which also worked out nicely to be -1 and \frac{3}{5}. The quadratic formula wins the day again.

  3. I found the fixed points by setting g(z)=z. I then simplified so that I had g(z)-z=0 also known as \frac{5}{6}z^3+\frac{1}{2}z^2-\frac{5}{2}z-1=0. I fed this into Desmos, which doesn’t give numerical approximations of roots to a satisfying number of decimal points. It did tell me that I had three fixed points, somewhere around z = -1.8, -0.3, 1.6. I used these as seed values Newton’s Method, which clarified that my fixed points are -1.86404570269, -0.389355592002, 1.65340129469. (I kept iterating the function until all the decimal places Desmos was willing to give me when I made it act like a calculator stopped changing. Probably not the most efficient method, but a satisfying one.)

  4. Is it just me, or does my plot look kind of weird? These are the orbits from approx \pm1.

  5. The orbits don’t converge to the fixed points. I messed around with it, because my Julia set really does look weird to me and I couldn’t tell for sure what was going on just by looking at a whole bunch of orbits. To be sure, I tried to test all of the points by seing what happened if I checked them against |f'(z_0)| with the test in my notes. |g'(-1.86404570269)|=5.3226202516, |g'(-0.389355592002)|=1.51036114944, and |g'(1.65340129469)|=6.9877408979. Since all of these values are greater than 1, all of these fixed points appear to be repulsive. I mean, I could’ve said that just by looking at how ugly those decimals are, but that’s not quite the right sense of the word…

It seems to have stopped snowing out there, but the sky sure looks like it could start again. Stay warm everybody, and happy holidays!

Mark

I think it looks great!! Here’s the thing - your cubic polynomial has an attractive orbit of period 2 whereas most of the others have an attractive orbit of period just 1. That’s exactly why yours looks a bit cooler than most.

Fletterswece

My favorite cubic f(z) = -\frac{1}{9}z^3 + \frac{1}{2}z^2 - z already has a connected Julia set, so M = 1 , and g(z) = f(z) . To find the critical points of g(z) we can use Mathematica to find all solutions to g'(z)=0 .

g[z_] := -3/27*z^3  + 1/2 z^2 - z ;
criticalPoints = z /. NSolve[D[g[z], z]==0, z, 4]
out: {1.500 - 0.866 I, 1.500 + 0.866 I}

The fixed points would be every z \ni g(z) = z , which we can find using very similar code.

fixedPoints = z /. NSolve[g[z] == z, z, 4]
out: {0, 2.250 - 3.597 I, 2.250 + 3.597 I}

To plot the Julia Set of g(z) I used https://www.marksmath.org/visualization/polynomial_julia_sets/ , shown here with the orbits starting from both critical points.


It would seem that both of these orbits approach the fixed point z_1 = 0 , however \lvert g'(z_1)\rvert = 1 which would indicate that z_1 is a neutral fixed point, so I suspect it will not converge to the fixed point.

Francois

My favorite cubic polynomial was f(x)=\frac{1}{2}x^3+\frac{1}{3}x-\frac{1}{4}.

1.To arrive at a connected Julia set I chose M=1. Thus we have g(x)=f(x)=\frac{1}{2}x^3+\frac{1}{3}x-\frac{1}{4}

2.We can easily see that g'(x)=\frac{3}{2}x^3+\frac{1}{3}. Then we can use the following code in Mathematica to solve for the critical points of g(z):

NSolve[(3/2)z^2+1/3==0,z]

This reveals that the critical point are z=\pm0.471404520791i=\frac{\sqrt{2}}{3}i

3.In order to find the any fixed points we use similar code, but instead set g(z)=z. It looks like this:

 NSolve[(1/2)z^3+(1/3)z-(1/4)==z,z]

This reveals that the fixed points are z=-0.438036518, z= -0.87159, z=1.30962650

  1. Using Mark’s julia set tool, we get this picture:
    It is subjectively groovy, and kinda resembles a rorschach blot… The first thing it brings to mind is Steve Irwin :(.

5.The tool also shows us that our two critical points converge to the fixed point z=-0.438036518. This suggests that z=-0.438036518 is attractive, while z= -0.87159, and z=1.30962650 are both repulsive.