Exercise 2.13: Show that under the assumption of
small percentage tolerances there is a simple formula for the approximate
percentage tolerance of the product of two intervals in terms of the tolerances
of the factors. You may simplify the problem by assuming that all numbers are
positive.
After considerable work, Alyssa P. Hacker delivers her finished system.
Several years later, after she has forgotten all about it, she gets a frenzied
call from an irate user, Lem E. Tweakit. It seems that Lem has noticed that
the formula for parallel resistors can be written in two algebraically
equivalent ways:
R
1
R
2
R
1
+
R
2
and
1
1
/
R
1
+
1
/
R
2
.
He has written the following two programs, each of which computes the
parallel-resistors formula differently:
(define (par1 r1 r2)
(div-interval
(mul-interval r1 r2)
(add-interval r1 r2)))
(define (par2 r1 r2)
(let ((one (make-interval 1 1)))
(div-interval
one
(add-interval
(div-interval one r1)
(div-interval one r2)))))
Lem complains that Alyssa’s program gives different answers for the two ways of
computing. This is a serious complaint.
练习 2.13:在小百分比容差的假设下,证明两个区间乘积的近似百分比容差有一个简单的公式,可用各因子的容差来表示。你可以通过假定所有数均为正数来简化问题。
经过大量工作,Alyssa P. Hacker 交付了完成的系统。几年后,当她早已忘记这一切时,接到了愤怒用户 Lem E. Tweakit 的电话。Lem 注意到,并联电阻公式可以用两种代数等价的方式来写:
R₁R₂ / (R₁ + R₂)
和
1 / (1/R₁ + 1/R₂)
他编写了以下两个程序,各以不同方式计算并联电阻公式:
(define (par1 r1 r2)
(div-interval
(mul-interval r1 r2)
(add-interval r1 r2)))
(define (par2 r1 r2)
(let ((one (make-interval 1 1)))
(div-interval
one
(add-interval
(div-interval one r1)
(div-interval one r2)))))
Lem 抱怨说,Alyssa 的程序对这两种计算方式给出了不同的答案。这是一个严重的投诉。
(define (par1 r1 r2)
(div-interval
(mul-interval r1 r2)
(add-interval r1 r2)))
(define (par2 r1 r2)
(let ((one (make-interval 1 1)))
(div-interval
one
(add-interval
(div-interval one r1)
(div-interval one r2)))))