Newton's Method : z^2=0 (Degree 2, Number of root 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^2) >= 0.0001 do            z:= z-(z^2)/(2*z)        od;       m*0.02; end:

 > plot3d(0,-1..1,-1..1, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : (z-3)^2=0 (Degree 2, Number of root 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs((z-3)^2) >= 0.0001 do            z:= z-((z-3)^2)/(2*(z-3))        od;       m*0.02; end:

 > plot3d(0,2..4,-1..1, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^2-1=0 (Degree 2, Number of root 2)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^2-1) >= 0.0001 do            z:= z-(z^2-1)/(2*z)        od;       m*0.02; end:

 > plot3d(0,-3..3,-3..3, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^2+1=0 (Degree 2, Number of root 2)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^2+1) >= 0.0001 do            z:= z-(z^2+1)/(2*z)        od;       m*0.02; end:

 > plot3d(0,-3..3,-3..3, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^3=0 (Degree 3, Number of root 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^3) >= 0.0001 do            z:= z-(z^3)/(3*z^2)        od;       m*0.02; end:

 > plot3d(0,-1..1,-1..1, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : (z-2)^3=0 (Degree 3, Number of root 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs((z-2)^3) >= 0.0001 do            z:= z-((z-2)^3)/(3*(z-2)^2)        od;       m*0.02; end:

 > plot3d(0,1..3,-1..1, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^3-z^2=0 (Degree 3, Number of root 2)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^3-z^2) >= 0.0001 do            z:= z-(z^3-z^2)/(3*z^2-2*z)        od;       m*0.02; end:

 > plot3d(0,-1..3,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^3-2z^2+z=0 (Degree 3, Number of root 2)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^3-2*z^2+z) >= 0.0001 do            z:= z-(z^3-2*z^2+z)/(3*z^2-4*z+1)        od;       m*0.02; end:

 > plot3d(0,-2..2,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^3-6z^2+11z-6=0 (Degree 3, Number of root 3)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^3-6*z^2+11*z-6) >= 0.0001 do            z:= z-(z^3-6*z^2+11*z-6)/(3*z^2-12*z+11)        od;       m*0.02; end:

 > plot3d(0,-1..5,-3..3, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^3-3z^2+1=0 (Degree 3, Number of root 3)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^3-3*z^2+1) >= 0.0001 do            z:= z-(z^3-3*z^2+1)/(3*z^2-6*z)        od;       m*0.02; end:

 > plot3d(0,-2..4,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

 > solve(z^3-3*z^2+1=0.0,z);

Newton's Method : z^3-1=0 (Degree 3, Number of root 3)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^3-1) >= 0.0001 do            z:= z-(z^3-1)/(3*z^2)        od;       m*0.02; end:

 > plot3d(0,-2..2,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^4-z^3=0 (Degree 4, Number of root 2, triple root at 0)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-z^3) >= 0.0001 do            z:= z-(z^4-z^3)/(4*z^3-3*z^2)        od;       m*0.02; end:

 > plot3d(0,-1..3,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

 > expand(z*(z-1)^3);

Newton's Method : z^4-3z^3+3z^2-z=0 (Degree 4, Number of root 2, triple root at 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-3*z^3+3*z^2-z) >= 0.0001 do            z:= z-(z^4-3*z^3+3*z^2-z)/(4*z^3-9*z^2+6*z-1)        od;       m*0.02; end:

 > plot3d(0,-2..2,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^4-2z^3+z^2=0 (Degree 4, Number of root 2, double roots at 0, 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-2*z^3+z^2) >= 0.0001 do            z:= z-(z^4-2*z^3+z^2)/(4*z^3-6*z^2+2*z)        od;       m*0.02; end:

 > plot3d(0,-1..2,-1.5..1.5, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

 > expand((z-1)^2*(z-2)*(z-3));

Newton's Method : z^4-7z^3+17z^2-17z+6=0 (Degree 4, Number of root 3, double root at 1,  three roots are all real)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-7*z^3+17*z^2-17*z+6) >= 0.0001 do            z:= z-(z^4-7*z^3+17*z^2-17*z+6)/(4*z^3-21*z^2+34*z-17)        od;       m*0.02; end:

 > plot3d(0,0..4,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

 > expand(((z-1)^2)*(z^2+z+1));

Newton's Method : z^4-z^3-z+1=0 (Degree 4, Number of root 3, double root at 1)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-z^3-z+1) >= 0.0001 do            z:= z-(z^4-z^3-z+1)/(4*z^3-3*z^2-1)        od;       m*0.02; end:

 > plot3d(0,-2..2,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^4-z=0 (Degree 4, Number of root 4)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-z) >= 0.0001 do            z:= z-(z^4-z)/(4*z^3-1)        od;       m*0.02; end:

 > plot3d(0,-2..2,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : z^4-1=0 (Degree 4, Number of root 4)

 > restart:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(z^4-1) >= 0.0001 do            z:= z-(z^4-1)/(4*z^3)        od;       m*0.02; end:

 > plot3d(0,-2..2,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : (x-1+I)*(x-I)^2 (Degree 3, Number of root 2)

 > restart:

 > f:=x->(x-1+I)*(x-I)^2: ff:=x->(x-I)^2+2*(x-1+I)*(x-I):

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(f(z)) >= 0.0001 do            z:= z-(f(z))/(ff(z))        od;       m*0.02; end:

 > plot3d(0,-2..4,-3..3, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : (x-1+I)^3*(x-I)^2 (Degree 5, Number of root 2)

 > restart:

 > f:=x->(x-1+I)^3*(x-I)^2: ff:=x->3*(x-1+I)^2*(x-I)^2+2*(x-1+I)^3*(x-I):

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(f(z)) >= 0.0001 do            z:= z-(f(z))/(ff(z))        od;       m*0.02; end:

 > plot3d(0,-1.5..2.5,-2..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

Newton's Method : (x-1+I)*(x-I)^4 (Degree 5, Number of root 2)

 > restart:

 > f:=x->(x-1+I)*(x-I)^4: ff:=x->(x-I)^4+4*(x-1+I)*(x-I)^3:

 > newton:=proc(x,y)         local z, m;      z:=evalf(x+y*I);      for m from 0 to 50 while abs(f(z)) >= 0.0001 do            z:= z-(f(z))/(ff(z))        od;       m*0.02; end:

 > plot3d(0,-2..4,-4..2, orientation=[-90,0],grid=[250,250],style=patchnogrid, color=newton);

 >