Non-linear-Fitting
LabTalkの非線形フィットは、Xファンクションベースのコマンドです。3つのステップで操作し、各ステップで少なくとも1つのXファンクションを呼び出します。
nlbeginではなく、以下のXファンクションでフィットモデルやデータにしたがってフィット処理を開始することもできます。
以下は、上記で簡単に説明した手順のスクリプトサンプルです。
// 非線形フィットを開始、アクティブワークシートから // 列1 (X)と列2 (Y)の入力データを取り // フィット関数を Gaussianとして指定し // ParamTreeという入力パラメータツリーを作成 nlbegin iy:=(1,2) func:=gauss nltree:=ParamTree; // 任意: ピークの中心をX = 5で固定 ParamTree.xc = 5; // ピークの中心のXの値に5を割り当て ParamTree.f_xc = 1; // ピーク中心を固定(f_xc = 0は固定ではない) // フィットを実行 nlfit; // 任意: スクリプトウィンドウに結果を表示 type Baseline y0 is $(ParamTree.y0),; type Peak Center is $(ParamTree.xc), and; type Peak width (FWHM) is $(ParamTree.w); // レポートシートなしでフィットセッションを終了 nlend;
フィットパラメータを保存するデータツリーには、上記サンプルで述べた以外にも多くのオプションがあります。 以下のスクリプトコマンドは、ツリーノードのすべて(名前と値)を、スクリプトウィンドウに表示することで、同時に見ることができます。
// 値を持つ全ツリー構造を見るには ParamTree.=;
Note: 計算を行うので、(パラメータツリーで固定オプションを0にセットして)固定でないフィットのパラメータ値は、初期値から変動します。 初期パラメータは、パラメータツリーの個々のノードにアクセスすることで、上記のサンプルで示すように、手動でセットしたり、Originで自動的にセットできます(下表のnlfn Xファンクションをご覧下さい)。
上記で与えられた3つに加え、非線形フィットを手助けするXファンクションがあります。 下表は、非線形フィットを制御するのに使用するXファンクションをまとめたものです。
ワークシートまたはグラフにあるXYデータに対してLabTalkのnlfitセッションを開始します。 Note:このXファンクションは、独立/従属モデルのみをフィットします。複数の従属/独立関数に対しては、代わりにnlbeginr を使用します。
行列オブジェクトまたはグラフから行列データに対してLabTalkのnlfitセッションを開始します。
ワークシートまたはグラフにあるXYZデータに対してLabTalkのnlfitセッションを開始します。
パラメータ自動初期化オプションをセットします。
パラメータ値と境界のGUI編集のためのパラメータダイアログを開きます。
反復計算を実行してデータをフィットします。
フィットセッションを終了し、任意でレポートを作成します。
これらのXファンクションのそれぞれの説明については、Xファンクションリファレンスをご覧下さい。
線形フィットとは違い、非線形フィットは、分析解が無い方程式を反復計算によって、解きます。しかし、Xファンクションを呼び出して分析を実行するという考え方は同じです。 線形フィットが1つのXファンクション(線形フィットのセクションを参照)で1行のスクリプトを実行するのに対して、非線形フィットは少なくとも3つのXファンクションが必要です。