如何在R中计算黎曼和?

5

有没有人能够帮忙使用Riemann Sums在R中找到曲线下面积的近似值?

看起来我们没有任何R包可以提供帮助。

样本数据:

MNo1    X1  Y1    MNo2  X2  Y2
1   2981    -66287  1   595 -47797
1   2981    -66287  1   595 -47797
2   2973    -66087  2   541 -47597
2   2973    -66087  2   541 -47597
3   2963    -65887  3   485 -47397
3   2963    -65887  3   485 -47397
4   2952    -65687  4   430 -47197
4   2952    -65687  4   430 -47197
5   2942    -65486  5   375 -46998
5   2942    -65486  5   375 -46998
6   2935    -65286  6   322 -46798
6   2935    -65286  6   322 -46798
7   2932    -65086  7   270 -46598
7   2932    -65086  7   270 -46598
8   2936    -64886  8   222 -46398
8   2936    -64886  8   222 -46398
9   2948    -64685  9   176 -46198
9   2948    -64685  9   176 -46198
10  2968    -64485  10  135 -45999
10  2968    -64485  10  135 -45999
11  2998    -64284  11  97  -45799
11  2998    -64284  11  97  -45799
12  3035    -64084  12  65  -45599
12  3035    -64084  12  65  -45599
13  3077    -63883  13  37  -45399
13  3077    -63883  13  37  -45399
14  3122    -63683  14  14  -45199
14  3122    -63683  14  14  -45199
15  3168    -63482  15  -5  -44999
15  3168    -63482  15  -5  -44999
16  3212    -63282  16  -20 -44799
16  3212    -63282  16  -20 -44799
17  3250    -63081  17  -31 -44599
17  3250    -63081  17  -31 -44599
18  3280    -62881  18  -38 -44399
18  3280    -62881  18  -38 -44399
19  3301    -62680  19  -43 -44199
19  3301    -62680  19  -43 -44199
20  3313    -62480  20  -45 -43999

1
看一下 Bolstad 包中的 sintegral 函数。 - Acarbalacar
这个讨论可能会指引你朝着正确的方向前进。 - Bhas
1个回答

8

查看这个演示:

> library(zoo)
> x <- 1:10
> y <- -x^2
> Result <- sum(diff(x[x]) * rollmean(y[x], 2))

> Result
[1] -334.5

在查看这个问题后,我发现pracma包中的trapz()函数更加高效:

> library(pracma)
> Result.2 <- trapz(x, y)
> Result.2
[1] -334.5

非常感谢@XiaotaoLuo.... 请问,如果我想要生成一个函数来处理这些数据,该怎么办呢?比如说像 Y = f(x) 这样,其中 f(x) 是使用以上数据生成的函数... - Manoj Kumar
上面有两个数据吗?包括Mno1和Mno2。我认为生成函数不是一个好选择,你只需要一个变量X列表和一个响应值Y列表。通过这样做,您可以计算任何曲线下的近似面积。 - xtluo
@小涛楼.. 是的亲爱的。MNo1和Mno2只是观测编号,它们并不重要,但X和Y集合是重要的。谢谢你的建议,我接受了。但是我考虑过生成函数的方法,这样我就能将这个方程推广到其他不同日期时间戳下的所有观测集合上。 - Manoj Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接