老师留了这么个作业,莫名其妙的,暂且顺着思路做个雏形试了试,不知道是否严谨,先记下来。
先整一个最简单的思路
一,首先是画图。X,Y,Z是数组数据,然后下面的代码一看就可以理解,求出a,b,c就可以画了。
Z = a*X + b*Y + c
surf = ax.plot_surface(X, Y, Z, cmap=cm.Greens,linewidth=0, antialiased=False)
X,Y,Z我们这么取:
X = np.arange(-5, 5, 0.25) #取值范围-5到5,间隔0.25
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y) #根据X,Y整一大堆点,嗯,先这么理解
二,开始求a,b,c。预测平面方程就是上面的z=ax+by+c, 给出一堆点(x,y,z),我们要求出a,b,c的值,使这些点到平面的距离最小
def error(p): #顺着思路定义个相关函数
a,b,c= p
return z-(a*x+b*y+c)
x = np.random.randint(-5, 5, 16) #生产随机数,假装这就是实验数据
y =