5

未定義の関数がしきい値と交差するポイントの適切な近似値を見つける必要があります。私は自分のスペースを通り抜けており、後続の 2 つのステップがしきい値の異なる側にあることがわかった場合はいつでも、その間のどこかにポイントを追加します。

実際の状況

(ソース: ning.com )

私の最初のアプローチは単に中間点を選ぶことでしたが、これは明らかにひどい解決策です:

中点

(ソース: ning.com )

私は現在、合理的な結果をもたらす線形補間を使用していますが、基になる関数は実際には決して線形ではありません。したがって、これはステップサイズが十分に小さい場合にのみうまく機能します。

線形補間

(ソース: ning.com )

基本関数のサンプリングは非常にコストがかかる可能性がありますが、1 つまたは 2 つの追加サンプルを追加して、より適切な近似値を取得することを試してみたいと思います。ここでキュービック補間を使用することは可能ですか? そのようです:

CubicInterpolation
(ソース: ning.com )

それとももっと良い方法がありますか?

大変お世話になりました、デビッド・ルッテン

ps。私は C# で書いていますが、これは言語に依存しない問題です。

4

3 に答える 3

3

魔法の言葉は「ルート ソルバー」です。数学的根は、関数がゼロに等しい値です。しきい値を加減することで、ルート ファインダーを使用できます。

補間している関数の手がかりがある場合は、非常に高速なルート ファインダーを設定できます。投稿で示唆されている手がかりがない場合(「未定義」)、最良の方法は、「ブレント法」、「正割法」と「二等分法」の組み合わせ、または「正割法」のみです。ウィキペディアには、このメソッドのエントリがあります。

あなたの意見に反して、より複雑な関数を使用することはお勧めできません。主なパフォーマンスのハードルは、より多くのポイント/導関数またはより複雑な補間関数を取得することで増加する関数評価です。

最大/最小/変曲点に近い場合、ニュートン-ラフソン法は非常に悪いです。これは、微分がゼロに近いため、その点から遠く離れてしまい、他にも問題があるためです。自分が何をしているのかを理解するまで使用しないでください。

于 2009-12-07T22:36:32.833 に答える
2

私の数学は信じられないほどさびていますが、ニュートン ラフソン法で良い結果が得られるかもしれません。一般に、反復が目的の根の「十分近く」で始まると仮定すると、正確な解に非常に迅速に収束します。

于 2009-09-20T19:58:47.383 に答える
2

最後の写真は 3 つの点のみを示しています。これは、3 次ではなく、2 次多項式を定義するのに十分です。3 次補間の場合、4 つのポイントが必要です。3 次多項式はさまざまな方法で近似できます。ここに2つあります。

最も簡単な方法は、単純に (一意の) 多項式が 4 つの点すべてを通過するようにすることです。

別の方法は、接線を使用することです。繰り返しますが、4 つのポイントが必要です。左の 2 点で勾配を定義します。多項式が2 番目の点を通過し (通常、最初の点は通過しません)、その点で計算された勾配と一致します。右側の 4 番目と 3 番目のポイントも同じです。

ところで、高次の多項式は、少しでも入力ノイズが存在すると非常に不安定になる傾向があるため、おそらく悪い考えです。

問題のドメインについてもう少し詳しく教えていただければ、より具体的な回答ができるかもしれません。たとえば、データ ポイントはどこから来るのか、一般的にどのような曲線が期待できるのか、必要に応じて戻ってさらにサンプリングできるのか? 必要に応じて、方程式と疑似コードも提供できます。

更新:愚かな私は、2つの方法を入力せずに言及する文を残しました. それらを今入力しました。

于 2009-09-20T20:02:12.803 に答える