f(x) = x^5 - x - 1 base_pts = [e^(I*(theta)) for theta in srange(0, 2*pi, .01)] # .001 fce = (text(r'$f(z)=z^5-z-1$',(-5,5), color='blue',horizontal_alignment='left') + point([(0, 0)],size=20, color='green').plot()) first = (list_plot( [(real(.84*z), imag(.84*z)) for z in base_pts], plotjoined=True, color='pink') + point([(-0.764884433600585, 0.352471546031726),(-0.764884433600585,- 0.352471546031726)],size=20).plot() + text(r'$z=-0.765 \pm 0.352i,$' ,(-5,4.8), color='blue',horizontal_alignment='left') + text(r'$|z|=0.842$' ,(-3.2,4.8), color='red',horizontal_alignment='left')) second = (list_plot( [(real(1.1*z), imag(1.1*z)) for z in base_pts], plotjoined=True, color='pink') + point([(0.181232444469875, 1.08395410131771),(0.181232444469875,- 1.08395410131771)],size=20).plot() + text(r'$z=0.181 \pm 1.084i,$' ,(-5,4.6), color='blue',horizontal_alignment='left') + text(r'$|z|=1.099$' ,(-3.2,4.6), color='red',horizontal_alignment='left')) third = (list_plot( [(real(1.167*z), imag(1.167*z)) for z in base_pts], plotjoined=True, color='pink') + point([(1.16730397826142, 0)],size=20).plot() + text(r'$z=1.167,$' ,(-5,4.4), color='blue', horizontal_alignment='left') + text(r'$|z|=1.167$' ,(-3.2,4.4), color='red', horizontal_alignment='left')) a=animate( [ list_plot( [(real(f(scale*z)), imag(f(scale*z))) for z in base_pts], plotjoined=True, axes_labels = [r'$\Re$', r'$\Im$'], axes_labels_size=1.5, ticks=[1,1], xmin=-5,xmax=5, ymin=-5,ymax=5, aspect_ratio=1, figsize=12, color=(0,.5,1)) + list_plot( [(real(scale*z), imag(scale*z)) for z in base_pts], plotjoined=True, color='red') + text(r'$|z|=$'+r'${:0.3f}$'.format(scale),(-3.2,5), color='red',horizontal_alignment='left') + fce for scale in srange(0, 0.7, .05)+srange(0.7, 0.85, .01) ] + [ list_plot( [(real(f(scale*z)), imag(f(scale*z))) for z in base_pts], plotjoined=True, axes_labels = [r'$\Re$', r'$\Im$'], axes_labels_size=1.5, ticks=[1,1], xmin=-5,xmax=5, ymin=-5,ymax=5, aspect_ratio=1, figsize=12, color=(0,.5,1)) + list_plot( [(real(scale*z), imag(scale*z)) for z in base_pts], plotjoined=True, color='red') + text(r'$|z|=$'+r'${:0.3f}$'.format(scale),(-3.2,5), color='red',horizontal_alignment='left') + fce + first for scale in srange(0.85, 1.1, .01) ] + [ list_plot( [(real(f(scale*z)), imag(f(scale*z))) for z in base_pts], plotjoined=True, axes_labels = [r'$\Re$', r'$\Im$'], axes_labels_size=1.5, ticks=[1,1], xmin=-5,xmax=5, ymin=-5,ymax=5, aspect_ratio=1, figsize=12, color=(0,.5,1)) + list_plot( [(real(scale*z), imag(scale*z)) for z in base_pts], plotjoined=True, color='red') + text(r'$|z|=$'+r'${:0.3f}$'.format(scale),(-3.2,5), color='red',horizontal_alignment='left') + fce + first + second for scale in srange(1.1, 1.15, .01) ] + [ list_plot( [(real(f(scale*z)), imag(f(scale*z))) for z in base_pts], plotjoined=True, axes_labels = [r'$\Re$', r'$\Im$'], axes_labels_size=1.5, ticks=[1,1], xmin=-5,xmax=5, ymin=-5,ymax=5, aspect_ratio=1, figsize=12, color=(0,.5,1)) + list_plot( [(real(scale*z), imag(scale*z)) for z in base_pts], plotjoined=True, color='red') + text(r'$|z|=$'+r'${:0.3f}$'.format(scale),(-3.2,5), color='red',horizontal_alignment='left') + fce + first + second + third for scale in srange(1.15, 1.3, .01)+srange(1.3, 1.7, .05) ] ) a.show(delay=50)