-1

我一直在寻找网络搜索一段时间,但是,可能或可能我错过了正确的术语。

我有任意大小的标量数组...

array = [n_0, n_1, n_2, ..., n_m]

我还有一个函数f->x->y, 和0<=x<=1, 以及y一个来自 的插值array。例子:

array = [1,2,9]

f(0)    = 1
f(0.5)  = 2
f(1)    = 9

f(0.75) = 5.5

我的问题是我想计算某个区间的平均值r = [a..b],其中a E [0..1]b E [0..1],即我想概括我的插值函数f->x->y来计算平均值r

找到合适的权重让我有点不知所措。想象一下我想计算f([0.2,0.8])

array     -->  1       |      2       |      9
[0..1]    -->  0.00   0.25   0.50   0.75  1.00
[0.2,0.8] -->        ^___________________^

后者是我要计算平均值的值范围。

像这样计算平均值在数学上是否正确?:*

          1 * (1-0.8)       <- 0.2 'translated' to [0..0.25]
        + 2 * 1
avg =   + 9 * 0.2           <- 0.8 'translated' to [0.75..1]
       ----------
            1.4             <-- the sum of weights
4

1 回答 1

0

这看起来是正确的。

在您的示例中,您的间隔长度为0.6. 在那个时间间隔内,您的号码2正在占用(0.75-0.25)/0.6 = 0.5/0.6 = 10/12空间。您的号码1占用(0.25-0.2)/0.6 = 0.05 = 1/12空间,您的号码也是如此9

这总结为10/12 + 1/12 + 1/12 = 1.

为了更好的直觉,可以这样想:问题是确定每个数组元素沿间隔覆盖多少空间。其余的只是填充http://en.wikipedia.org/wiki/Weighted_average#Mathematical_definition中描述的机制。

于 2013-10-16T11:18:39.490 回答