lsq-general プログラム仕様
線形最小二乗法を用いたデータフィッティングスクリプト。
このスクリプトは、与えられたデータ点に対して、指定された基底関数の線形結合で近似する線形最小二乗法を実行します。 入力データはExcelファイルから読み込まれ、フィット結果の関数係数とグラフが表示されます。 基底関数の数と入力ファイルはコマンドライン引数で指定できます。
- regression.lsq_general.lsqfunc(i, x)
指定されたインデックスに対応する基底関数の値を計算します。
定数、cos(2x), sin(2x), cos(x), sin(x), cos(3x), sin(3x), x, x^2, exp(x) の10種類の基底関数をサポートします。
- パラメータ:
i -- int - 基底関数のインデックス。
x -- float - 関数の評価点。
- 戻り値:
float - 評価点 x における基底関数の値。
- regression.lsq_general.main()
スクリプトの主処理を実行します。
入力データファイルを読み込み、線形最小二乗法を実行して係数を計算し、 元のデータとフィット結果をプロットします。 基底関数の数 (nfunc) と入力ファイル (infile) は、 コマンドライン引数から取得するか、デフォルト値を使用します。
- regression.lsq_general.mlsq(x, y, m)
線形最小二乗法を用いて、与えられたデータに最もよくフィットする基底関数の係数を計算します。
与えられたデータ (x, y) と基底関数の数 m を使用して、 正規方程式 Sij * c = Si を解き、係数 c を求めます。
- パラメータ:
x -- list or numpy.ndarray - 独立変数のデータ点。
y -- list or numpy.ndarray - 従属変数のデータ点。
m -- int - 使用する基底関数の数。
- 戻り値:
list - 計算された基底関数の係数 c のリスト。