ユーザ定義関数で組み込み関数を引用する
サマリー
このチュートリアルでは、ユーザ定義のフィット関数を作成する時に組み込み関数を引用する方法を示します。
必要なOriginのバージョン:8.0 SR6
学習する項目
このチュートリアルでは、以下の項目について説明します。
- 区間のフィット関数を定義する
- 新しい関数で組み込み関数にアクセスする
- パラメータの自動初期化
ステップ
データ
新しいワークブックに \Samples\Curve Fitting\Asymmetric Gaussian.dat のファイルをインポートするところから始めます。
列Bを選択してグラフを作成します。データ内のピークはわずかに右に傾いています。このような曲線をフィットするにはどうしたら良いでしょうか?1つのアイデアとして、グラフを2つの区間に分けて下図のように2つのガウス関数から成り立っていると考える事ができます。これらの2つのガウス曲線は、基線とピークの中心を共有し、ピークの幅と振幅が異なっています。
関数を定義する
F9を押し、フィット関数オーガナイザを開き、以下のように関数を定義します。
|
|
関数名: |
AsymmetricGauss |
実現方式: |
ユーザ定義 |
独立変数: |
x |
従属変数: |
y |
パラメータの名前: |
y0, xc, w1, w2, A1, A2 |
定義形式: |
Origin C |
関数: |
y = x<xc? nlf_Gauss(x, y0, xc, w1, A1) : nlf_Gauss(x, y0, xc, w2, A2); |
Note:
Origin 8.1より前のバージョンでは、関数は次のように定義します。
y = x<xc? nlfxGauss(x, y0, xc, w1, A1) : nlfxGauss(x, y0, xc, w2, A2);
x; y0; xc; w1; w2; A1; A2;
最後にパラメータを一覧にすると、関数でこれらのパラメータを使っているにもかかわらず、関数内でパラメータが使われていないというエラーを避けることができます。この手順は関数を正しくコンパイルするのに必要です。
|
組み込み関数を利用するために nlf_FuncNameを呼び出す場合のシンタックスは
- nlf_FuncName( 独立変数、パラメータリスト ... )
FuncNameがフィット関数の名前です。古い表記法ですが、nlfxFuncNameもサポートしています。
組み込み関数のパラメータリストは関数定義ファイル(FDFファイル)で設定された順番に従います。(FDFファイルはメモ帳で開く事ができます。ファイルは\\Origin EXE Folder\FitFunc\に保存されています。)Origin内で使用する関数名はDLL インターフェイス名のものです。本来の名前はFDFファイルの「General Information」セクションに表示されます。Function Source 項目を見て、値がfgroup.FuncNameで、このFuncNameを使用します。通常、この関数名はNLFitダイアログに表示される関数名で一貫性があります。Voigtのようにいくつかの関数名は異なります。
この関数のパラメータ初期化には、ガウス関数の初期化コードをコピーして、いくつか修正を加えるだけで行えます。
xc = peak_pos(x_y_curve, &w1, &y0, &A1);
w2 = w1;
A2 = A1;
最終的な関数は次のようになります。
関数の作成がうまくいったら、関数を保存して曲線をフィットします。結果は次のようになります。
|