-1

私はしばらくウェブ検索を探していましたが、適切な用語が見つからない可能性があります。

私はスカラーの任意のサイズの配列を持っています...

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

関数f->x->y、 with 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/129

これは に合計され10/12 + 1/12 + 1/12 = 1ます。

より直感的に理解するには、次のように考えてください。問題は、間隔に沿って各配列要素がカバーするスペースの量を決定することです。残りは、http://en.wikipedia.org/wiki/Weighted_average#Mathematical_definitionで説明されている機構を埋めているだけです。

于 2013-10-16T11:18:39.490 に答える