dicho:=proc(E,a,b,p)
local aa,bb,m,n,k,f;
f:=unapply(E,x);
n:=length(convert(floor((b+a)*0.5),string));
Digits:=p+n;
aa:=evalf(a);
bb:=evalf(b);
k:=0;
while evalf(bb-aa)>evalf(10^(-p)) do
m:=(bb+aa)*0.5;
if sign(evalf(f(m)))=sign(evalf(f(aa))) then aa:=m; else bb:=m; fi;
k:=k+1;
od;
return(evalf((bb+aa)*0.5),k);
end:
dicho(x^2-2,1,2,300);newt:=proc(E,uo,p,N)
local f,k,fp,n,un;
f:=unapply(E,x);
fp:=D(f);
k:=0;
n:=length(convert(floor(evalf(uo)),string));
Digits:=n+p;
un:=evalf(uo-f(uo)/fp(uo));
while evalf(abs(f(un)/fp(un)))>evalf(10^(-p)) and k<N do
if fp(un)=0 then return("probleme"); fi;
un:=un-f(un)/fp(un);
k:=k+1;
od;
return(un,k);
end:
newt(x^2-2,1,300,50);