program testnewton implicit none integer i double precision x,f0,f1,func,recider x=-1.5d0 do i=1,200 f0=func(x) write(*,*)i,x,f0 pause f1=func(x+f0) recider=f0/(f1-f0) x=x-recider*f0 enddo end double precision function func(x) double precision x func=x-(x*x+1.0d0)/2.0d0 !x^2-2*x+1=0 return end