Ladies_Man

Интервальная арифметика

Dec 17th, 2013
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.23 KB | None | 0 0
  1. (define (interval+ a b)
  2.   (let* ((a1 (+ (car a) (car b)))
  3.          (b1 (+ (cadr a) (cadr b)))
  4.          (xs (list a1 b1)))
  5.     xs))
  6. (define (interval- a b)
  7.   (let* ((a1 (- (car a) (car b)))
  8.          (b1 (- (cadr a) (cadr b)))
  9.          (xs (list a1 b1)))
  10.     xs))
  11. (define (interval* a b)
  12.   (let* ((a-c (* (car a) (car b)))
  13.          (a-d (* (car a) (cadr b)))
  14.          (b-c (* (cadr a) (car b)))
  15.          (b-d (* (cadr a) (cadr b)))
  16.          (umn (list a-c a-d b-c b-d))
  17.          (xs (list (apply min umn) (apply max umn))))
  18.     xs))
  19. (define (interval/ a b)
  20.   (let* ((a1 (* 1.0 (/ (car a) (car b))))
  21.          (a2 (* 1.0 (/ (car a) (cadr b))))
  22.          (b1 (* 1.0 (/ (cadr a) (car b))))
  23.          (b2 (* 1.0 (/ (cadr a) (cadr b))))
  24.          (del (list a1 a2 b1 b2))
  25.          (xs (list (apply min del) (apply max del))))
  26.     xs))
  27.  
  28. (define (includes-zero? xs)
  29.    (let  ((a (car xs))
  30.          (b (cadr xs)))
  31.          (or (zero? a) (zero? b) (and (< a 0) (> b 0)))))
  32.  
  33.  
  34. (define (avg-dev%->interval x d)
  35.   (let* ((a (* 1.0 (- x (* (/ x 100) d))))
  36.          (b (* 1.0 (+ x (* (/ x 100) d))))
  37.          (xs (list a b)))
  38.     xs))
  39. (define (apply-to-intervals formula a b)
  40.   (list (formula (car a) (car b)) (formula (cadr a) (cadr b))))
Advertisement
Add Comment
Please, Sign In to add comment