首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NumPy多项式模块中使用固定点

在NumPy多项式模块中使用固定点
EN

Stack Overflow用户
提问于 2018-03-16 00:18:06
回答 1查看 337关注 0票数 0

我正在尝试使用随NumPy v1.4发布的Polynomial模块来拟合下面示例中给出的数据。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

# data points to fit
x = np.array([11844.6, 20204.7, 24964.8, 29724.9, 34485.0, 39245.1, 44005.2,
              48765.3, 53525.4, 58285.5, 58968.2])

y = np.array([4.2, 4.086, 4.048, 3.984, 3.949, 3.909, 3.869, 3.802, 3.723,
              3.531, 3.0])

# polynomial fit
xx = np.linspace(min(x), max(x), 500)
c = np.polynomial.polynomial.polyfit(x, y, 5)
yfit = np.polynomial.polynomial.polyval(xx, c)

# plot
plt.ion()
plt.close('all')

plt.figure()
plt.plot(x, y, 'o-', alpha=0.4, label='data')
plt.plot(xx, yfit, label='fit')
plt.xlabel('x values')
plt.ylabel('y values')
plt.legend(loc='best')

这将生成以下图,其中蓝色的点是数据,橙色的线是示例中的多项式拟合。

我已经尝试了多项式的不同次数,但无法与数据点很好地拟合。有没有一种方法可以使用NumPy中的多项式模块来开发具有固定数据点的多项式拟合?

EN

回答 1

Stack Overflow用户

发布于 2018-03-16 00:51:38

你想要的东西叫做Lagrange interpolation polynomial。Scipy提供了必要的function

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import lagrange

# data points to fit
x = np.array([11844.6, 20204.7, 24964.8, 29724.9, 34485.0, 39245.1, 44005.2,
          48765.3, 53525.4, 58285.5, 58968.2])

y = np.array([4.2, 4.086, 4.048, 3.984, 3.949, 3.909, 3.869, 3.802, 3.723,
          3.531, 3.0])

# polynomial fit
xx = np.linspace(min(x), max(x), 500)

c=lagrange(x,y)
yfit = c(xx)

dataPointsDiff = c(x) - y
print(dataPointsDiff)
# plot
plt.ion()
plt.close('all')

plt.figure()  
plt.plot(x, y, 'o-', alpha=0.4, label='data')
plt.plot(xx, yfit, label='fit')
plt.xlabel('x values')
plt.ylabel('y values')
plt.legend(loc='best')
plt.show()

-4.49746906e-11 5.29905009e-11 5.50018697e-10 2.20772201e-09 6.39017905e-09 1.55495092e-08 3.40470758e-08 6.83516173e-08 1.27306250e-07 2.27304275e-07 2.46438276e-07

请记住,这会导致很多连锁反应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49304425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档