python - 给定 4 个点,如何在 Python 中定义超平面?那么我如何定义 4 个超平面的交点(这应该是一个点)?

标签 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 个超平面的方程,我如何获得它们的交点(应该是一个点)?

谢谢! 奥。

最佳答案

超平面方程。

给定非零常数 K 和一组系数a={a_1 ... a_n},Rn 中的超平面可以描述为点集x=(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

关于python - 给定 4 个点,如何在 Python 中定义超平面?那么我如何定义 4 个超平面的交点(这应该是一个点)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270116/

相关文章:

python - 无法使用 opencv minAreaRect 获取对象的边界

python - TypeError : int() argument must be a string, 类字节对象或数字,不是 'datetime.datetime'

c++ - 在 C++ 中使用 Eigen 包求解三对角矩阵

matlab - 如何求解线性代数方程 AC=D,其中 A 是非方阵

python - 使用 pySpark 迭代数据框的每一行

python - python错误中的小数对象

Python:在同一实例上多次调用 __init__()

c++ - 将 Armadillo 中的矩阵从稀疏矩阵转换为密集矩阵(spmat 到 mat)

python - 带模的线性方程

python - python中五对角矩阵的Cholesky优化