ピーク関数を定義する


ピークアナライザを使ってピークをフィットするとき、「ピークフィットのパラメータ」ダイアログで各ピークに対して組み込み関数を選択したり、フィット関数オーガナイザフィット関数ビルダで定義したユーザ定義関数を作成することができます。ピーク関数の定義は、ユーザ定義フィット関数の作成とよく似ていますが、次の点が追加されています。

  • ピークアナライザで使用するには、関数を定義するときに関数がPFWカテゴリにあり、ピーク関数チェックボックスがオンになっている必要があります。
  • 他のカテゴリの既存のフィッティング機能をピークフィッティングで使用できるようにするには、ツール: フィット関数オーガナイザを選択します。関数の上で右クリックし、移動先または共有先を選択して、表示されるダイアログのドロップダウンのリストオプションから、PFWを選択します。
  • ピーク関数を クイックピークガジェット または 複数ピークガジェットのピークフィットツールに利用出来るようにするには、ピーク関数を選択します。
  • ピークアナライザで基線をフィットする関数を定義する(OriginProのみ)には、 基線 カテゴリーにユーザ定義関数を保存する必要があります。
  • 少なくとも、関数には異なる特有のピークと関連する4つのパラメータがなければなりません。パラメータ属性は、フィット関数ビルダの式形式の関数ページピーク属性列で設定されます。最初のパラメータはy0とされ、属性はオフセット/基線を割り当てられます。他のパラメータは任意の名前を指定できますが、必ず属性としてX中心X幅振幅/面積を指定してください。

同僚がFDFファイル(Origin関数定義ファイル)をあなたと共有している場合は、OriginワークスペースにドロップするだけでOriginに追加できます。

  • Origin 2018以降、カテゴリ情報はFDFファイルに保存されます。このファイルをOriginにドロップすると、作成者が指定したカテゴリにカテゴリが自動的に割り当てられます。
  • 以前のバージョンでは、FDFファイルをOriginワークスペースにドロップすると、カテゴリーの選択ダイアログが開き、カテゴリを割り当てることができます。

例 1:Origin C

次のデモンストレーション例では、ピークアナライザで使用されている、AsymmetricGaussと名付けられたピーク関数をどのように定義するかを説明します。

定義されるピーク関数は次の通りです。

double B,sig;
B=A/(0.5*(sig1+sig2)*sqrt(2*pi));
sig = x<xc ? sig1:sig2;
y = y0 + B * exp(-0.5 *((x-xc)/sig)^2);

x は独立変数、y は従属変数、y0, sig1, sig2, xc は、それぞれ属性オフセット、ピーク範囲、左側ピーク幅、右側ピーク幅、ピーク中心に対応するパラメーターです。


ピークアナライザでのピーク関数によるフィッティングを定義するには7つのステップがあります。

1.キーボードでF8 キーを押すか、メニューのツール:フィット関数ビルダー を開きます。

2.進むをクリックして、関数名と関数形式のページに移動し、関数カテゴリーの選択/新規名称のドロップダウンリストからPFWを選択し、関数名AsymmetricGaussと入力します。関数形式のリストからOriginCを選びます。

3.進むをクリックし、変数とパラメーターのページに移動します。変数とパラメーターを次のように入力し、ピーク関数にチェックを入れます。

Define Peak Function 01.png

4.進むをクリックし、Origin C フィット関数ページに移動します。ピーク属性の列にある全てのセルをそれぞれクリックし、それぞれのパラメーターをピーク属性に設定します。パラメータの初期値を入力します。それぞれのパラメーターに意味を入力します。関数内容の編集ボックスに関数式を入力し、次の図のように、クイックチェックにX=1120を入力して、表現が正しく記述されているかを確かめます。

Define Peak Function 02.png

5.進むボタンをクリックし、パラメーターの初期化ルーチンのページに移動します。次のコードを初期化コードの編集欄に、次の図のように入力します。

Define Peak Function 03.png

6.進むをクリックし、境界条件と一般線形制約のページに移動します。< or <= 列のセルをトグルで切り替えるためにダブルクリックします。上限値、下限値を入力します。それぞれのパラメーターを入力すると、次に示すようにフィット結果を抽出する範囲を制限します。

Define Peak Function 04.png

7.完了ボタンをクリックすると、ピーク関数が作成され、PFWカテゴリーに割り当てられます。

そして、ピークフィットパラメータダイアログのピークタイプドロップダウンから、定義した関数を選択し、ピークアナライザの中でこの関数でピークフィットを実行することができます。

Define Peak Function 05.png

例 2:Python

Origin 2021bより、Pythonを使ってピークフィット関数を定義することができます。これらの関数は、ピークアナライザ、複数ピークフィットツール、およびNLFitダイアログで使用できます。

  1. フィット関数ビルダーを開き(ツール:フィット関数ビルダーまたはF8)、新しい関数の作成ラジオボタンを選択し、進むをクリックします。
  2. 関数カテゴリーの選択/新規名称PFW関数名MyPyGaussV、と設定します。関数モデル陽関数関数形式Python関数 (Vector)、と設定します。
  3. 独立変数x, 従属変数yと入力し、パラメータには y0, xc, A, w と入力します(コンマで区切る必要があります)。
  4. ピーク関数にチェックを入れて進むをクリックします。
  5. 次の情報を入力し、各行(各パラメータ)のピーク属性ドロップダウンリストを必ず設定してください。
  6. FFB Mult Equations PythonV.png
    Python関数 (Vector)
    from numpy import pi, sqrt, log, exp
    def pyGaussVector(xvalues,y0,xc,A,w):
    	# 組み込みのGaussian.FDFと同じ定義:
    	#yvalues = [y0 + A/(w*sqrt(pi/(4*log(2)))) * exp(-4*log(2)*(x-xc)*(x-xc)/(w*w)) for x in xvalues]
    	fct = A/(w*sqrt(pi/(4*log(2))))
    	inexp = -4*log(2)/(w*w)
    	yvalues = [y0 + fct * exp(inexp*(x-xc)*(x-xc)) for x in xvalues]
    	return yvalues
    関数内容
    y = pyGaussVector(x,y0,xc,A,w)
    次のページ(インストール前のスクリプトページ)は、関数に必要なPythonパッケージについて、ユーザのシステムをチェックするために使用されるLabTalkコードを指定するPythonのみのページです。空欄のままにすることはできません。
  7. 進むをクリックしてインストール前のスクリプトページに移動し、以下を追加します。
    FFB Package Check PythonV.png
    Pythonパッケージの確認(LabTalkスクリプト)
    if(Python.chk("pandas cv2(opencv-python)") > 1)
      return 1;// FDFをインストールしない
    return 0;//続行
  8. これ以上設定する必要はないので、完了をクリックして関数を保存し、ダイアログを閉じます。
  9. データ:ファイルに接続: Text/CSVを選択し、<Originプログラム>\Samples\Curve Fittingを開き、MultiplePeaks.datを選択します。デフォルトのインポートオプションをそのままで、OKをクリックしてファイルを読み込みます。
  10. D(Y)のヘッダをクリックして列を選択し、散布図ボタンButton Scatter.pngをクリックして散布図を作成します。
  11. 解析: ピークと基線: ピークアナライザー: ダイアログを開くをクリックします。
  12. 目的ページでピークフィット (Pro)をチェックし、進むを4回クリックすると、ピークフィット (Pro)ページにたどり着きます。
  13. ページの下の方にあるフィット制御ボタンをクリックします。ピークフィットパラメータダイアログの中ほどにて、GaussianからMyPyGaussV (User)に変更し、OKをクリックしてダイアログを閉じます。
  14. 完了ボタンをクリックし、定義したユーザ定義Python関数で複数ピークをフィットします。
  15. FFB PythonV Results.png