何时以及如何使用 Polynomial.fit() 而不是 polyfit()?

互联网 行业动态 更新时间:2024-06-13 00:19:07

小智 5

根据Polynomial.fit()文档,它返回:

表示适合数据的最小二乘的系列,并在调用中指定了域和窗口。如果对未缩放和未移位的基多项式的系数感兴趣,请执行new_series.convert().coef.

您可以在 numpy./doc/stable/reference/routines.polynomials.html#transitioning-from-numpy-poly1d-to-numpy-polynomial中找到

系数在由窗口和域之间的线性映射定义的缩放域中给出。convert 可用于获取未缩放数据域中的系数。

你可以检查

import numpy as np

def main():
    x = np.array([3000, 3200, 3400, 3600, 3800, 4000, 4200, 4400, 4600, 4800, 5000, 5200, 5400, 5600, 5800, 6000, 6200, 6400, 6600, 6800, 7000])
    y = np.array([5183.17702344, 5280.24520952, 5758.94478531, 6070.62698406, 6584.21169885, 8121.20863245, 7000.57326186, 7380.01493624, 7687.97802847, 7899.71417408, 8506.90860692, 8421.73816463, 8705.58403352, 9275.46094996, 9552.44715196, 9850.70796049, 9703.53073907, 9833.39941224, 9900.21604921, 9901.06392084, 9974.51206378])

    c1 = np.polynomial.polynomial.polyfit(x, y, 2)
    c2 = np.polynomial.polynomial.Polynomial.fit(x, y, 2).convert().coef
    c3 = np.polynomial.polynomial.Polynomial.fit(x, y, 2, window=(x.min(), x.max())).coef

    print(c1)
    print(c2)
    print(c3)

if __name__ == '__main__':

    main()

# [-3.33620814e+03  3.44704650e+00 -2.18221029e-04]
# [-3.33620814e+03  3.44704650e+00 -2.18221029e-04]
# [-3.33620814e+03  3.44704650e+00 -2.18221029e-04]

使用它的最重要原因可能Polynomial.fit()是它在当前版本的 NumPy 中的支持并被视为polyfit遗留

更多推荐

如何使用,而不是,fit,Polynomial,polyfit

本文发布于:2023-04-20 21:01:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/de6ea6f30e92aa50abdf7b9ccd3327eb.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   而不是   fit   Polynomial   polyfit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!