バージョンOrigin 8.6からOriginは一元積分を行える新しいLabTalkの関数、integral()を取り入れました。この関数は次のような積分の値を算出します。
integral()関数のインターフェイスは次のように定義されています。
integral(integrandName, LowerLimit, UpperLimit [, arg1, arg2, ...])
ここではintegrandNameはこの被積分関数の関数名になります。
言い方を変えると、integral()関数は以下について行います。
この機能を利用すると、integral()関数を使ってフィット関数を定義でき、正しいフィットパラメータを被積分関数に受け渡して積分曲線のフィットにあたります。
このチュートリアルでは以下のチュートリアル、NAG関数を呼び出しフィット中に積分を行うをLabTalk用に変更し、いかにシンプルに積分関数を使用してフィットできるかをお見せします。
必要なOriginのバージョン: Origin 8.6 以降
![]() |
Origin 2018bから、積分を使って陰函数を定義することができます |
このチュートリアルでは、以下の項目について解説します
フィッティングモデルは次の式で表されます。
フィット関数には4つのパラメータがあり、そのうち3つを被積分関数に受け渡し、独立変数を上限として積分を行います。よって、まず被積分関数を定義しし、それをもとにintegral() 関数を使用してフィット関数内で積分をします。
return iA * exp(-2*(t-ixc)^2/iw^2) / (iw*sqrt(PI/2));
被積分関数の要素 | 被積分関数に受け渡す値 |
---|---|
下限 | -inf |
上側限界 | x |
ixc | xc |
iw | w |
iA | A |
上記表のように対応ができたら挿入 ボタンを押します。すると、準備したintegral() 関数が関数式ボックス内に以下のように挿入されます。
integral(MyIntegrand, -inf ,x ,xc ,w ,A)
この数式は「MyIntegrandという関数にマイナス無限数からxまでを積分し、xc、w、Aという3つのパラメータを被積分関数に送る」という意味です。
ここで定数パラメータy0を数式に入れると、全体のフィット関数内容は次のようになります。
y0 + integral(MyIntegrand, -inf, x, xc ,w ,A);
そしてページは次のようになります。
次のデータ をOriginの新しいワークシートにコピー&ペーストします。
X | Y |
---|---|
-1.69897 | 0.13136 |
-1.22185 | 0.34384 |
-0.92082 | 0.6554 |
-0.82391 | 0.73699 |
-0.69897 | 1.00157 |
0 | 1.70785 |
0.30103 | 2.31437 |
0.69897 | 2.77326 |
1 | 2.79321 |
Y列を選択し、Ctrl + YキーでNLFitダイアログを開きます。先程定義した関数を選び、フィット ボタンをクリックしてフィットを行います。このフィットの結果はNAG関数を直接利用したものと同じになります。