首页 > 解决方案 > Numpy / Chebyshev 模块:获取价值

问题描述

我已经根据给定值构建了切比雪夫多项式。

x = [1000,1001,1002,1003,1004,1005,1006,1007,1008]
y = [121.093,121.092,121.091,121.090,121.090,121.089,121.084,121.079,121.081]
from numpy.polynomial import Chebyshev as T
p = T.fit(x, y, 2)
xx, yy = p.linspace(n=10)
plt.plot(xx, yy)
plt.plot(x, y)

在此处输入图像描述

现在我需要得到给定“X”的切比雪夫多项式的“Y”值。

np.polynomial.chebyshev.chebval(1, p.coef)

121.0791090909091

但我数据中的第一个“Y”是“ 121.093 ”。好的,让我们试试“1000”:

np.polynomial.chebyshev.chebval(1000, p.coef)

-2898.698090887721

问题

当“X”= 1000 时如何获得“Y”值?我希望得到“ 121.093 ”。

标签: pythonnumpy

解决方案


您在调用 Chebyshev.fit() 时缺少关键字窗口。看看下面的片段。

import numpy.polynomial.chebyshev as cheb
x = [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008]
y = [121.093, 121.092, 121.091, 121.090, 121.090, 121.089, 121.084, 121.079,
     121.081]
p = cheb.Chebyshev.fit(x, y, 2, window=[1000, 1008])
print(cheb.chebval(1000, p.coef))
# 121.09270909090891

推荐阅读