如何在4分中定义Python中的超平面?然后我如何定义4个超平面的交集(这应该是一个点)?

时间:2016-03-28 19:59:24

标签: python linear-algebra

我在R4及其坐标中得到4分:

P1:[x1, y1, z1, w1] 
P2:[x2, y2, z2, w2]
P3:[x3, y3, z3, w3]
P4:[x4, y4, z4, w4]

我如何在Python中用这些点定义超平面?

另外,假设我有4个超平面的方程式,我如何得到它们的交点(应该是一个点)?

谢谢! O操作。

1 个答案:

答案 0 :(得分:1)

超平面的方程式。

在给定非零常数K和一组系数 a = {a_1 ... a_n}的情况下,可以描述Rn中的超平面,作为点 x <的点集/ em> =(x_1 .. x_n)解决方程式

总和(a_n * x_n)= k

在R4中选择k = 1,并使用

X =(P1; P2; P3; P4)

您可以通过

解决系数 a

X a = 1

a = X ^ -1 * 1

第2部分更多相同。

有4组方程式

x a = k

属于他们的点都可以解决为

x = k 'A ^ -1

numpy那是:

import numpy as np
def hyper4(p1,p2,p3,p4):
   X=np.matrix([p1,p2,p3,p4])
   k=np.ones((4,1))
   a=numpy.matrix.dot(np.linalg.inv(X), k)
   print "equation is x * %s = 1" % a
   return a

用法:

   hyper4([0,0,1,1],[0,3,3,0],[0,5,2,0],[1,0,0,7])

关于这一点

a1=hyper4(P1,P2,P3,P4)
a2=hyper4(P5,P6,P7,P8)
a3=hyper4(P9,P10,P11,P12)
a4=hyper4(P13,P14,P15,P16)

A=np.hstack([a1,a2,a3,a4])
k=np.ones((1,4))

x=numpy.matrix.dot(k, np.linalg.inv(A))
print "your point is %s" % x