1

曲線間のある種の距離を計算する必要があります。

これらは一般的な曲線であり、関数ではない場合があります。つまり、x の一部の値が複数の値にマッピングされる場合があります。

編集

  • 曲線は X,Y ペアのリストとして与えられ、論理曲線は与えられた順序ですべての点を通る線です。典型的なデータセットには約 1000 ポイントが含まれます

  • 前述のように、曲線は関数ではない場合がありますが、通常は関数に似ています

この問題は、interp1 またはカーブ フィッティング ツールボックス (Matlab) の使用を妨げているものです。

私が考えていた距離の尺度は、曲線間の領域の面積ですが、合理的な代替手段は何でも構いません。

曲線のサンプル図と、計算したい領域を 編集します曲線

Matlab ソリューションが推奨されますが、他の言語でも問題ありません。

4

2 に答える 2

2

タイプの関数があり、y = f(x)それらが同じドメインで定義されている場合、「距離」を見つける一般的な方法は、ここで説明されているように L2 ノルムを使用することですhttp://en.wikipedia.org/wiki/L2_norm #pノルム. これは単純に、二乗された関数間の差の絶対値の積分です。パラメトリック カーブがある場合、このアプローチを直接採用することはできません。L2 基準が要件に対して十分でない場合は、「距離」の意味をより具体的に定義する必要があります。必要なものが不明な場合は、さまざまな種類の数学的ノルムを調べてみて、一般的に使用されているものが必要かどうかを確認してください (つまり、L1 ノルム、均一ノルム)。上記のウィキペディアのリンクは良い出発点です。L2 が十分に優れている場合は、積分を計算する方法が必要です。多くの数値積分手法が世の中にあるので、ここでは Google を友達にすることをお勧めします (または数値解析の優れた教科書)。

パラメトリック タイプの曲線がある場合、これは非常に重要です。曲線間の「領域」を使用することは、この領域を定義する明確な方法がなく、自己交差する曲線を持つことができる一般的なケースではさらに複雑になるため、良い考えではありません。曲線が同じ方法でパラメーター化されている場合は、パラメーター範囲全体で等間隔の値で各曲線上のポイントを評価する非常に大雑把な測定を試すことができます。次に、それぞれの間の距離の長さを計算し、合計して平均を概念として取得します。 「近さ」について。つまり、パラメータ範囲をセット {u_0, ... , u_n} に分割し、それぞれに対して curve1(u_i) と curve2(u_i) を評価して、ペア ポイントiのセットを生成します。n次に、点の各ペア間のユークリッド距離を合計します。

ただし、これは非常に大雑把であり、パラメータ化が異なる場合はあまり役に立ちません。

于 2013-03-03T15:19:38.047 に答える
0

曲線間の距離の意味を定義する必要があります。それが 2 つの一般的な曲線の間の最も近いアプローチである場合、問題を解決することは非常に困難になります。

「曲線」が x の単一値関数として表現できない場合は、さらに複雑になります。

「ある種の距離」を定義する必要があると言うだけでは、ここで話題にするにはあまりにも大雑把すぎます。また、解決したい問題をまだ考えていないことを示しています。

曲線が2つの完全に一般的なパラメトリック曲線であり、閉じているかどうか、または同じドメイン上にない可能性があるということだけを伝えたい場合、問題は完全に不適切なものになり、不可能になります。答える。その場合、2 つの曲線の間の面積は?

曲線が SAME サポート上で定義されている場合は、それらを減算し、差の絶対値または 2 乗を積分するだけで十分です。しかし、これらの「曲線」が多値である可能性があることはすでに説明しました。その場合、あなたが求めていることをすることは本質的に不可能です。

于 2013-03-03T15:08:33.717 に答える