NumPy 多项式拟合

问题描述 投票:0回答:1

我有以下几行代码

import numpy as np
from numpy.polynomial import Polynomial

x=Polynomial.fit([0,1,2,3,4],[0,1,2,3,4],4)
print(x)
print(x.call(0))

我希望 numpy 将数据拟合到多项式 f(x)=x。但它输出 2.0 + 2.0 x + (1.2915422e-15) x2 - (7.05812123e-16) x3 - (9.57512621e-17) x**4.

更奇怪的是,当我让它在 x=0 处进行评估时,它给出了 1.1102230246251565e-15,这是我对 f(x)=x 的预期,但不是 2.0。有谁知道发生了什么事吗?

使用 numpy 的旧多项式特征,即 np.polyfit 我得到了正确的答案,但我项目的其余部分使用了新特征。

python python-3.x numpy polynomials
1个回答
0
投票

如果你阅读文档,你会发现

fit
返回的并不是字面上的系数。如果你
print(x.convert().coef)
,你会发现它确实是
f(x) = x

[-1.77635684e-15  1.00000000e+00  1.22916662e-15 -3.08599735e-16
  1.95879353e-17]

https://numpy.org/doc/stable/reference/generated/numpy.polynomial.polynomial.Polynomial.fit.html

© www.soinside.com 2019 - 2024. All rights reserved.