标签:efi pre as3 define cube 2.0 cto -- tor
(define (sum term a next b)
(if (> a b)
0
(+ (term a)
(sum term (next a) next b))))
(define (integral f a b dx) ;积分
(define (add-dx x) (+ x dx))
(* (sum f (+ a (/ dx 2.0)) add-dx b)
dx))
(define (cube x) (* x x x))
(integral cube 0 1 0.0001)
(define (simpson f a b n)
(define h (/ (- b a) n))
(define (y k)
(f (+ a (* k h))))
(define (factor k)
(cond ((or (= k 0) (= k n)) 1)
((odd? k) 4)
(else 2)))
(define (term k)
(* (factor k) (y k)))
(define (next k)
(+ k 1))
(if (not (even? n))
(error "n can‘t be odd")
(* (/ h 3)
(sum term (exact->inexact 0) next n))))
(simpson cube 0 1 100)
0.24999999874993412 0.24999999999999992
标签:efi pre as3 define cube 2.0 cto -- tor
原文地址:http://www.cnblogs.com/R4mble/p/7892731.html