gpt4 book ai didi

python - 如何将多项式拟合到带有误差线的数据

转载 作者:太空狗 更新时间:2023-10-29 19:35:33 28 4
gpt4 key购买 nike

我目前正在使用 numpy.polyfit(x,y,deg) 将多项式拟合到实验数据。但是,我想拟合一个基于点的误差使用加权的多项式。

我找到了 scipy.curve_fit它利用了权重,我想我可以将函数“f”设置为我想要的阶数的多项式形式,并将权重放在“sigma”中,这应该可以实现我的目标。

我想知道还有其他更好的方法吗?

非常感谢。

最佳答案

对于加权多项式拟合,您可以使用:

numpy.polynomial.polynomial.polyfit(x, y, deg, rcond=None, full=False, w=weights)

参见 http://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.polynomial.polyfit.html

需要注意的是,在此函数中,权重应作为1/variance(这是许多权重中的常用形式)提供应用程序),但作为 1/sigma

虽然 curve_fitleastsq 是比 polyfit 更通用和更强大的优化工具(因为它们可以适应任何 函数),polyfit 的优势在于它可以生成(精确的)解析解,因此可能比 curve_fitleastsq 等迭代近似方法快得多 - 特别是在将多项式拟合到多组 y 数据(在同一 x 向量处获得)的情况下

更新:从 numpy 1.7 版开始,numpy.polyfit 也将权重作为输入(理想情况下应作为 1/sigma,不是1/variance)

关于python - 如何将多项式拟合到带有误差线的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6663127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com