SICP Exercise 1.8 – Newton’s Method For Cube Roots

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:
\frac{\frac{x}{y^2} + 2y}{3}

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))

Leave a comment