1.P120薛书
area <- function(f, a, b, eps = 1.0e-06, lim = 10) {fun1 <- function(f, a, b, fa, fb, a0, eps, lim, fun) {
d=(a+b)/2;fd=f(d);h=(b-a)/4;
a1=h*(fa+fd);a2=h*(fb+fd);
if(abs(a0-a1-a2)<eps||lim==0)
return(a1+a2)
else{
return(fun(f,a,d,fa,fd,a0,eps,lim-1,fun)+fun(f,d,b,fd,fb,a0,eps,lim-1,fun))
}
}
fa=f(a);fb=f(b);a0 <- ((fa + fb) * (b - a))/2;
return(fun1(f, a, b, fa, fb, a0, eps, lim, fun1))
}
f <- function(x) 1/x
quad<-area(f,1,5); quad
#一般来说,递归主要包括边界条件、递归前进段和递归返回段。递归调用时
,若边界条件不满足,递归前进;若边界条件满足时&#