3

私は2D平面での粒子の軌道の分析に取り組んでいます。この軌道は通常、5〜50(まれにそれ以上)のポイント(離散整数座標)で構成されます。データセットのポイントを一致させて軌道を形成しました(したがって、時間分解能があります)。
この軌道の曲率についていくつかの分析を実行したいのですが、残念ながら、私が使用している分析フレームワークは軌道のフィッティングをサポートしていません。私が聞いたところによると、これを行うためにスプライン/ベジェ曲線を使用できますが、何を使用するかについての意見や提案をお願いします。
これは私の仕事のオプション部分にすぎないため、自分でソリューションを実装したり、複雑なフレームワークを理解したりするために膨大な時間を費やすことはできません。解決策は可能な限り単純でなければなりません。

可能なライブラリから必要な機能を指定しましょう
。-さまざまな数のポイントから軌道を作成します
-ポイントは離散的であるため、それらの位置を補間する必要があります。結果として得られる軌道とポイント間の距離がしきい値未満である限り、すべてのポイントを完全に一致させる必要はありません。ライブラリが任意のポイントの軌道の導関数
を 生成できることが不可欠です。ライブラリが可能 であれば有益です。補間の品質レベル(近似のカイ2乗など)を報告します

編集:コメントを読んだ後、もう少し追加したいと思います:
軌道がポイントと正確に一致する必要はありません。ポイントはピクセルマトリックスの値から作成されるため、特定の距離あたりのピクセル数によって制限された空間解像度を持つ座標の離散マトリックスを形成します。したがって、ポイント(発射ピクセルの中心に配置される)は、粒子の実際の軌道と(正確に)一致しません。解が全単射でも単射でもない可能性のある/ほとんどの場合の軌道に対処できる限り、内挿または近似のどちらでも問題ありません。
したがって、ほとんどの従来の近似アプローチ(多項式による近似や最小二乗近似を使用した指数関数など)は、私の基準を満たすことができません。
さらに、私が試したすべての従来の適合アプローチは、軌道を非常によく説明しているように見える関数を生成しますが、それらの一次導関数(またはより高い解像度)を見ると、(私の解釈から)結果である多数の「微小振動」を見つけることができます非直線関数を軌道の(ほぼ)直線部分に適合させる方法。

Edit2:コメントには、それらの軌跡がどのように見えるかについて、いくつかの議論がありました。前の手順で重なったり交差したりする軌道を除外しようとしていますが、基本的には、任意の形状、長さ、および「巻き毛」があります。以下に2つの例を示します。色付きのボックスは無視してください。これらは、生のピクセルマトリックスの値を表したものにすぎません。黒い円形のドットは、軌道に一致させたいポイントです。これは、常にピクセルの中心にあり、離散(整数)値しかない場合があるためです。

ex1
ex2

助けと貢献を事前に感謝します!

4

2 に答える 2

1

これは行く方法かもしれません

http://alglib.codeplex.com/

あなたの説明から、パラメトリックスプライン補間があなたの要件に合うかもしれないと私は言うでしょう。上記のライブラリを自分で使用したことはありませんが、スプライン補間をサポートしています。補間を使用すると、適合度について心配する必要がなくなります。曲線は、指定したすべてのポイントを通過します。

于 2012-06-14T16:08:36.477 に答える
0

行列ライブラリを使用してもかまわない場合は、線形最小二乗法が最も簡単な解決策です(使用する方程式については、一般的な問題のセクションの最後を参照してください)。線形/多項式回帰を使用して、このような問題を解決することもできます。

線形最小二乗法は常に最良のソリューションを提供しますが、行列の乗算は適度にコストがかかるため、スケーラブルではありません。回帰は反復ヒューリスティック手法であるため、「十分に良い」答えが得られるまで実行できます。データの約1000〜10000次元でのカットオフのガイドラインを見てきました。したがって、何らかの理由で高次元にすることにした場合を除いて、データセットでは線形最小二乗法をお勧めします。

于 2012-06-14T16:20:34.430 に答える