gpt4 book ai didi

python - 使用 Numpy 的多项式的系数误差

转载 作者:行者123 更新时间:2023-12-02 21:24:12 27 4
gpt4 key购买 nike

我正在使用 numpy.polynomial.polynomial.Polynomial 类(Numpy 库),以便使用 fit() 方法将某些数据拟合到多项式函数中。获得的多项式是正确的,我可以绘制它并替换点以获得“y”值,并且我得到了正确的响应。问题是 Polynomial 类的 .coef 属性返回一组以某种方式标准化或更改的系数,我看不出如何。我是什么意思?代码如下:

x_vid = array([0.0, 50.0, 75.0, 100.0])
y_vid = array([0.0, 30.0, 55.0, 100.0])
pol = Polynomial.fit(x_vid, y_vid, 5) # The polynomial is OK!!
print pol.coef

.coef 属性返回下一个数组:

30   38.16   17.93   9.98    2.06   1.85

系数按升序排列,因此这些系数表示以下多项式函数:

30 + 38.16x + 17.93x^2 + 9.98x^3 + 2.06x^4 + 1.85x^5

但是,问题来了,如果我在那里替换值范围 [0-100] 中的任何值,它不会返回正确的值,尽管如果我这样做,例如:

pol(0) → 我会得到一个 0,这没问题,但在我写的多项式中立即可以看出,它不会在 x=0 时返回 0。

我认为多项式函数可能被归一化或置换。我可能在这里面临一个数学问题而不是一个编程问题,但是我们非常欢迎任何帮助,因为我需要写下多项式并且我不确定它的正确形式。谢谢。

更多信息: http://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.polynomial.Polynomial.html#numpy.polynomial.polynomial.Polynomial

最佳答案

多项式系数用于缩放和偏移多项式,以提高数值稳定性。您可以转换为“正常”多项式,或者直接使用级数,如果您将 off + scl*x 替换为 x,其中 offsclpol.mapparms 返回。要转换为标准形式(不推荐),请执行 pol.convert(domain=[-1, 1])

关于python - 使用 Numpy 的多项式的系数误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25690202/

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