首页 文章

scipy leastsq fit - 惩罚某些解决方案

提问于
浏览
0

我已经实现了一种能够同时适应多个数据集的算法 . 它基于这个解决方案: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 可能是具有最小错误的解决方案 . 但我想排除这些解决方案,因为它们既不是物理上有效的,

功能如下:

def lor_func(x,c,par):
    a,b,d=par
    value = a/((x-c)**2+b**
    return max(0, value)

由于拟合返回错误数据,因为它也优化了0值,因此不起作用 . 结果将与正确的结果不同 .

1 回答

相关问题