问题描述
我试图在给出点y = a_0 + a_1*x + a_2*(x**2)
的python中绘制二次方程(x,y)
。我已经将这些点放入数组中,但是在绘图上遇到了麻烦。有人可以帮助我了解我的代码在哪里出问题吗?
data = np.array([[0,0],[1,1],[2,8],[3,8]])
x = data[:,0]
y = data[:,1]
a_0,a_1,a_2 = np. polyfit(x,y,z,1)
最后一行返回错误
没有足够的值可解压(预期3,得到2)
解决方法
您的数据
import numpy as np
data = np.array([[0,0],[1,1],[2,8],[3,8]])
x = data[:,0]
y = data[:,1]
您可以使用numpy.polyfit仅返回一个输出参数来拟合二次多项式
z = np.polyfit(x,y,2)
z
array([-0.25,3.85,-0.65])
然后您可以将系数分配给多项式p
,以便将该多项式应用于某些值
p = np.poly1d(z)
p(x)
array([-0.65,2.95,6.05,8.65])