【问题标题】:Scipy fitting with parameters in a vectorScipy 拟合向量中的参数
【发布时间】:2019-03-13 09:56:50
【问题描述】:

据我所知,Scipy curve_fit 函数明确接受拟合参数。例如,在拟合多项式时:

def func(x, c0, c1, c2):
    return c0 + c1 * x + c2 * x**2

是否有可能通过向量定义参数的方法(可能是另一个等效函数)?例如:

def func(x, C):
    y = 0.0
    for i, ci in enumerate(C):
        y += ci * x**i
    return y

我试图用 24 个参数拟合一个复杂的函数,而显式定义参数是相当痛苦的。

【问题讨论】:

    标签: python scipy curve-fitting


    【解决方案1】:

    是的,这是可能的,但您必须事先知道参数的数量(您似乎知道)。

    例子:

    from scipy.optimize import curve_fit
    
    def func(x, *C):
        y = sum(c * x ** n for n, c in enumerate(C))
        return y
    

    但是,您需要在对curve_fit 的调用中指定p0 参数;在这种情况下,由于您知道您有 24 个参数,如果您对它们的值有一个初始猜测,您可以传递一个包含 24 个值的数组。如果没有,您可以使用np.ones(24)

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 2016-01-22
      • 2014-12-02
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 2013-06-24
      相关资源
      最近更新 更多