1

在此处输入图像描述

我们要计算线性图中的积分值。为了更好地理解看照片。假设整体面积为1。我们想找出某个部分的值是多少。例如,如果所有内容均指月份并且 A 最大代表 24,我们想知道总体 100% 中有多少百分比位于第 10 个月和第 11 个月内。我们可以计算一个积分,然后应该能够通过以下方式获得搜索区域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")

如果你看到情节 - 它会令人困惑。任何想法如何正确处理?

4

2 回答 2

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
于 2012-06-21T20:12:47.107 回答
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
于 2012-06-21T20:24:08.157 回答