クイックスタート


非線形フィット(NLFit)ツールには、200以上の 組込関数があり、広い範囲のカテゴリーと分野から選択されています。探している関数がない場合は、Originのフィット関数ビルダー使って関数を定義することができます。

NLFit Dialog Quick Start 01a.png

入力データの指定

Originでは、NLFitダイアログを開く前に、ワークシートや直接グラフからのインプットデータを、事前に選択することが可能です。NLFitダイアログを開くと、設定タブのデータ選択ページにあるインプットデータブランチから、データを変更、追加、移動、リセットすることもできます。

ワークシートからデータを選択

1つ以上のワークシート列、ワークシート列の一部、ワークシート列の不連続部分から、データを選択することができます。不連続区間を選択したいときは、Ctrlキーを押しながら操作します。

グラフからデータを選択

グラフウィンドウがアクティブなとき、アクティブレイヤアクティブ曲線 が、フィッティングのインプットとして事前選択されています。

以下のオプションは、他のデータの事前選択の場合に有効です。


組込関数でフィット

Originの組込フィット関数には、自動パラメータ初期化コードがあります。このパラメータ初期化コードは、フィッティング前に、初期パラメータ値をデータセットに適用します。

数回クリックするだけで、曲線プットを実行して、最適なフィットパラメータを得ることが可能です。元のデータプロットに貼り付けた最適なフィット曲線を選ぶことができます。

  1. ワークシート内でデータを選択するか、フィットを実行したいデータのグラフウィンドウをアクティブにして、メニューの解析:フィット:非線形曲線フィットを選択してNLFitダイアログを開きます。
  2. カテゴリ関数ドロップダウンリストから、組込関数を選択します。
  3. 組み込み関数が見つからなかった場合は、検索をクリックしてフィット関数の検索を開いてキーワードで検索し関数をロードすることができます。(下記のヒントを参照してください)
  4. フィットボタンをクリックして、フィットを実行すると、結果がワークシートに出力されます。
NLFit Dialog Quick Start 37.png

Button Mini Function Library.png 検索ボタンをクリックすると、検索ダイアログの右上角にFitting Function Library アプリのアイコンがあります。このアイコンをクリックすると、ダウンロード可能な関数のリストが表示されます。また、キーワードで関数を検索しても見つからない場合は、Fitting Function Libraryアプリを開いて、アドオンの関数を参照することができます。このアプリはOriginの最新バージョンにプレインストールされています。

ユーザ定義関数でフィット

組込関数ライブラリに欲しいフィット関数がないのですが、どうしたらよいでしょうか。問題ありません。ツール:フィット関数ビルダーカスタムフィット関数の定義のガイドに沿って、簡単に使うことができます。

NLFit Dialog Quick Start 32.png

複数データセットでフィット

同時にフィットを行いたい複数データがありますか?Originでは、各データセットを別々にフィットさせて、結果を別のレポートや統合したレポートに出力することができます。または、共有パラメータでグローバルフィットを実行したり、フィッティング前の単一データセットに、複製データを統合して、統合フィットを実行することができます。

NLFit Dialog Quick Start 15.png

パラメータを共有してグローバルフィット

フィット関数のパラメータは、オプションですべてのデータセット間で共有できます。

NLFit Dialog Quick Start 16.png

グローバルフィットについての詳細は、パラメータ共有でのグローバルフィットページを参照してください。


複製データの連結フィット

複製データの場合には、1つの曲線にすべてのデータポイントに連結して、全体のデータセットとしてフィットさせることを選択できます。

NLFit Dialog Quick Start 17.png

連結フィットについての詳細は、複製データのフィットページを参照してください。


複数曲線の独立フィット

複数曲線フィットを独立に選択することができます。複数曲線の独立フィットは、1つずつ実行して、個別レポートを各曲線について作成するか、同時に統合レポートを作成します。

NLFit Dialog Quick Start 18.png

フィットの操作

曲線フィット分析を微調整する必要はありますか?Originでは、曲線フィット処理を制御することができます。

パラメータの固定

NLFit Dialog Quick Start 06.png

上限境界と下限境界の設定

NLFit Dialog Quick Start 07.png

線形制約の設定

NLFit Dialog Quick Start 08.png

線形制約の入力方法はこの表を確認してください。


詳細フィットオプション

基本のフィットオプションに加えて、さらに詳細なフィットを行うために、拡張オプションを使うことができます。

XエラーとYエラーでフィット

ステップ 1直交距離回帰(ODR )反復アルゴリズムを選択します。

NLFit Dialog Quick Start 13.png

ステップ 2適切な重み付け方法を選択します。

NLFit Dialog Quick Start 14.png

複製してフィット

NLFit Dialog Quick Start 19.png

派生パラメータの取得

NLFit Dialog Quick Start 04.png

XからYを検索

NLFit Dialog Quick Start 09.png

XからYを検索またはYからXを検索についての詳細情報は、X/YからY/Xを検索 – 標準曲線ページを参照してください。

サンプル

陰関数フィット

  1. データを選択して、メニューから解析:フィット:非線形陰関数カーブフィットを選択します。
  2. 関数ドロップダウンリストから、フィットの関数を選択します。
  3. フィットボタンをクリックします。
NLFit Dialog Quick Start 20.png

陰関数でのフィットの定義については、チュートリアルをご覧ください。

積分してフィット

どの積分関数でフィットすることができるのか、フィット関数をどのように定義するのかを説明します。

Case 1
y=\int_{c}^{d} \frac { \cosh { ((x_i + b^2 \cdot x^2) /(b + x))}}{a+(x_i^2+x^2)}\, dx_i

ここで、x_i \,は、積分の独立変数で、 x \,はフィッティングの独立変数を示していることに注意して下さい。モデルのパラメータa, b, c, d は、サンプルデータから取得したいフィットパラメータです。

詳細は、チュートリアルをご覧ください。

Case 2
y=\log (\int_{0}^{1} \frac{1}{\sqrt{2\pi}b}e^{-\frac{(t-a)^2}{2b^2}-xt}\, dt)

aとbはフィット関数内のパラメータです。

初期パラメータ: a=1e-4, b=1e-4積分関数には、中心が約a、幅が2bのピークが含まれています。また、ピークの幅(2e-4)は、積分間隔[0,1]と比較して非常に狭くなっています。正しくピークの中心あたりで積分される事を確認するために、積分範囲である[0,1] は3つの区間[0,a-5*b]、[a-5*b,a+5*b]、[a+5*b,1]に分けられています。この区分内で積分が施され、最終的に合計します。

詳細は、チュートリアルをご覧ください。

Case 3
y=y_0+\int_{-\infty}^{x} \frac{A}{w\sqrt{\frac{\pi}{2}}} e^{-2\frac{(t-x_c)^2}{w^2}}, dt

フィット関数には4つのパラメータがあり、そのうち3つを被積分関数に受け渡し、独立変数を上限として積分を行います。よって、まず被積分関数を定義して、組込のintegral() 関数を使用してフィット関数内で積分をします。

詳細は、チュートリアルをご覧ください。

コンボリューションでフィット

Originでは、本質的に区分線形カテゴリー内の2つのコンボリューション関数が使われます。

  • GaussMod() ---クロマトグラフィで使用される指数修正ガウス(EMG) ピーク関数。
  • Voigt() -- ガウス関数(FWHMのwG)とLorentzian関数のコンボリューション。


新しいコンボリューション関数を作成する必要がある場合は、以下のチュートリアルをご覧ください。

2種類の関数でコンボリューション
NLFit Dialog Quick Start 23.png
y=y_0+b_1x+\frac{b_2A_2}{w_2\sqrt{\pi/2}}e^{-\frac{2(x-x_{c2})^2}{w_2^2}}+(f\;*\;g)(x)

上記において、f(x)=\frac{s}{\pi}\cdot\frac{\tau_Lx_0^2(x_L^2-x_0^2)}{(x-x_{c1})\tau_L((x-x_{c1})^2-x_L^2)^2+((x-x_{c1})^2-x_0^2)^2}です。

g(x)=\frac{1}{w_1\sqrt{\pi/2}}e^{-\frac{2x^2}{w_1^2}}.

そして x_0, x_L, \tau_L, s, y_0, b_1, b_2 はフィットパラメータです。w_1, x_{c1}, w_2, x_{c2}, A_2 はフィット関数内の定数です。

詳細は、チュートリアルをご覧ください。

ガウス応答で指数減少関数のコンボリューション
NLFit Dialog Quick Start 22.png

この実験は、以下に示すように、出力信号がガウス応答を持つ指数減少関数のコンボリューションであると見なしています。

Tutorial Fitting With Convolution 002.png

これで、出力信号と応答データを得たので、信号を次のモデルでフィットして、指数減少関数を得ることができます。

y = y_0 + \int_{-\infty}^{+\infty} Ae^{-tx} \otimes Response, dx



詳細は、チュートリアルをご覧ください。

ピークを出コンボリューションする必要がある場合には、チュートリアルをご覧ください。

区分線形関数でフィット

Originでは、本質的に、 区分線形カテゴリー内の2つの区分線形関数が使われます。

  • PWL2 -- 2区分線形関数。
  • PWL2 -- 3区分線形関数。


新しい区分線形関数を作成する必要がある場合は、以下のチュートリアルをご覧ください。

Case 1

NLFit Dialog Quick Start 25.png

上記のグラフから、曲線は2つの部分に分けられる部分からできていることが分かります。これは区分線形関数を使ってフィットすることができます。この関数は次のように表現できます。

y =
\begin{cases}
\frac{y_1(x_3-x)+y_3(x-x_1)}{x_3-x_1}, & \mbox{if } x<x_3 \\
\frac{y_3(x_2-x)+y_2(x-x_3)}{x_2-x_3}, & \mbox{if } x \ge x_3
\end{cases}

x1x2は曲線の終着点を示すx値で、フィット中に固定されます。x3は2つの部分の交点のx値を示しています。そしてy1y2y3\ x_i, \ i=1, 2, 3地点でのy値をそれぞれ表しています。

詳しくは、こちらのチュートリアルをご覧ください。

Case 2

NLFit Dialog Quick Start 26.png

上記のグラフから、曲線は、以下の式で定義されるとおり、指数曲線区分と直線区分から成り立っています。

y =
\begin{cases}
a+bx+e^{-\frac{x-x_c}{t1}}, & \mbox{if } x<x_c \\
a+bx, & \mbox{if } x \ge x_c
\end{cases}

詳しくは、こちらのチュートリアルをご覧ください。

複数変数でフィット

Originでは、本質的に、 複数変数カテゴリー内の3つの複数変数関数が使われます。

  • GaussianLorentz --基線とピーク中心を共有した、GaussianとLorentz関数のコンビネーション。
  • HillBurk -- 2つの独立変数と2つの従属変数で、HillとBurkモデルのコンビネーション。
  • LineExp -- 2つの独立変数と2つの従属変数で、HillとBurkモデルのコンビネーション。


新しい複数変数関数を作成する必要がある場合は、以下のチュートリアルをご覧ください。

パラメータを共有している2つの異なる関数で曲線をフィット

NLFit Dialog Quick Start 31.png

GaussianLorentz関数はGaussianとLorentz関数の組み合わせで、y0xcの値を共有しています。

y_1 =y_0+\frac {A_1}{w_1\sqrt{\pi /2}}e^{-2\frac{(x-x_c)^2}{w_1^2}}
y_2=y_0+\frac{2A_2}\pi \frac {w_2} {4\left( x-x_c\right) ^2+w_2^2}

詳しくは、こちらのチュートリアルをご覧ください。

2つの独立変数でフィットする
 y = vm*\frac{x1}{km+(1+\frac{x2}{ki})*x1}

ここで、x1x2は、独立変数で、kikmvmは、フィットパラメータです。

詳しくは、チュートリアルをご覧ください。

複素数関数でフィット

Originで複素数関数でフィットするには、複素数データの実部と虚部を2つの異なる列に、2つの従属変数として分ける必要があります。
以下に、複素数関数の定義方法の例を示します。

complex cc = A/(1+1i*omega*tau);
	y1 = cc.m_re;
	y2 = cc.m_im;

ここで、1iは、虚数単位「i」として使われ、omegaは、独立変数、A, tauは、フィッティングパラメータ、y1y2は、 ccの実部と虚部です。

常微分方程式でフィット

Originでは、NAG関数を呼び出し、1次または高次の常微分方程式(ODE)を定義することができます。
以下に1階常微分方程式のフィット方法の例を示します。

\frac{\mathrm{d} y}{\mathrm{d} x}=ay
y|_{x=x0}=y0


ここで、aは常微分方程式 のパラメータで、y0はODEの初期値です。このODEの問題を解決するために、Runge–Kuttaメソッドを使用して、NAG関数 d02pvcd02pcc が呼び出されます。

詳しくは、こちらのチュートリアルをご覧ください。

外部DLLでフィット

Origin C 関数は、C、C++、Fortranコンパイラーによって作成された外部DLLの関数を呼び出すことができます。これには、ソースファイルが外部DLL内の関数を宣言するヘッダファイル用の指示文を含んでいる必要があります。

以下に、 GNU Scientific LibraryからのGSLを使って下記モデルをフィットする方法の例を示します。

y=y_0+a\int_{0}^{x} e^{\beta \cdot t}\, dt

詳しくは、こちらのチュートリアルをご覧ください。

サードパーティ製DLL関数の呼び出しについての詳細は、チュートリアルをご覧ください。

ユーザ定義のフィット関数の組込関数を引用

Originでは、新しいフィット関数を定義する際に、組込関数を引用することができます。

以下に、2つのガウス関数の統合として考えられる、歪曲ガウスピークをフィットする方法の例を示します。これらの2つのガウス曲線は、基線とピークの中心(xc)を共有し、ピークの幅(w) と振幅 (A)が異なっています。

関数は次のように定義されます。

y = x<xc? nlf_Gauss(x, y0, xc, w1, A1) : nlf_Gauss(x, y0, xc, w2, A2);

ここで、nlf_Gauss()は、組込Gauss関数です。

詳しくは、こちらのチュートリアルをご覧ください。