下のような曲線の最も滑らかな 15% を見つける最良の方法は何ですか?
開始と終了の x 座標を知る必要があります。微分関数を使用することを考えましたが、これにより微分が最小のポイントが得られます。これは、常に最も滑らかな 15% の一部である場合とそうでない場合があります。
私が見るべきアルゴリズムや提案はありますか?
下のような曲線の最も滑らかな 15% を見つける最良の方法は何ですか?
開始と終了の x 座標を知る必要があります。微分関数を使用することを考えましたが、これにより微分が最小のポイントが得られます。これは、常に最も滑らかな 15% の一部である場合とそうでない場合があります。
私が見るべきアルゴリズムや提案はありますか?
calc の記憶が今日いつも以上に失われない限り、ここで必要なのは 2 次導関数です。
または、正しいサイズのスライディング ウィンドウを使用して、各位置でのウィンドウの分散を計算することもできます。最小の分散を持つウィンドウが最も滑らかになるはずです。
もちろん、「滑らか」をどのように定義するかにもよります。Y 値の最小の変化を意味しますか、それとも (たとえば) ほぼ完全にまっすぐな (しかしほぼ垂直でもある) 線が「滑らか」と見なされることはほとんどありませんか?
分析の解像度(つまり、閉区間のサイズ、デルタXと呼びます)を決定し、@Jerryが述べたように、終点を含むその閉区間内の関数の最大値と最小値を見つけます。
これにより、 n間隔 (またはデルタ X) が得られ、各間隔の最大値と最小値が得られます (それらをデルタ Y と呼びましょう)。
これで基本的に、関数のドメインをn 個のデルタ X に分割し、それぞれが対応するデルタ Y を持ちます。
次に、間隔をグループ化して、m間隔のグループが関数ドメインの最大 15% になるようにします。m間隔のグループを分析の「ウィンドウ サイズ」と呼びましょう。
ウィンドウを単一のデルタ X の幅にスライドさせ、ウィンドウのデルタ Ys を合計できるはずです。その値を保存し、スペースがなくなるまで別のデルタ X をスライドさせます (ドメイン内のウィンドウ サイズ全体を維持しながら)。最小の合計を見つけます。これは、「最も滑らかな」15% に対応する必要があります。滑らかとは Y 分散が最小であることを意味します。