scipy leatsq fit惩罚某些解决方案

2024-06-13 11:56:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我实现了一个算法,它能够同时适应多个数据集。它基于这个解决方案: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值时返回错误的数据时不起作用。结果将与正确的结果不同。在


Tags: 数据函数模型算法目标参数returndef