非線形カーブフィット VI



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

1つ上のパレット: フィッティングVI

インストールパッケージ: 開発システム

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

詳細  サンプル

このVIのインスタンスを選択するには、プルダウンメニューを使用してください。

非線形カーブフィットLM

データは実行時にユーザ定義関数が必要とするスタティックデータを指定します。
f(x,a)は、フィッティングモデルを実装するVIへのリファレンスです。aは、LabVIEWが計算するパラメータのセットです。 labview\vi.lib\gmath\NumericalOptimization\LM model function and gradient.vitにあるVIテンプレートを使用して、テンプレートからVIを作成します。

Yは、従属値の配列または観測値を指定します。入力ポイント数は0より大きくなければなりません。
Xは、独立値の配列を指定します。入力ポイント数は0より大きくなければなりません。
加重は、観測(Y)の加重配列です。加重が配線されていない場合、このVIは加重のすべての要素を1に設定します。 加重の要素の数がYより少ない場合、VIによって加重の末尾がYと長さが同じになるように1でパディングされます。加重の要素の数がYより多い場合、加重の末尾の余分な要素は無視されます。加重要素が0より小さい場合、このVIは要素の絶対値を使用します。
初期パラメータは、最良フィットパラメータの初期推定値を指定します。初期パラメータの長さはf(x,a)aの長さと同じでなければなりません。 非線形曲線フィットの精度は、初期係数最良フィットパラメータにどれだけ近似するかで決定されます。したがって、このVIを使用する前に利用可能なあらゆるリソースを使用して適切な解の初期予測パラメータを得ることが重要です。
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。
停止は、フィットプロセスの停止条件を指定します。
最大反復はフィットルーチンの最大反復数を指定します。反復数が最大反復を超えると、フィットプロセスは終了します。
許容範囲は、Yと現在のフィット間の重み付き距離の相対変化を指定します。この相対変化が許容誤差以下の場合、フィットプロセスは終了します。
関数呼び出し回数は、フィットプロセス中にLabVIEWがf(x,a)を呼び出した回数を返します。
最良非線形フィットは、Xの独立値に一致する近似モデルのy値を返します。
最良フィット係数は、最良非線形フィットYの観測値の間の重み付き二乗平均誤差を最小化するパラメータの配列を返します。
共分散は、共分散の行列を返します。 Cjkは、a[j]とa[k]の間の共分散です。c[jj]はa[j]の分散です。このVIは、以下の式に従って共分散Cを生成します。

C = (1/2)D^–1

Dは、パラメータに関する関数のヘッシアンです。
エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。
残差は、最良非線形フィットYの間の重み付き二乗平均誤差を返します。

非線形カーブフィットLMフォーミュラ文字列

初期パラメータは、最良フィットパラメータの初期推定値を指定します。初期パラメータの長さはモデル詳細パラメータの長さと同じでなければなりません。 非線形曲線フィットの精度は、初期係数最良フィットパラメータにどれだけ近似するかで決定されます。したがって、このVIを使用する前に利用可能なあらゆるリソースを使用して適切な解の初期予測パラメータを得ることが重要です。
Yは、従属値の配列または観測値を指定します。入力ポイント数は0より大きくなければなりません。
Xは、独立値の配列を指定します。入力ポイント数は0より大きくなければなりません。
加重は、観測(Y)の加重配列です。加重が配線されていない場合、このVIは加重のすべての要素を1に設定します。 加重の要素の数がYより少ない場合、VIによって加重の末尾がYと長さが同じになるように1でパディングされます。加重の要素の数がYより多い場合、加重の末尾の余分な要素は無視されます。加重要素が0より小さい場合、このVIは要素の絶対値を使用します。
モデル詳細は、非線形曲線フィットを適用するモデルのフォーミュラ文字列の説明を指定します。
モデルは、モデル式を記述する文字列です。フォーミュラには任意の数の有効な変数を含めることができます。
パラメータは、不明なパラメータの文字列の配列です。
xは独立変数を指定します。
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。
停止は、フィットプロセスの停止条件を指定します。
最大反復はフィットルーチンの最大反復数を指定します。反復数が最大反復を超えると、フィットプロセスは終了します。
許容範囲は、Yと現在のフィット間の重み付き距離の相対変化を指定します。この相対変化が許容誤差以下の場合、フィットプロセスは終了します。
最良非線形フィットは、Xの独立値に一致する近似モデルのy値を返します。
最良フィット係数は、最良非線形フィットYの観測値の間の重み付き二乗平均誤差を最小化するパラメータの配列を返します。
共分散は、共分散の行列を返します。 Cjkは、a[j]とa[k]の間の共分散です。c[jj]はa[j]の分散です。このVIは、以下の式に従って共分散Cを生成します。

C = (1/2)D^–1

Dは、パラメータに関する関数のヘッシアンです。
エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。
残差は、最良非線形フィットYの間の重み付き二乗平均誤差を返します。

非線形カーブフィットの詳細

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

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

このとき、a0, a1, a2, … はパラメータです。

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

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

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

サンプル

非線形カーブフィットVIの使用サンプルは、以下のVIで参照できます。

  • 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: labview\examples\Mathematics\Fitting


この記事は役に立ちましたか。

役に立たなかった