Scipy curve_fit没有优化三个参数之一

问题描述

我正在尝试使用scipy curve_fit适合我的实验数据。目标函数的推导方式是前两个参数对我的研究很重要。由于曲线需要平移,因此添加了第三个参数。由于某些原因,scipy根本没有更改该参数。玩完之后,我知道我希望第三个(K_shift)参数在300左右。

def objective_function(x,k_in,k_out,k_shift):
    k_shift = int(k_shift)
    aifVec[:k_shift] = 0
    C = []
    for i in range(len(x)):
        part = np.trapz(aifVec[0:i]* np.exp(-k_out * (timeTumor[i] - timeTumor[0:i])))
        C.append(k_in * part)
    C = np.array(C)
    return C

# optimizing k_in and k_out and k_shift
inital_guess = np.asarray([0.01,0.01,300.0])
fit = curve_fit(objective_function,timeTumor,tumorVec,p0=inital_guess)
ans,cov = fit
fit_tumorY = objective_function(timeTumor,ans[0],ans[1],ans[2])
plt.figure()
plt.plot(tumor_x,tumor_y,'o',fit_tumorY,'-')
plt.legend(['tumor','fit'],loc='best')
rSqTumor = r2_score(tumorVec,fit_tumorY)
plt.figtext(0.5,.35,"R-squared: %.4f" % rSqTumor,fontweight='bold')
plt.figtext(0.5,.3,"k_shift: %.4f" % ans[2],.25,"k_in: %.4f" % ans[0],.2,"k_out: %.4f" % ans[1],fontweight='bold')

请帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)