3

さて、皆さん、クリエイティブになる時間です。整数のリストがあり、下の 5 つの緑色のボックスに整数を保存したいと考えています。私は 5 つの最小値を見つけることを考えました。次に、各最小値から次の整数まで左右に移動すると、一定の距離が遠すぎます。ただし、最後のボックスには保持したい分散値がいくつかあるため、これを行うのは難しい場合があります。

したがって、クリフノートには、整数のリストを5つ作成したい整数のリストがあり、5つのリストのそれぞれが緑色のボックスの1つの値を保持しています。

この質問がばかげているように思われる場合は申し訳ありませんが、他の人が上記の方法よりも良い方法を持っているかどうかを知りたかっただけです.

整数のリスト

編集: おそらく、Levenberg-Marquardt アルゴリズムが役立つでしょうか? 数学の本を理解できれば xD. 数学の説明は決して英語で書かれていないことを誓いますが、誰かが使い方と方法を教えてくれれば、それを理解して理解できます. それから私は本からそれをもう一度読みに行くことができ、ただ再び混乱するだけです!

4

2 に答える 2

1

点を通る最小二乗適合線を見つけてから、点が線の上にあるか下にあるかを調べます。これにより、ポイントが線の下の 5 つの緑色のボックスと、線の上にある 6 つの赤外線のボックスに分割されます。ボックス間のポイントも含まれますが、除外すべきポイントの前後に大きなジャンプがあるため、除外するのは簡単です。しかし、このデータ セットの右上に問題があるようにも見えます。

于 2013-08-01T00:21:35.157 に答える
1

それは可能な解決策かもしれません:

整数 P[n] のリストを呼び出してみましょう。

  • ポイントの新しいリストを定義します。これを MAX[n] と呼び、次のように計算します。

if ((MAX[n] < P[n]) || (n == 0)) MAX[n] = P[n]; それ以外の場合、MAX[n] = MAX[n-1];

このように、MAX[n] リストはグラフの上の緑色の線になります。最大[n]

最初の解決策: 緑色のボックス内のポイントを識別するには、P リストの増分比率を計算し、その絶対値がしきい値よりも小さい場合を確認するだけです。

私 = [P[n+1] - P[n]] / [T[n+1] - T[n]]

したがって、I がしきい値を下回り、P が MAX を下回っている場合、ポイントは緑色のボックスに入ります。

if ((P[n] < MAX[n]) && (ABS(I) < DER_THRESHOLD)) // ポイントは緑色のボックス内にあります

グラフから、おおよそ、DER_THRESHOLD = 5 を入力できます。

2 番目の解決策: 今回は AVG[n] と呼ばれる整数の新しいリストを次のように計算します。

AVG[n] = (MAX[n] + P[n]) / 2

これは赤い線で終わります (醜いグラフで申し訳ありませんが、手作業で行いました):

平均[n]

これで、P[n] が AVG[n] を下回っているかどうかを確認するだけで、緑色のボックスを識別できます。

このソリューションは、AVG 計算で何らかの低フィルタリングを使用することでさらに改善される可能性があります。

于 2013-08-01T08:18:10.220 に答える