有人能帮我写出方案中辛普森规则方法的主体吗?下面是我到目前为止所得到的,但我不知道是应该递归地解决这个问题,还是使用不同的方法。
(define (sum-i term a b)
(if (= a b)
(term b)
(+ (term a) (sum-i term (+ a 1) b))))
(sum-i (lambda (x) x) 0 1)
(sum-i (lambda (x) (* x x)) 0 1)
(sum-i (lambda (x) (* x x x x)) 0 1)
(define (simpsons-rule f a b n)
(let ((h (/ (- b a) n)))
(define (y_k k) (f (+ a (* k h))))发布于 2013-09-20 14:15:37
结束时,我将给出函数中的情况和参数太和,以及如何设置sum调用。
您可以递归地设置,定义一个递归函数,而不是f,并将它调用到和它的位置。
(define (simpsons-rule f a b n)
(define h (/ (- b a) n))
(define Y_k (lambda (k) (f (+ a (* k h)))))
(define (f x)
(cond ((or (= x 0) (= x n)) ...)
((even? x) ...)
(else ...)))
(* (/ h 3)
(sum f 0 plus1 n))) 发布于 2015-11-29 09:38:04
#现在我编写了一个函数,它为simpons1 1/3规则计算一个积分值:#我想把这个(x^3-7x^2+10)从0积分到100,比如说
ftn<-function(x){
return((x^3-7*x^2+10))
}
simpons<-function(a,b,ftn,n){
h<-(b-a)/n
fa<-ftn(a)
fb<-ftn(b)
sum1<-0
i<-1
while(i<=n-1){
sum1<-sum1+ftn(a+i*h)
i<-i+2
}
j<-2
sum2<-0
while(j<=n-2){
sum2<-sum2+ftn(a+j*h)
j<-j+2
}
s1<-h/3
simp<-s1*(fa+fb+4*sum1+2*sum2)
return(simp)
}https://stackoverflow.com/questions/18904724
复制相似问题