レーベンバーグ・マルカートアルゴリズムを使用して、非線形関数 y = f(x,a)によって表現される入力データポイントのセット(X, Y)に最も適したパラメータのセットを求めます。ここで、aはパラメータのセットです。使用する多態性インスタンスを手動で選択する必要があります。


icon

入力/出力

  • c1ddbl.png 初期パラメータ

    初期パラメータは、最良フィットパラメータの初期推定値を指定します。初期パラメータの長さはモデル詳細パラメータの長さと同じでなければなりません。

    非線形曲線フィットの精度は、初期係数最良フィットパラメータにどれだけ近似するかで決定されます。したがって、このVIを使用する前に利用可能なあらゆるリソースを使用して適切な解の初期予測パラメータを得ることが重要です。

  • c1ddbl.png Y

    Yは、従属値の配列または観測値を指定します。入力ポイント数は0より大きくなければなりません。

  • c1ddbl.png X

    Xは、独立値の配列を指定します。入力ポイント数は0より大きくなければなりません。

  • c1ddbl.png 加重

    加重は、観測 (Y) の加重配列です。加重が未配線の場合、このVIは加重のすべての要素を1に設定します。

    加重の要素の数がYより少ない場合、VIによって加重の末尾がYと長さが同じになるように1でパディングされます。加重の要素の数がYより多い場合、加重の末尾の余分な要素は無視されます。加重要素が0より小さい場合、このVIは要素の絶対値を使用します。

  • ccclst.png モデル詳細

    モデル詳細は、非線形曲線フィットを適用するモデルのフォーミュラ文字列の説明を指定します。フォーミュラモードと数学VIのパーサーが異なる場合、このVIはパーサー構文を使用します。たとえば、べき乗に関しては、フォーミュラノードの構文ではなく、パーサー構文である^を使用します。

  • cstr.png モデル

    モデルは、モデル式を記述する文字列です。フォーミュラには任意の数の有効な変数を含めることができます。

  • c1dstr.png パラメータ

    パラメータは、不明なパラメータの文字列の配列です。

  • cstr.png x

    xは独立変数を指定します。

  • cerrcodeclst.png エラー入力 (エラーなし)

    エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。

  • cnclst.png 停止

    停止は、フィットプロセスの停止条件を指定します。

  • ci32.png 最大反復

    最大反復はフィットルーチンの最大反復数を指定します。反復数が最大反復を超えると、フィットプロセスは終了します。

  • cdbl.png 許容範囲

    許容範囲は、Yと現在のフィット間の重み付き距離の相対変化を指定します。この相対変化が許容誤差以下の場合、フィットプロセスは終了します。

  • i1ddbl.png 最良非線形フィット

    最良非線形フィットは、Xの独立値に一致する近似モデルのy値を返します。

  • i1ddbl.png 最良フィットパラメータ

    最良フィット係数は、最良非線形フィットYの観測値の間の加重平均二乗誤差を最小化するパラメータの配列を返します。

  • i2ddbl.png 共分散

    共分散は、共分散の行列を返します。

    Cjkは、a[j]とa[k]の間の共分散です。c[jj]はa[j]の分散です。このVIは、以下の式に従って 共分散 Cを生成する: C = (0.5D)^-1 ここで、 Dは パラメータに関する関数のヘシアンである。

  • ierrcodeclst.png エラー出力

    エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。

  • idbl.png 残差

    残差は、最良非線形フィットYの間の重み付き平均二乗誤差を返します。

  • このVIはレーベンバーグ・マルカート法を使用し、Y最良非線形フィットの観測間で加重平均二乗誤差を最小化する最良フィットパラメータを計算します。以下の式はカーブモデルを定義します。

    y[i] = f(x[i], a0, a1, a2, …)

    ここで、a0a1a2、… はパラメータです。

    レーベンバーグ・マルカート法はパラメータと線形関係を持つyを必要としません。

    ヘッシアン行列は、ニュートン法など、数値的最適化法の一般行列です。特異ヘッシアン行列の欠点を回避するには、レーベンバーグ・マルカート法で正定値の対角行列をヘッシアン行列に追加します。この正定値の対角行列は、レーベンバーグ・マルカート法とガウス・ニュートン法の間の主な違いです。レーベンバーグ・マルカート法の詳細については、数学に関する関連ドキュメントトピックの「数値的最適化」を参照してください。

    非線形レーベンバーグ・マルカート法を使用して、線形カーブフィットと非線形カーブフィットに適応できます。ただし、線形曲線をフィットする場合、「一般線形フィット」VIがこのVIよりもより効果的です。レーベンバーグ・マルカートアルゴリズムでは必ずしも正確な結果を保証できないため、この手法での結果を検証する必要があります。

    サンプルプログラム

    LabVIEWに含まれている以下のサンプルファイルを参照してください。

    • labview\examples\Mathematics\Fitting\Ellipse fit.vi
    • labview\examples\Mathematics\Fitting\Sum of 3 Gaussians with offset fit.vi
    • labview\examples\Mathematics\Fitting\Gaussian surface with offset fit.vi