我需要了解用python代码编写的飞机方程式。
从3d数据集中应用降维以获取前两个主要成分。
pca.components_是定义平面的这两个向量
array([[-0.93636116,-0.29854881,-0.18465208], [0.34027485,-0.90119108,-0.2684542]])
我想了解定义平面的最后两行:
我一直在研究所有平面方程,但找不到与z =(R [0,2] * x1 + R [1,2] * x2)/(1-R [ 2,2])
axes = [-1.8, 1.8, -1.3, 1.3, -1.0, 1.0]
x1s = np.linspace(axes[0], axes[1], 10)
x2s = np.linspace(axes[2], axes[3], 10)
x1, x2 = np.meshgrid(x1s, x2s)
C = pca.components_
R = C.T.dot(C)
z = (R[0, 2] * x1 + R[1, 2] * x2) / (1 - R[2, 2])
什么描述R? 我知道这是一个3x3矩阵,在下一行使用了它的最后一列, 但是为什么呢?
这是情节:
预先感谢您帮助理解它。
可以使用基本平面方程式绘制相同的平面: a x + b y + c * z = 0,(a,b,c)为法向向量。
normal = np.cross(C[0,:],C[1,:])
z_dav = (-normal[0]*x1-normal[1]*x2)/(normal[2])
ax.plot_surface(x1, x2, z, alpha=0.1, color="y")
ax.plot_surface(x1, x2, z_dav, alpha=0.3, color="g")
both planes are the same: z(yellow) and z_dav(green)
无论如何,我仍然想了解这一点:
R = C.T.dot(C)
z = (R[0, 2] * x1 + R[1, 2] * x2) / (1 - R[2, 2])