【问题标题】:Correct way to get weighted average of concrete array-values along continous interval沿连续间隔获得具体数组值的加权平均值的正确方法
【发布时间】:2013-10-16 11:05:08
【问题描述】:

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

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

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

我还有一个函数f->x->y,带有0<=x<=1y 一个来自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

【问题讨论】:

标签: arrays intervals weighted-average


【解决方案1】:

这看起来是正确的。

在您的示例中,您的时间间隔长度为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 中描述的机器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多