Hi lmfit
I stuck in my fitting due to my parameters,
Please kindly let me know how this issue could be solved.
----------------------------------------------------
from lmfit import Model
# (y, params, independent_variables=['x1, 'x2']assign initial value for parameters)
def cationshortrange(xn,wnca, neutral = ['water'], cation = ['H'], anion = ['I'], zc = [1], za = [1], ea = [0.1] ):
term_wnMa = 0
for k in range(len(anion)):
for j in range(len(cation)):
if j < 1:
for i in range(len(neutral)):
term_wnMa += xn[i] * ea[k] * ((zc[j] + za[k]) / (za[k])) * wnca[i, j, k]
return print(term_wnMa)
# cationshortrange(wnca[water, H,I] ==+ 0.5, xn = 0.1 , neutral = ['water'], cation = ['H', 'K'], anion = ['I', 'Br'], zc = [1, 1], za = [1, 1], ea = [0.1] )
xn = [1, 2, 3, 4, 5]
y = [0.1, 0.2, 1.2, 1.6, 2.0]
gmodel = Model(cationshortrange)
params = gmodel.make_params()
print('parameter names: {}'.format(gmodel.param_names))
print('independent variables: {}'.format(gmodel.independent_vars))
result = gmodel.fit(y, params)
print(result.fit_report())
print(result.params.items())
-------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\Zohreh\PycharmProjects\PSCPureFit\dicParamLmfit.py", line 23, in <module>
result = gmodel.fit(y, params)
File "C:\Users\Zohreh\PycharmProjects\PSCPureFit\venv\lib\site-packages\lmfit\model.py", line 1023, in fit
if not np.isscalar(kwargs[var]):
KeyError: 'xn'
parameter names: ['wnca']
independent variables: ['xn']
Process finished with exit code 1
----------------------------------------------------------------
In fact based on cation and anion I will have different number of parameters in wnca array.