第一个问题:
我正在尝试使用以下形式的函数来拟合实验数据:
f(x) = m_o*(1-exp(-t_o*x)) + ... + m_j*(1-exp(-t_j*x))
目前,我没有找到一种方法来获得不确定数量的参数m_j,t_j,我被迫做这样的事情:
def fitting_function(x, m_1, t_1, m_2, t_2):
return m_1*(1.-numpy.exp(-t_1*x)) + m_2*(1.-numpy.exp(-t_2*x))
parameters, covariance = curve_fit(fitting_function, xExp, yExp, maxfev = 100000)
(xExp和yExp是我的实验点)
有没有办法写这样的拟合函数:
def fitting_function(x, li):
res = 0.
for el in range(len(li) / 2):
res += li[2*idx]*(1-numpy.exp(-li[2*idx+1]*x))
return res
其中li是拟合参数列表,然后执行curve_fitting?我不知道怎么告诉curve_fitting什么是拟合参数的数量.
当我为fitting_function尝试这种形式时,我遇到了类似“ValueError:无法确定拟合参数的数量”的错误.
第二个问题:
有没有办法强制我的拟合参数是积极的?
任何帮助赞赏:)
最佳答案 请参阅我的问题和答案
here.我还做了一个最小的工作示例,演示了如何为您的应用程序完成它.我没