0

この質問の言い方がよくわかりませんでした。かなり奇妙です。

強度値の 1 次元配列と境界ボックス (配列内の整数の開始点と終了点) があります。境界ボックス内の値を同じに保ちたいのですが、ボックスの外側の値を指数関数的に減少させます (つまり、それらが遠ざかるほど減少します)。境界ボックスがあるプラトーを持つガウスのように見えるはずです。誰かがこれを行う方法の例を挙げてもらえますか? 今夜は私の脳がうまく機能していません、ありがとう。

アップデート:

私はこれを使用しました:

if (j < low) a[j] *= Logistic(t*(j + (6f/t) - low));
else if (j > high) a[j] *= Logistic(-t*(j - (6f/t) - high));

private double Logistic(double x)
{
    return (1 / (1 + Math.Exp(-x)));
}
4

3 に答える 3

1

指数関数的に減少し、任意に0に近づく方法を尋ねていますか?

value = 1 / e^(distance)

または、最初は速く、さらに離れるにつれてゆっくりと増加するもの、つまり。指数の逆?

value = ln(distance)

有界であるものに似たもの(最初は速く増加し、遠くに行くにつれてゆっくりと増加する)が必要な場合は、シグモイド曲線でこの回答を参照してください。

于 2011-03-07T20:52:50.310 に答える
1

何かのようなもの

if (n<low)
  a[n] *=  exp(-t*(low-n));
else if (n>high)
  a[n] *=  exp(-t*(n-high));
else 
  a[n] *=  1.0;

パラメータtで?実際、最後のelseブランチは省略できます。

于 2011-03-07T20:54:21.803 に答える
0

本質的に、ガウスのこぶを切り落としたいですか?

ガウス関数はのようなものI = I_0 exp(-aX^2)です。バウンディングボックスの幅の半分になりIます。X次に、必要なものが得られるまで遊んでI_0ください(対応するaものを取得するには、を選択するか、またはその逆を選択してください)。I_0a

(また、Xバウンディングボックスの中心にオフセットされます。上記の式はX= 0で機能します。)

于 2011-03-07T20:57:48.693 に答える