Exemple historique

x0:2;

x0:x0-(x0^3-2*x0-5)/(3*x0^2-2);fx0:float(x0);

wxplot2d(x^3-2*x-5,[x,-3,3]);

Avec illustration par tracé de la tangente

IllustreNewton(f,x,xn,[bornes]):=block([fp:diff(f,x),xnp1,dlt,lim],
  xnp1:ev(xn-f/fp,x=xn),
  dlt:abs(xnp1-xn),
  if (length(bornes)>1) then lim:[x,bornes[1],bornes[2]] 
                        else lim:[x,xn-2*dlt,xn+2*dlt],
  wxplot2d([f,ev(f,x=xn)+ev(fp,x=xn)*(x-xn)],lim),
  float(xnp1)
)$

x0:2;

x0:IllustreNewton(x^3-2*x-5,x,x0,-1,3);

x0:IllustreNewton(x+x^3/(1+x^2),x,x0,-1,3);

Le cas d'échec

x0:sqrt(2/3);

x0:float(x0-(x0^3-2*x0-5)/(3*x0^2-2));

x0:sqrt(2/3)+1/10;

x0:IllustreNewton(x^3-2*x-5,x,x0,-1,3);

val:float(sqrt(2)/sqrt(3));racines:allroots(x^3-2*x-5-(x-val)*(3*x-2));

x0:ev(x,racines[1]);

x0:float(x0-(x0^3-2*x0-5)/(3*x0^2-2));

realpart(x0);imagpart(x0);