Maple Code
> newtonraphson := proc(x0,max)
local k,p0,p1;
k := 0;
p0 := evalf(x0);
printf(" P%g = %g \n",k,p0);
p1 := p0;
for k from 1 to max do
p0 := p1;
p1 := p0 - f(p0)/df(p0);
printf(" P%g = %g
\n",k,p1);
end do;
print(`f(x) = `,f(x));
printf(" P = %g \n",p1);
printf(" dP = %g \n",abs(p1-p0));
printf("f(P) = %g \n",f(p1));
RETURN(p1);
end;
> f := proc(x)
4*x^3-15*x^2+17*x-6
end proc;
> DF := diff(f(x),x);
df := proc(x0)
eval(DF,x=x0);
end proc;
(c) John H. Mathews 2004