非線形フィットのためにPython関数を使用


非線形曲線フィットの実行時にPython関数を使用できます。Python関数と、その関数に必要なPythonパッケージをインストールするためのスクリプトコマンドを含むフィット関数ファイル(FDFファイル)を作成する必要があります。

次のサンプルで、Python関数を使用してFDFを作成する方法の概要を示します。

質量拡散のためのフィット関数

このセクションでは、Pythonを関数を使って次の質量拡散方程式のフィッティング関数を作成する手順の概要を説明します。
MassDiffusionFittingFunction.png

  1. まず、新しくFDFファイルを作成します。Originのメニューからツール:フィット関数ビルダー...を選択して、フィット関数ビルダーを開きます。
  2. 最初のページでは、新しい関数の作成を選択します。
  3. 2ページ目では、関数名をMassDiffusionに設定し、関数形式は算術式にします。
  4. 3ページ目では、独立変数をx、従属変数をy、パラメータをy0, D, Lに設定します。
  5. 4ページ目では、
    MassDiffuse(x, y0, D, L)
    

    のように関数式編集ボックスに入力します。

  6. 完了ボタン をクリックします。これで、ユーザファイルフォルダ内のfitfuncサブフォルダに、MassDiffusion.FDFというファイル名で作成されます。
  7. FDFファイルを編集してPython関数を追加します。メモ帳などのテキストエディタでファイルを開きます。
  8. [Formula]セクションに行き、その下に次の新しいセクションを追加します。
    [PythonV]
    from mpmath import nsum, exp, inf
    import numpy as np
    
    def MassDiffuse(x, y0, D, L):
    	sm = [float((nsum(lambda ii: 1/(2*ii+1)**2*exp(-D*(2*ii+1)**2*np.pi**2*t/(4*L**2)),[0, inf]))) for t in x]
    	return [y0*(1-8/np.pi**2*t) for t in sm]
    
  9. この関数は、mpmath および numpyパッケージが必要です。関数使用前にこれらをインストールする必要があります。パッケージをインストールするには、Originの接続メニューにあるPythonパッケージツールを使用できます。 他のOriginユーザと関数を共有する場合は、Originに関数を追加するときに自動でパッケージをインストールするように設定できます。このためには、FDFファイルに次のセクションを追加します。
    [BeforeInstall]
    if(Python.chk("mpmath numpy") > 1)
    	return 1;
    
    return 0;
    
  10. ファイルを保存すると、このフィット関数を使用可能になります。
  11. 以下のXYデータでフィット関数のテストが可能です。
    0.00	-0.078
    0.20	 0.604
    0.40	 0.842
    0.60	 1.101
    0.80	 1.029
    1.00	 1.083
    1.20	 0.828
    1.40	 0.884
    1.60	 0.991
    1.80	 1.005
    2.00	 0.915
    

    パラメータの初期値には以下を入力します。

    y0 = 1, D = 0.5, L = 0.5
    

    そしてフィットを実行します。最終的なパラメータ値は以下の通りです。

    フィット値: y0 = 0.97846, D = 0.37563, L = 0.43781