SICP exercise 1.08
From Drewiki
Problem
Newton's method for cube roots is based on the fact that if y is an approximation to the cube root of x, then a better approximation is given by the value
Use this formula to implement a cube-root procedure analogous to the square-root procedure from section 1.1.7 of the text.
Solution
Here's a straightforward solution to the problem.
(define (square x) (* x x)) (define (cube x) (* (square x) x)) (define (cube-root-iter guess x) (if (good-enough? guess x) guess (cube-root-iter (improve guess x) x))) (define (improve guess x) (/ (+ (/ x (square guess)) (* 2 guess)) 3)) (define (good-enough? guess x) (< (abs (- (cube guess) x)) 0.001))
Tests
(cube-root-iter 1 8)
Output:
2.0000049116755
(cube-root-iter 1 27)
Output:
3.00000054106418
(cube-root-iter 1 64)
Output:
4.00001744951074
(cube-root-iter 1 125)
Output:
5.00000000028793
(cube-root-iter 1 100)
Output:
4.64159011104646

