我实现了一个算法,它能够同时适应多个数据集。它基于这个解决方案:multi fit
目标函数太复杂,无法在此显示(LaFortune散射模型),因此我将使用解决方案中的目标函数进行解释:
def lor_func(x,c,par):
a,b,d=par
return a/((x-c)**2+b**2)
如果拟合算法选择了一个导致lor_func < 0
的参数集par
,我该如何惩罚它呢。在
从数学角度来看,目标函数的负值是有效的。因此,导致负目标函数的参数集par
可能是误差最小的解决方案。但我想排除这些解决办法,因为它们在物理上是无效的。在
像这样的函数:
^{pr2}$当fit也优化0值时返回错误的数据时不起作用。结果将与正确的结果不同。在
使用scipy.optimize.least_squares的
bounds
参数?在就像我在这里做的那样: Suggestions for fitting noisy exponentials with scipy curve_fit?
相关问题 更多 >
编程相关推荐