; Exercise 1.37. a. An infinite continued fraction is an expression of the form
;
;
;
; As an example, one can show that the infinite continued fraction expansion with the Ni and the Di; all equal to 1 produces 1/phi , where phi is the golden ratio (described in section 1.2.2). One way
; to approximate an infinite continued fraction is to truncate the expansion after a given number of
; terms. Such a truncation -- a so-called k-term finite continued fraction -- has the form
;
;
; Suppose that n and d are procedures of one argument (the term index i) that return the Ni and Di of the; terms of the continued fraction. Define a procedure cont-frac such that evaluating (cont-frac n d k)
; computes the value of the k-term finite continued fraction. Check your procedure by approximating
; 1/phi using
;
; (cont-frac (lambda (i) 1.0)
; (lambda (i) 1.0)
; k)
;
; for successive values of k. How large must you make k in order to get an approximation that is accurate
; to 4 decimal places?
;
; b. If your cont-frac procedure generates a recursive process, write one that generates an iterative
; process. If it generates an iterative process, write one that generates a recursive process.
(define (cont-frac-recur n d k)
(define (iter i)
(if (> i k)
0
(/ (n i) (+ (d i) (iter (+ i 1))))))
(iter 1))
(display (cont-frac-recur (lambda(i) 1.0) (lambda(i) 1.0) 100))(newline)
(define (cont-frac-iter n d k)
(define (iter i result)
(if (= i 0)
result
(iter (- i 1) (/ (n i) (+ (d i) result)))))
(iter k 0))
(display (cont-frac-iter (lambda(i) 1.0) (lambda(i) 1.0) 1000))(newline)
1 comment:
Rahul Here. Its better if we try to solve this problem using acculuation abstraction.
Post a Comment