XY 値のセット (つまり、散布図) があり、Pascal ルーチンでそれらの点に適合する N 次多項式の係数を Excel と同じ方法で生成したいと考えています。
5 に答える
最小二乗カーブフィッティングアルゴリズム(線形回帰とも呼ばれます)を実装するDavid J TaylorのPolyfitの例(curvefit.zip)を使用しましたが、Davidのサイトはここにありますが、私のバージョンの方が優れているため、読み続けてください。(下記参照)。
Davidが使用しているアルゴリズムの起源は、Pascalプログラマー向けの科学数学に関する本、「科学者とエンジニアのためのPascalプログラム」という本からのアレン・ミラーのカーブフィッティングルーチンであり、1982年10月にJuergen Loewnerによって入力されてMTPUGに提出され、修正されました。ジェフ・ワイスによってターボパスカルに適応しました。
ここでbitbucketから直接curvefit.zipを取得できます。(Mercurial / TortoiseHGを使用してソースコードのクローンを作成するか、bitbucketからZIPをダウンロードできます)
hg clone https://bitbucket.org/wpostma/curvefit curvefit
Unicodeであろうとなかろうと、Delphi 10ベルリンでさえ、すべてのdelphiバージョン5以降で動作します。デモには、私が追加した小さなチャートがあります。また、原点を介して結果を強制する方法を追加しました。これは、定数項以外のすべての値に最適な結果が必要な一般的な手法であり、ゼロまたは実験的に導出された平均のいずれかに強制する必要があります。一連の分析「ゼロサンプル」の平均に等しく設定される強制的な「ブランク減算」は、特定のタイプの機器で使用される場合の特定のタイプの分析化学、およびそれがより多くなる可能性がある他の科学的ケースで一般的です。原点から最も遠い曲線の領域全体のエラーを最小化するよりも、原点の周りのエラーを最小化する方がよい場合があるため、最適なものよりも便利です。
また、線形回帰の目的では、「曲線」も線である可能性があることを明確にする必要があります。これは、分析化学の目的で必要な場合であり、任意の直線(y = mx + b)の方程式は「検量線」。一次カーブフィットは線(y = mx + b)であり、二次カーブフィット(写真に表示)は放物線(y = nX ^ 2 + mX + b)です。ご想像のとおり、このアルゴリズムは一次から任意のレベルまで拡張できます。私はそれを8用語以上テストしていません。
スクリーンショットは次のとおりです。
Bitbucketプロジェクトのリンク:
TPMath http://tpmath.sourceforge.net/を試してみてください- 私は何年もの間、ヒル回帰をフィッティングするためにこれを使用しており、お勧めできます。
Turbo Power の SysTools ライブラリの関数を確認してください。現在はオープン ソースであり、ユニット StStat に数学関数が含まれています。
XlXtrFunは、私が知っていて使用している最高のカーブ フィッティングですが、Excel 用です。
あなたはすでに回答を与えていますが、完全を期すために、これを追加すると思いました:
私たちは SDL Components の Math パックを使用しており、非常に満足しています。
http://www.lohninger.com/delfcomp.html
よく考えられており、私たちが必要としているものを正確に実行します。
彼のサイトには他にもさまざまな興味深いツールがあります。