(load "2.7.txt") ; for make-interval, lower-bound, upper-bound (define (make-center-width c w) (make-interval (- c w) (+ c w))) (define (center i) (/ (+ (lower-bound i) (upper-bound i)) 2.0)) (define (width i) (/ (- (upper-bound i) (lower-bound i)) 2.0)) ; percentage error = |interval width/center| (define (make-center-percent c p) (make-center-width c (abs (* c p)))) (define (percent i) (abs (/ (width i) (center i)))) ; 1 ]=> (center (make-center-percent 10 0.1)) ; ; ;Value: 10. ; ; 1 ]=> (percent (make-center-percent 10 0.1)) ; ; ;Value: .1 ; ; 1 ]=> (make-center-percent 10 0.1) ; ; ;Value: (9. . 11.) ; ; 1 ]=> (define one (make-center-percent 1 0)) ; ; ;Value: one ; ; 1 ]=> one ; ; ;Value: (1 . 1) ; ; 1 ]=> (define R1 (make-center-percent 6.8 0.1)) ; ; ;Value: r1 ; ; 1 ]=> (define R2 (make-center-percent 4.7 0.05)) ; ; ;Value: r2 ; ; 1 ]=> (div-interval one (add-interval (div-interval one R1) ; (div-interval one R2))) ; ; ;Value: (2.581558809636278 . 2.97332259363673) ; matches example in the book ; ; 1 ]=> (div-interval (mul-interval R1 R2) (add-interval R1 R2)) ; ; ;Value: (2.201031010873943 . 3.4873689182805854)