带参数的Scipy拟合

2024-04-28 19:30:14 发布

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

据我所知,Scipycurve_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个参数和显式定义参数是相当痛苦的。你知道吗


Tags: 方法函数ci参数return定义def向量
1条回答
网友
1楼 · 发布于 2024-04-28 19:30:14

是的,这是可能的,但是你必须事先知道论点的数目(你似乎知道)。你知道吗

示例:

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)。你知道吗

相关问题 更多 >