【发布时间】:2021-03-13 14:05:53
【问题描述】:
我在大学的简单任务上需要帮助。我停留在片刻如何表示过程 没有给定的整合(a b)。 我必须定义程序(integral f prec)-它需要集成程序和精度数 使用 sum = (b-a)/prec 估计积分的迭代。该过程应该输出双参数过程,因此通过输入 a 和 b 我们可以计算我们的积分。
> ( define foo ( integral ( lambda (x) 10) 1000) )
> ( foo 0 10)
99.9999999999986
> ( define foo ( integral ( lambda (x) x) 1000) )
> ( foo 9 10)
9.499500000000001
> ( foo 0 10)
49.95000000000001
> ( define foo ( integral sin 1000) )
此外,我必须使用为求和定义的过程:
(define (sum term a next b)
(if (> a b)
0
(+ (term a)
(sum term (next a) next b))))
我尝试使用 lambda 表达式来解决这个问题,但我是该课程的新手,而且时间很少。
我发现了一段辛普森积分的代码,可能会有所帮助。
(define (simpson-integral f a b n)
(define h (/ (- b a) n))
(define (next x) (+ x (* 2 h)))
(* (/ h 3) (+ (f a)
(* 4 (sum f (+ a h) next (- b h)))
(* 2 (sum f (+ a (* 2 h)) next (- b (* 2 h))))
(f b))))
【问题讨论】: