using Printf setprecision(4096) f(x)=5*x*exp(-x)-1 x0=big"2.0"; x1=big"2.1"; x2=big"1.9" en=1.0 for n=1:9 global en,x0,x1,x2 d1=(f(x1)-f(x0))/(x1-x0) d2=(f(x2)-f(x1))/(x2-x1) c=f(x0) a=(d2-d1)/(x2-x0) b=d1-a*(x1-x0) en0=en m1=-b+sqrt(b^2-4*a*c) m2=-b-sqrt(b^2-4*a*c) r1=0.0; r2=0.0 if abs(m1)>=abs(m2) r1=m1/(2*a); r2=2*c/m1 else r1=2*c/m2; r2=m2/(2*a) end x2=x1; x1=x0 if abs(r1)<=abs(r2) x0=x1+r1 else x0=x1+r2 end en=abs(x0-x1) @printf("x0=%g\n",x0) println("n=$(n-1) log(e(n+1))/log(e(n))=", Float64(log(en)/log(en0))) end