我是编程工具和 Python 的新手,对数值计算知之甚少。我试图理解Curve_fit的源代码,但对我来说太难了。
如果我们立即曲线拟合非线性模型,通过计算 Hessian 矩阵,我想我们能够找到所有参数的临界点,无论是局部还是全局,以及最小值或最大值。
但是,如果包含模型的函数无法微分,curve_fit 实际如何计算答案?
我想象该算法是在所有数据点的每个参数的每个间隔中找到 Chi^2 的局部最小值。如果这样做,默认间隔是多大,参数的每次试验之间的距离是多少,最大迭代次数是多少?如果像我说的那样,这个迭代在多个参数之间是如何工作的?他们每次都作为一组单独尝试吗?
我想了解算法,以便我可以编写一个很好的函数来应用curve_fit。我试图适应的函数中存在许多脏修复,不同的错误出现在不同的小更改中,因此我无法将代码放在这里,因为我不知道问题所在。
另外,关于 sigma 输入,如果我不知道 y 错误,如果默认 sigma 与数据值相比太大,结果会怎样?或者,如果模型的灵活性对后期处理影响不大,或者 sigma 远小于数据到函数的距离,会发生什么?