3

私は最初のC#プロジェクトの1つを始めています。いくつかの、xyデータポイントに適合するカーブを見つける必要があります。

例えば:

x:1,2,3,4,5,6 y:0.5,5,0.5,2.5,5,0.5

たまたま、Excelによると、これらのポイントに必要な適切なカーブフィットは6次多項式です。

この曲線の係数と指数を取得して、C#で適切な式を作成するにはどうすればよいですか?これはマイクロプロセッサで使用するためにCに変換される可能性が高いため、ライブラリには近づかないようにしたいと思います。

私はC#を初めて使用し、ハードウェアとソフトウェアの統合についてほとんど知りません。

そうは言っても、私は今数値的方法論について読んでいます...このプロジェクトのステップ2は、曲線を取り、連続する最小値の間で数値積分することです...

アドバイス/ポインタは大歓迎です。

入力は6つのxy座標で与えられます。

問題#1: 6つの座標が与えられた多項式を書くにはどうすればよいですか?

4

3 に答える 3

3

特定のxiで評価されたn点が与えられた多項式の係数を見つける問題は、多項式補間問題として知られています問題とその解決策の詳細はここ(wikipedia.org)で読むことができます。

補間多項式の構築のセクションに細心の注意を払う必要があります。ここでは、ガウスの消去法を使用すると、反転する必要のある行列が大きなエラーを引き起こす可能性があると述べています。より良いアプローチについては、ニュートン補間(wikipedia.org)を確認してください。たぶん6つのポイントだけではそれほど重要ではありませんが、知っておく価値があります。

実装に関しては、2つのオプションがあります。ScienceCode.Net (sciencecode.com)などの線形代数をサポートするサードパーティライブラリを使用するか、ベクトルと行列の基本的な抽象化の記述を開始し、次のような基本的な操作を実装します。乗算、加算、および反転として。当時、私たちは「Numerical Recipes in C」というライブラリを使用していましたが、C#用のポートがある可能性があります。チェックする価値があるかもしれません。

于 2012-05-15T17:31:01.367 に答える
0

6次多項式が6つのデータポイントに最適であると考える場合、あなたは深刻な過剰適合のように見えます。実際のデータに6つのポイントしかないことを実際に意味するのかどうか、興味があります(この場合、適合はしません)。意味があります)または、サンプルポイントが6つしかなく、データの実際の形状を予測することが期待されていること。

https://www.coursera.org/course/mlには、機械学習に関する優れたクラスがあります。これは、多項式の適切な順序を自動的に選択すること、データを分割すること、および基礎となる行列数学などのより基本的な側面について教えるため、より具体的に関連しています。全部。

「アルゴリズムX」を指摘して、それが正しく行われることを期待できるようなものではありません... MLコースでは、人々が犯す多くの間違い(過剰適合、過適合、不十分なデータサンプリングなど)をカバーしています。 ..)データへのフィッティングを行う場合。また、それらを回避する方法についても説明します。

于 2012-05-15T17:34:20.670 に答える
0

この目的でMathNET.Numericsライブラリを使用することに成功しました。Nugetパッケージとしてインストールでき、積極的に保守されているようです。カーブフィッティングについては、こちらのドキュメントで説明されています。

于 2021-05-14T12:16:45.310 に答える