The exercise asks us to implement Newton’s method for finding cube roots.
Newton’s method says that if y
is an approximation to the cube root of x
, then a better approximation is given by the value:
We can use the procedure good-enough?
, that we developed in the last exercise.
(define (good-enough? guess prev_guess) (< (abs (/ (- guess prev_guess) guess)) 0.00001))
We need to re-write the improve
procedure to use the formula for cube roots.
(define (improve guess x) (/ (+ (/ x (* guess guess)) (* 2 guess)) 3))
Now, the cube-root
procedure can be written as:
(define (cbrt-iter prev_guess guess x) (if (good-enough? guess prev_guess) guess (cbrt-iter guess (improve guess x) x))) (define (cube-root x) (cbrt-iter 0.0 1.0 x))