1

lmfitパッケージのパラメーターについて 2 つの質問があります。

1.

カスタム モデルのパラメーターの値を事前に設定する方法はありますか?

例えば。

def my_cust(x,A,b):
    return A*x + b

def gaussian(x, amp, cen, wid):
    return (1.2345*amp/(sqrt(2*pi)*wid)) * exp(-(x-cen)**2 /wid)

mod = Model(my_cust) + Model(gaussian)
pars = mod.make_params(A=11.78,b=25,amp=2000,cen=109.5,wid=17) #initialize all the parameters
results = mod.fit(y,pars,x=x)

たとえば、最後の 2 行目ではamp=2000、パラメータを初期化しますamp組み込みモデルでこのパラメーターを修正したい場合(例: this one ):

params = model.make_params()
params['g1_amplitude'].set(2000, vary=False)

質問1

カスタムモデルのラインなどでパラメーターの値を2000に固定することはできますか?ampmod.fit()

2.

以下のようなカスタム複合モデルにプレフィックスを割り当てようとしています:

cust_combination_mod = Model(my_cust, prefix='lin_') + Model(gaussian, prefix='g1_')

上記の行を試したところ、次のようになりました。

  File "build\bdist.win-amd64\egg\lmfit\model.py", line 541, in fit
  File "build\bdist.win-amd64\egg\lmfit\model.py", line 747, in fit
  File "build\bdist.win-amd64\egg\lmfit\minimizer.py", line 1242, in minimize
  File "build\bdist.win-amd64\egg\lmfit\minimizer.py", line 1072, in leastsq
  File "C:\Python27\lib\site-packages\scipy\optimize\minpack.py", line 377, in leastsq
    shape, dtype = _check_func('leastsq', 'func', func, x0, args, n)
  File "C:\Python27\lib\site-packages\scipy\optimize\minpack.py", line 26, in _check_func
    res = atleast_1d(thefunc(*((x0[:numinputs],) + args)))
  File "build\bdist.win-amd64\egg\lmfit\minimizer.py", line 371, in __residual
  File "build\bdist.win-amd64\egg\lmfit\minimizer.py", line 1432, in _nan_policy
ValueError: The input contains nan values

多くのカスタム モデルがある場合、mod.make_params()(上記の 1. で示したように) のすべてのパラメーターを初期化するのは面倒な場合があります。この問題はここで議論されているようですが ( 12 )、複合モデルの個別のコンポーネントに接頭辞を実際に割り当てる方法は実際には示されていません。

質問2

で複合カスタム モデルにプレフィックスを割り当てることは可能lmfitですか?

4

1 に答える 1