逆距離加重補間のようなものの場合、距離の逆数として重みを計算したいと思います。
double wgt = 0, wgt_tmp, result = 0;
for (int i = 0; i < num; i++) {
wgt_tmp = 1.0/dist[i];
wgt += wgt_tmp;
result += wgt_tmp * values[i];
}
results /= wgt;
ただし、距離は可能で0
あり、重みを計算に適したものにする必要があります。dist[i]
距離が1つしかない場合は、対応する値を支配的0
にしたいと思います。距離が複数ある場合は、それらの値が結果に等しく寄与するようにしたいです。また、ゼロではなく非常に小さい場合でも、それをチェックして対処するための合理的な基準が必要です。それを実装する方法はありますか?values[i]
0
dist[i]