详见 sum.rkt 中的 integral-simpson
结果输出:
(integral cube 0 1 0.01)
;; 0.24998750000000042
(integral cube 0 1 0.001)
;; 0.249999875000001
(integral-simpson cube 0 1.0 100)
;; => 0.25000000000000006
(integral-simpson cube 0 1.0 1000)
;; => 0.250333
n 增大之后,精度反而不准了。
参见 sum-iter.rkt :
(define (sum term a next b)
(define (iter a result)
(if (> a b)
result
(iter
(inc a)
(+ result (term a)))))
(iter a 0))
参见 product.rkt
参见 accumulate