python - Scipy 拟合向量中的参数

标签 python scipy curve-fitting

据我所知,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 个参数拟合一个复杂的函数,显式定义参数相当痛苦。

最佳答案

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

例子:

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)

关于python - Scipy 拟合向量中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55132107/

相关文章:

3D 中的 Python 频谱图(类似于 matlab 的频谱图函数)

python - 如何更新 scipy.optimize.minimize 函数中的 args 值?

python - 求三次 B 样条的长度

python - 在 curve_fit (scipy) 期间将边界应用于特定变量会导致错误

python - 单线程代码中垃圾收集器导致的自死锁

python - 防止 python 和 ffmpeg heroku buildpack 覆盖 LD_LIBRARY_PATH

python - 如何更快地用python计算指数移动平均线?

python - 在 Windows 10 上设置 OpenAI Gym

python - Python 中的曲面曲率 Matlab 等价物

python - 求解当前代码的非线性曲线拟合