首页 > 解决方案 > 为什么你分配的初始值 p0 会在很大程度上影响拟合结果

问题描述

当我为 P0 分配不同的初始值时,拟合会发生两个数量级的变化。问题是,我怎样才能找到合适的,因为拟合的目的是搜索正确的参数。

我得到了 2 个变量和两个未知参数,可以通过合适的方法找到。

p0 = [0.5,0.3] #initial value
c,cov = curve_fit(titrition,(xp,xd),y,p0)
yp = titrition ((xp,xd),c[0],c[1])

标签: pythoncurve-fitting

解决方案


这个问题不是一个编码问题,而是一个非常具体的数字问题。curve_fit只是试图最小化成本函数,以使您的函数尽可能适合数据。我不知道函数titration长什么样,但我怀疑优化它是非凸的。换句话说,curve_fit可能会根据您提供的初始猜测找到不同的最佳值。这是您必须使用某种物理直觉来提供初始条件应该是什么的最佳猜测的地方。


推荐阅读