(load "1.35.txt") ; for fixed-point (load "1.43.txt") ; for repeated (define (average a b) (/ (+ a b) 2.0)) (define (average-damp f) (lambda (x) (average x (f x)))) (define (nth-root x n d) (fixed-point ((repeated average-damp d) (lambda (y) (/ x (expt y (- n 1))))) 1.0)) ; Experiment: vary n ; (nth-root 2^n n d) ; nth root, d = number of average dampings required for convergence ; n d ; --- ; 2 1 ; 3 1 ; 4 2 ; 5 2 ; 6 1 ; 7 2 ; 8 3 ; 9 3 ; 10 1 ; 11 3 ; 12 2 ; 13 3 ; I do not see any clear pattern ; Experiment: vary x ; (map (lambda (x) (nth-root (* x x x x) 4 2)) (iota 100)) ; (map (lambda (x) (nth-root (* x x x) 3 1)) (iota 100))