python - 在 Numpy 多项式中获取值的问题
问题描述
import numpy as np
import matplotlib.pyplot as plt
from numpy.polynomial import Chebyshev as T
X=np.array([1,2,4,5,6,7,8,9,10,11,12,13])
data=np.array([2.312,4.563,6.765,7.897,12.456,7.568,6.543,3.453,6.654,9.678,11.453,19.567])
p=T.fit(X,data,6)
plt.plot(X,data)
plt.plot(*p.linspace(60))
我生成了一个数据,我正在使用 numpy 多项式切比雪夫进行拟合。chebyshev 正在拟合数据,但我不知道如何从这段代码中获取拟合的数据值?有什么方法可以获得拟合值还是我必须更改整个代码?
解决方案
在代码的末尾,Chebyshev
数据结构p
包含获得任何拟合值所需的内容。例如,表达式
list(zip(*p.linspace(60)))
给出 60 个点的列表,其中每个坐标是和x
之间的一个值,这是您为值指定的界限. 对应的值是该值的拟合值。然后,您可以选择您想要的点。1
13
x
y
x
这是运行代码后该表达式的结果:
[(1.0, 2.541204853676799),
(1.2033898305084745, 2.808340815346975),
(1.4067796610169492, 3.0743429556868413),
(1.6101694915254239, 3.348688496878723),
(1.8135593220338984, 3.637978305373278),
(2.016949152542373, 3.9462679999194794),
(2.2203389830508478, 4.27538454719654),
(2.4237288135593222, 4.625228345047772),
(2.6271186440677967, 4.994060793316362),
(2.830508474576271, 5.3787773522831195),
(3.0338983050847457, 5.775166088706113),
(3.2372881355932206, 6.178151709462269),
(3.440677966101695, 6.582025082790894),
(3.6440677966101696, 6.980658247139146),
(3.8474576271186445, 7.367704907609403),
(4.050847457627119, 7.736786420008617),
(4.254237288135593, 8.081663262499552),
(4.4576271186440675, 8.396391994853994),
(4.661016949152542, 8.675467705307872),
(4.864406779661017, 8.913951945018319),
(5.067796610169491, 9.107586150122668),
(5.271186440677966, 9.252890551399389),
(5.474576271186441, 9.347248571530947),
(5.677966101694915, 9.388976709968594),
(5.88135593220339, 9.37737991539911),
(6.084745762711865, 9.312792445813466),
(6.288135593220339, 9.196604216177416),
(6.491525423728814, 9.031272633704036),
(6.694915254237289, 8.820319920728197),
(6.898305084745763, 8.568315925182945),
(7.101694915254238, 8.280846418677859),
(7.305084745762712, 7.964466882179304),
(7.508474576271187, 7.626641779292636),
(7.711864406779662, 7.275669317146346),
(7.915254237288136, 6.920591694878116),
(8.11864406779661, 6.5710908397228325),
(8.322033898305085, 6.237369630702523),
(8.52542372881356, 5.930018609918223),
(8.728813559322035, 5.6598681814437874),
(8.932203389830509, 5.437826297821619),
(9.135593220338983, 5.274701634160355),
(9.338983050847459, 5.1810122498344615),
(9.542372881355933, 5.166779737785785),
(9.745762711864407, 5.241308861427015),
(9.949152542372882, 5.412952679147101),
(10.152542372881356, 5.68886315641859),
(10.35593220338983, 6.074727265506907),
(10.559322033898306, 6.574488572781565),
(10.76271186440678, 7.190054313629292),
(10.966101694915254, 7.920987954969137),
(11.16949152542373, 8.764187245369472),
(11.372881355932204, 9.713547752766893),
(11.576271186440678, 10.75961188978718),
(11.779661016949154, 11.889203426668058),
(11.983050847457628, 13.08504749178393),
(12.186440677966102, 14.325376059772596),
(12.389830508474578, 15.583518927263885),
(12.593220338983052, 16.827480176210102),
(12.796610169491526, 18.019500124818624),
(13.0, 19.115602766086262)]
推荐阅读
- python - 将函数应用于列表对象
- javascript - for循环反应一次显示20个产品
- c# - 为什么 PresentViewControllerAsync 不阻塞?
- elixir - 是否有用于构建具有与变量相同的键和值的映射的惯用语?
- amazon-web-services - 通过 EMR 控制台运行 PySpark 时 ExitCodeException exitCode=13
- css - Webfont 变音字符坏了?
- cuda - 无法在 Ubuntu 16.04 上安装 CUDA
- flutter - 在颤动中滚动到水平ListView上的某个索引
- javascript - 如何将 NPM 包导入浏览器的控制台
- ios - React Native iOS 的无效注册