Dear R experts, I computed the same integral in two different ways, and find different values in R. The difference is due to the max function that is part of the integrand. In the first case, I keep it as such, in the second case, I split it in two depending on the values of the variable of integration.
1) First computation # Function g g<- function(x){1/(x*0.20*sqrt(10)*sqrt(2*pi))*exp(-0.5*((log(x/50)-0.1*10)/(0.20*sqrt(10)))^2)} ####### Function f1 f1<- function(x) {1/(5000000+100000*x+10000*max(x-50,0))} integrand1<- function(x) { out<- f1(x)*g(x) return(out) } i2<- integrate(integrand1, lower=0, upper=Inf )$value It gives me: i2= 3.819418e-08 2) Second computation I break the max function in two, depending on the values of the variable of integration x (and I use the same density g as before): f11<- function(x) {1/(5000000+100000*x)} f12<- function(x) {1/(5000000+100000*x+10000*(x-50))} integrand11<- function(x) { out<- f11(x)*g(x) return(out) } integrand12<- function(x) { out<- f12(x)*g(x) return(out) } i21<- integrate(integrand11, lower=0, upper=50 )$value +integrate(integrand12, lower=50, upper=Inf)$value I get i21=5.239735e-08 The difference makes a huge difference for the computations I do. Does anyone know where it comes from? Thanks in advance! [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.