如何更改 scipy curve_fit/least_squares 步长?

Mc *_*ile 5 python curve-fitting scipy least-squares

我有一个 python 函数,它接受一堆(1 或 2)个参数并返回一个 2D 数组。我一直在尝试使用scipy curve_fitleast_squares优化输入参数,以便生成的二维数组与另一个预先制作的二维数组相匹配。我遇到了这两种方法都返回初始猜测作为收敛解决方案的问题。在从我的头上扯下很多头发后,我发现问题是,由于它对初始猜测的小增量太小,无法在我的函数返回的二维数组中产生任何差异(作为单元格值数组是量化的并且不连续),因此scipy 假设它在初始猜测时已达到收敛(或局部最小值)。

我想知道是否有办法解决这个问题(例如在猜测时强制它使用更大的增量)。谢谢。

Jan*_*ann 0

我最近遇到了一个非常类似的问题,事实证明这些优化器仅适用于连续可微函数。这就是为什么它们会返回初始参数,因为您想要拟合的函数无法区分。就我而言,我可以在将拟合函数插入优化器之前先对其拟合多项式函数,从而手动使拟合函数可微分curve_fit