内容 |
このチュートリアルでは、区間毎のフィット関数を定義する方法を説明します。
必要なOriginのバージョン:8.0 SR6
このチュートリアルでは、以下の項目について説明します。
\Samples\Curve Fitting\Exponential Decay.datファイルをインポートして、このチュートリアルを開始します。列Dを選択し、散布図をプロットします。Growth/Sigmoidalカテゴリーにある多くの組込関数を使ってこの曲線をフィットできますが、このチュートリアルでは、区間関数で曲線を2つの区間に分けます。
関数式は次のようなものです。
F9を押し、フィット関数オーガナイザを開き、以下のように関数を定義します。
関数名: | piecewise |
実現方式: | ユーザ定義 |
独立変数: | x |
従属変数: | y |
パラメータの名前: | xc, a, b, t1 |
定義形式: | Origin C |
関数: |
関数編集ボックスの右にあるボタン をクリックし、コードビルダで次のようにフィット関数を定義します。
void _nlsfpiecewise( // フィットパラメータ: double xc, double a, double b, double t1, // 独立変数: double x, // 従属変数: double& y) { // 編集可能部分の開始 // if条件で、曲線を分ける if(x<xc) { y = a+b*x+exp(-(x-xc)/t1); } else { y = a+b*x; } // 編集可能部分の終了 }
Ctrl + Y を押すと、グラフウィンドウをアクティブにしてNLFitダイアログが開きます。定義した piecewise 関数を選択し、次の値でパラメータを初期化します。
xc: | 1 |
a: | 1 |
b: | -1 |
t1: | 0.1 |
「フィット」ボタンをクリックし、結果を生成します。
xc: | 0.24 |
a: | 36.76585 |
b: | -24.62876 |
t1: | 0.04961 |
Note: この関数は、xcとt1に敏感で、異なる初期値を使うと結果も異なります。