関数名と関数形式ページで、カテゴリー、関数名、関数モデル、関数の形式をセットすることができます 左側のパネルにはヒントと例が表示され、それぞれの関数形式のサンプルがあります。
関数カテゴリの選択/新規名称
|
既存のカテゴリーを選択し、そこに新しく作成する関数を配置します。 このコントロールは、処理のゴールページで、ユーザ定義関数の編集を選ぶと利用できません。ピークアナライザでユーザ定義のピーク関数およびベースライン関数を使用するためには、ピーク関数PFW カテゴリまたはベースラインフィッティング関数のBaselineカテゴリを選択する必要があります。または、のちほどツール:フィット関数オーガナイザを使用してユーザ定期関数をPFWまたはBaselineカテゴリーに移動することができます。
|
関数カテゴリーの選択/新規名称
|
このボタン をクリックして新しいカテゴリーを作成できるダイアログを開きます。このコントロールは、処理のゴールページで、ユーザ定義関数の編集を選ぶと利用できません。
|
関数名
|
関数の名前を入力します。このコントロールは、処理のゴールページで、ユーザ定義関数の編集を選ぶと利用できません。
|
関数定義ファイル名(.FDF)
|
また、新しく作成された関数に対して、OriginはユーザファイルフォルダのFitFuncフォルダに関連したFDFファイルを作成します。 この読み取り専用の編集ボックスはフィット関数ファイルの名前を表示します。
|
説明
|
関数の説明を追加します。
|
関数モデル
|
関数モデルを指定します。以下のオプションがあります。
- 陽関数
- 関数式は明白で、定義としてはy=f(x)となります。
- 陰関数
- 関数式は明白に定義できず、f(x,y)=定数 という形で表されます。推定値は0で、Originではfで表されます。
|
実現方式
|
関数の内容ページで関数を使用する方法を指定します。 以下のオプションがあります。
- LabTalk算術式
- このオプションは1つの従属変数だけを持つ単純なフィット関数です。関数の本体は、1つの式に限られ、式の右側だけを記述します。このオプションはOrigin Cより速く実行します。以下はこの種類の関数のサンプルです。
- a + b * exp( -x^c / d );
- Python関数 (scalar)
- スカラー関数は、呼び出し中に独立変数ごとに1つの値を受け取り、従属変数ごとに1つの値を返します。このオプションは、ベクトルベースのフィッティングよりも低速のため、小さいデータセットで使用するのが最適です。速度の理由から、ベクトルPythonフィット関数の使用がお勧めです。以下はこの種類の関数のサンプルです。関数を作成するとき、関数名の前に"py." を追加する必要があります。
- y = py.pyline(x, a, b);
- Python関数 (Vector)
- ベクトル関数は、呼び出し中に各独立変数の独立値の配列(リストの形式)を受け取り、各従属変数の配列(リストの形式)を返します。このため、スカラー関数よりもはるかに高速です。このオプションの場合、LabTalk処理を使用しません。以下はこの種類の関数のサンプルです。
- y=pyGaussVectorEq(x,y0,xc,A,w);
- LabTalk方程式
- このオプションは、複数行必要な場合や1つ以上の従属変数がある場合に使用します。このオプションは、loopやif-elseステートメントのような制御構造はサポートしません。しかし、三項演算子は使うことができます。このオプションはOrigin Cより速く実行します。以下はこの種類の関数のサンプルです。
- temp = 10;
- y1 = A + exp( (x1 - xc) / temp^2 );
- y2 = A + temp / (x2 - xc)^2;
- Origin C
- このオプションは算術式より遅くなります。フィット関数が三項演算子では表せないloopや制御構造を必要とする場合、このオプションを選択します。厳密なC言語のシンタックスに従う必要があります。パラメータは大文字小文字を区別し、int型の除算とdouble型の除算は異なるものとして認識します。以下はこの種類の関数のサンプルです。
- if ( x < -PI )
- y = y0 + exp( -x-a*PI );
- else if ( x > PI )
- y = y0 + exp( x-a*PI );
- else
- y = cos(x);
- LabTalkスクリプト
- このオプションは方程式やOrigin Cより遅くなります。制御構造が必要で、C言語に不慣れな場合、このオプションを選択してください。以下はこの種類の関数のサンプルです。
- range rr = %C;
- int b = %(rr[P1]$);
- y = b + a*x;
- 外部DLL関数
- このオプションは、外部DLLを使ってフィット関数を定義します。外部DLLを使うと、フィット時間を向上させることができます。この関数形式についての詳細は、外部DLLを使うを参照してください。
フィット中に積分を実行
- このオプションを選択して、積分を定義し、フィット関数内にそれを含めます。これは、関数形式がLabTalk算術式、LabTalk方程式、LabTalkスクリプトのときのみ利用できます。関数モデルは陽関数または陰関数です。
|