ユーザ定義関数

非線形曲線フィット(カーブフィット)ツールでは、組み込みフィット関数のほか、ユーザ自身で関数を定義して使用することもできます。


フィット関数ビルダーで関数を定義

関数の作成には、「フィット関数ビルダー」または「フィット関数オーガナイザ」を使用します。ここでは、「フィット関数ビルダー」を使用して以下の関数を定義する方法を紹介します。

NLFit

Originメニューの「ツール:フィット関数ビルダー」を選び、ダイアログを開きます。

「新しい関数の作成」を選択して「進む」ボタンをクリックします。

「関数カテゴリー」と「関数名」を指定します。ここでは「User Defined」カテゴリー内に「MyExp」という関数名で作成します。
また、関数形式では、定義する関数のタイプを指定します。「LabTalk算術式」や「Python関数(Scalar)」などの項目を選択すると、右パネルにサンプルの式が表示されるので、定義したい関数の形式に応じて選択します。ここでは「LabTalk算術式」のままにして「進む」をクリックします。

「独立変数」、「従属変数」、「パラメータ」などを入力します。この関数の場合、以下のようにします。

  • 独立変数:x
  • 従属変数:y
  • パラメータ:y0, a, b

「進む」をクリックします。

「関数式」に式を入力します。パラメータの初期値をあらかじめ入力しておきたい場合は、パラメータ表の「初期値」の部分でダブルクリックすると入力できます。

「クイックチェック」では、指定した独立変数(ここではx)の値の時に、従属変数(ここではy)の値がいくつになるかを確認できます。パラメータの値はパラメータ表の初期値の値が使用されます。

関数の定義が終了したら「完了」ボタンをクリックすると、保存されます。

定義した関数を使ってカーブフィットを実行してみましょう。データを用意し、「作図」メニューから「散布図」を作図します。(ここで使用しているデータは、Originサンプルフォルダ\Samples\Curve Fittingにある、Exponential Decay.datです。)

メニューから「解析:フィット:非線形曲線フィット」を選択してダイアログを開きます。保存した関数のカテゴリ、関数を指定します。

「パラメーター」タブで初期値を設定します。ユーザ定義関数を使用したフィットでは、初期値の設定が重要です。理論値などフィット結果に使いと思われる値を入力します。ここでは、y0=80、a=100、b=-5を入力します。

パラメーター設定

また、「境界」タブでは、各パラメータの取り得る値の範囲を設定することもできます。

「1回反復」ボタンを何度か押して様子を見ます。

初期値の設定が適切でないと散布図にフィット曲線が近づいていきません。そのような場合は初期値を変更したり、制約条件を設定しながら試していきます。

問題なさそうなら「収束までフィット」ボタンをクリックして収束するまでフィットし、「OK」ボタンをクリックして結果を出力します。


ピークアナライザで使用する関数の場合

ピークアナライザで使用する関数を定義する場合、関数カテゴリ「PFW」内に定義する必要があります。また、関数定義の際に「ピーク関数」にチェックを付けることも必要です。

定義済みのユーザ定義関数を編集する場合、Originメニューの「ツール:フィット関数ビルダー」を選択して開くダイアログで、「ユーザ定義関数の編集」を選択して「進む」ボタンをクリックすると可能です。

定義した関数のカテゴリーを変更

機能によっては、特定の関数カテゴリーのものしか使用できない場合があります。例えば、陰関数によるフィットを実行する場合はImplicitカテゴリーにある関数しか使用できず、非線形曲面フィットでは、Surface Fittingカテゴリーにある関数しか使用できません。すでに異なるカテゴリーにフィット関数を保存している場合、カテゴリーを移動あるいは共有すれば使用できるようになります。

Originメニューの「ツール:フィット関数オーガナイザ」を選び、ダイアログを開きます。

ダイアログの左パネルで、移動する関数のカテゴリーを開き、関数を右クリックします。「移動先」または「共有先」を選択します。

ダイアログが開いたら移動(あるいは共有)先のカテゴリーを選択して、「OK」ボタンをクリックします。フィット関数オーガナイザダイアログでも「OK」ボタンをクリックして設定を保存すれば完了です。

page_top_icon