我们想要计算线性图中积分的值。 为了更好地理解照片。假设总面积为1.我们想要找出某个部分的值是什么。例如,我们想知道如果一切都是指月份,那么总体100%中有多少%位于第10个月和第11个月内,A最大值为24个月。 我们可以计算积分然后应该能够通过F(x) - F(x-1)得到搜索区域 我对以下代码感到困惑:
a <- 24
tab <-matrix(0,a,1)
tab <-cbind(seq(1,a),tab)
tab<-data.frame(tab)
#initialization for first point
tab[1,2] <- (2*tab[1,1] / a - tab[1,1]^2 / a^2)
#for loop for calculation of integral of each point - integral until to the area
for(i in 2:nrow(tab))
{tab[i,2] <- (2*tab[i,1] / a - tab[i,1]^2/ a^2) - sum(tab[1,2]:tab[i-1,2])}
#plotting
plot(tab[,2], type="l")
如果你看到情节 - 这很令人困惑。任何想法如何处理这个正确吗?
答案 0 :(得分:5)
基础R函数integrate()
可以为您执行此操作:
f <- function(x, A) 2/A - x / A^2
integrate(function(x)f(x, 24), lower=10, upper=11)
0.06510417 with absolute error < 7.2e-16
答案 1 :(得分:1)
直接使用公式:
a <- 24 # number of divisions
x <- c(seq(1,a)) #
y <- x*2/a - x^2/a^2 # F(x)
z <- (x*2/a - x^2/a^2) - ((x-1)*2/a - (x-1)^2/a^2) # F(x) - F(x-1)
然后再进行绑定。
> sum(z)
[1] 1