6

私はかなり前からインターネットを精査しており、5つのデータポイントを使用して2次多項式を近似するためのシンプルで直感的で高速な方法を見つけようとしています。

私はVC++2008を使用しています。

私はcminipack、cmpfit、lmfitなどの多くのライブラリに出くわしました...しかしそれらのどれも非常に直感的ではないようで、コードを実装するのに苦労しました。

最終的に、1D配列に離散値のセットを配置し、データをカーブフィッティングして「仮想最大点」を見つけ、そのデータの最大点を非整数値(整数の場合)で見つけようとしています。値は、配列を見るだけで最高の精度になります)。

とにかく、誰かがこれに似た何かをして、彼らが使用したパッケージ、そしておそらくパッケージの単純な実装を私に指摘することができれば、それは素晴らしいことです!

私がどのようなものを扱っているかを示すために、いくつかのテストデータとグラフを提供できてうれしいですが、私の要求は非常に簡単だと思います。どうもありがとう。

編集:これが私が書いたコードで、うまくいきます! http://pastebin.com/tUvKmGPn

サイズを変更して、使用する入力の数を変更します

0 0 1 1 2 4 4 16 7 49

a:1 b:0 c:0続行するには任意のキーを押してください。。。

助けてくれてありがとう!

4

2 に答える 2

3

フォームの標準放物線に適合させたいと仮定すると、

    y = ax^2 + bx + c 

あなたの5つのデータポイントに、必要なのは3 x 3の行列方程式を解くことだけです. この例を見てください http://www.personal.psu.edu/jhm/f90/lectures/lsq2.html - あなたが説明しているように見える同じ問題を解決します(より多くのデータポイントを使用するだけです)。微積分の基本的な理解があり、3x3 行列を反転できる場合 (または、数値的により適切なもの - 質問のタイトルで特に SVD に言及していることを考えると、そうすると思います)、この例では何をする必要があるかを明確にします。

于 2012-06-27T19:49:44.220 に答える
1

多項式回帰に関するこのウィキペディアのページを見てください

于 2012-06-27T19:36:49.397 に答える