Pythonでユーザ定義フィット関数を作成
Originではユーザが作成したフィット関数を使ってフィットを行うことができますが、フィット関数の作成にPythonを使用することもできます。ここではPythonを使ったフィット関数の定義方法をご紹介し、その関数を使ってフィットを実行してみます。
Pythonコードの実行方法は下記リンクを参照してください。
Pythonコードの実行方法
Originではユーザが作成したフィット関数を使ってフィットを行うことができますが、フィット関数の作成にPythonを使用することもできます。ここではPythonを使ったフィット関数の定義方法をご紹介し、その関数を使ってフィットを実行してみます。
Pythonコードの実行方法は下記リンクを参照してください。
ここで作成する関数ではPythonパッケージの「mpmath」「numpy」を使用しますのであらかじめインストールしてください。パッケージインストール後はOriginを再起動してください。パッケージが認識されずエラーになることがあります。
詳しいインストール方法については下記ページをご覧ください。
フィット関数ビルダーを使ってフィット関数を作成します。今回作成する関数は下記の関数です。
from mpmath import nsum, exp, inf
import numpy as np
def MassDiffuse(x, y0, D, L):
#シグマ部分から8/π^2を外に出しておいて計算
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]
y = MassDiffuse(x, y0, D, L)
if(Python.chk("mpmath numpy") > 1)
return 1;
return 0;
作成した関数が問題なく動くかどうか確認します。
データは下記のものを利用します。
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 = 0.97846, D = 0.37563, L = 0.43781
プログラミングのコードを使ったフィット関数の作成方法としてOriginCを使うこともできますが、同じ関数であればPythonで定義したフィット関数のほうが高速に動作します。
詳しくは下記Origin開発元のブログにて紹介されておりますのでご関心がありましたらご覧ください。
"originpro"パッケージに導入されているクラスの一覧やリファレンスは下記リンクから確認できます。