;;Exercise 1.34
(define (f g)
(g 2))
;;Exercise 1.35
(define tolerance 0.00001)
(define (fixed-point f first-guess)
(define (close-enough? v1 v2)
(< (abs (- v1 v2)) tolerance))
(define (try guess)
(let ((next (f guess)))
(if (close-enough? guess next)
next
(try next))))
(try first-guess))
(fixed-point (lambda (x) (+ 1 (/ 1 x))) 1.0)
;;Exercise 1.36
(define (fixed-point f first-guess)
(define (close-enough? v1 v2)
(< (abs (- v1 v2)) tolerance))
(define (try guess)
(display guess)
(newline)
(let ((next (f guess)))
(if (close-enough? guess next)
next
(try next))))
(try first-guess))
(define (average x y)
(/ (+ x y) 2))
;take with average damping
(fixed-point (lambda (x)(average x (/ (log 1000) (log x)))) 5)
;without average damping
(fixed-point (lambda (x) (/ (log 1000) (log x))) 5)
Welcome to DrScheme, version 372 [3m].
Language: Standard (R5RS).
5
4.64601483711009
4.571611286076025
4.558294317536066
4.556006022881116
4.555615799731297
4.555549342575593
4.555538027101999
4.5555361005218895
5
4.29202967422018
4.741863119908242
4.438204569837609
4.635299887107611
4.50397811613643
4.589989462723705
4.53301150767844
4.570475672855484
4.545720389670642
4.562024936588171
4.551263234080531
4.55835638768598
4.553676852183342
4.55676216434628
4.554727130670954
4.556069054770006
4.555184018843625
4.5557676565438205
4.555382746639082
4.55563658243586
4.555469180245326
4.555579577900997
4.5555067722873686
4.5555547860484085
4.555523121789556
4.555544003742869
4.555530232469306
4.555539314360711
>
;;Exercise 1.37
(define (cont-frac n d k)
(define (iter i)
(if (= i k)
(/ (n k) (d k))
(/ (n i) (+ (d i)
(iteer (+ i 1))))))
(iter 1))
(cont-frac (lambda (i) 1.0)
(lambda (i) 1.0)
12)
;;Exercise 1.38
(define (e-2)
(define (d i)
(if (= (remainder i 3) 2)
(* (/ (+ i 1) 3) 2)
1))
(cont-frac (lambda (i) 1.0)
d
12))
(e-2)
;;Exercise 1.39
(define (tan-cf x k)
(cont-frac (lambda (i) (if (= i 1) x (- (square x))))
(lambda (i) (- (* 2 i) 1))
k))
2009年1月9日星期五
sicp习题解答1.3.2 - 1.3.3
上一节1.3.1
订阅:
博文评论 (Atom)
没有评论:
发表评论