ピーク関数を定義するPeakAnalyzer-DefinePeakFunc
ピークアナライザを使ってピークをフィットするとき、「ピークフィットのパラメータ」ダイアログで各ピークに対して組み込み関数を選択したり、フィット関数オーガナイザやフィット関数ビルダで定義したユーザ定義関数を作成することができます。ピーク関数の定義は、ユーザ定義フィット関数の作成とよく似ていますが、次の点が追加されています。
- ピークアナライザで使用するには、関数を定義するときに関数が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.進むをクリックし、変数とパラメーターのページに移動します。変数とパラメーターを次のように入力し、ピーク関数にチェックを入れます。
4.進むをクリックし、Origin C フィット関数ページに移動します。ピーク属性の列にある全てのセルをそれぞれクリックし、それぞれのパラメーターをピーク属性に設定します。パラメータの初期値を入力します。それぞれのパラメーターに意味を入力します。関数内容の編集ボックスに関数式を入力し、次の図のように、クイックチェックにX=1120を入力して、表現が正しく記述されているかを確かめます。
5.進むボタンをクリックし、パラメーターの初期化ルーチンのページに移動します。次のコードを初期化コードの編集欄に、次の図のように入力します。
6.進むをクリックし、境界条件と一般線形制約のページに移動します。< or <= 列のセルをトグルで切り替えるためにダブルクリックします。上限値、下限値を入力します。それぞれのパラメーターを入力すると、次に示すようにフィット結果を抽出する範囲を制限します。
7.完了ボタンをクリックすると、ピーク関数が作成され、PFWカテゴリーに割り当てられます。
そして、ピークフィットパラメータダイアログのピークタイプドロップダウンから、定義した関数を選択し、ピークアナライザの中でこの関数でピークフィットを実行することができます。
例 2:Python
Origin 2021bより、Pythonを使ってピークフィット関数を定義することができます。これらの関数は、ピークアナライザ、複数ピークフィットツール、およびNLFitダイアログで使用できます。
- フィット関数ビルダーを開き(ツール:フィット関数ビルダーまたはF8)、新しい関数の作成ラジオボタンを選択し、進むをクリックします。
- 関数カテゴリーの選択/新規名称=PFW、関数名=MyPyGaussV、と設定します。関数モデル=陽関数、関数形式=Python関数 (Vector)、と設定します。
- 独立変数=x, 従属変数=yと入力し、パラメータには y0, xc, A, w と入力します(コンマで区切る必要があります)。
- ピーク関数にチェックを入れて進むをクリックします。
- 次の情報を入力し、各行(各パラメータ)のピーク属性ドロップダウンリストを必ず設定してください。
- 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のみのページです。空欄のままにすることはできません。
- 進むをクリックしてインストール前のスクリプトページに移動し、以下を追加します。
- Pythonパッケージの確認(LabTalkスクリプト)
if(Python.chk("pandas cv2(opencv-python)") > 1)
return 1;// FDFをインストールしない
return 0;//続行
- これ以上設定する必要はないので、完了をクリックして関数を保存し、ダイアログを閉じます。
- データ:ファイルに接続: Text/CSVを選択し、<Originプログラム>\Samples\Curve Fittingを開き、MultiplePeaks.datを選択します。デフォルトのインポートオプションをそのままで、OKをクリックしてファイルを読み込みます。
- 列D(Y)のヘッダをクリックして列を選択し、散布図ボタンをクリックして散布図を作成します。
- 解析: ピークと基線: ピークアナライザー: ダイアログを開くをクリックします。
目的ページでピークフィット (Pro)をチェックし、進むを4回クリックすると、ピークフィット (Pro)ページにたどり着きます。
- ページの下の方にあるフィット制御ボタンをクリックします。ピークフィットパラメータダイアログの中ほどにて、GaussianからMyPyGaussV (User)に変更し、OKをクリックしてダイアログを閉じます。
- 完了ボタンをクリックし、定義したユーザ定義Python関数で複数ピークをフィットします。
|