考虑以下代码
X=np.matrix([[1,-1,1],[-1,0,1]])
print X.T
'''
[[ 1 -1]
[-1 0]
[ 1 1]]
'''
我想检查是否存在转置具有 <0 解的解。例如,这意味着检查以下是否有解决方案
1*y1 + -1*y2 < 0
-1*y1 + 0*y2 < 0
1*y1 + 1*y2 < 0
尝试阅读 http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.solve.html#numpy.linalg.solve但显然没有这样的运气
最佳答案
您的问题似乎等同于询问是否包含原点以及向量 U=r_[1,-1,1]
和 V=r_[-1 , 0, 1]
延伸到所有坐标均为负的 3 维空间的八分圆。
叉积 UxV
(或 cross(U,V)
)垂直于该平面。如果此叉积具有三个非零分量,所有分量均具有相同的符号,那么它的法线都不能在可怕的八分圆中。对于你的数字,我得到所有三个分量都是负的,所以没有解决方案。
[更新]
一般来说,当法线包含零时会发生棘手的事情:
三个零:您的原始向量是平行的,或者其中一个为零。选择一个不为零的元素,如果所有分量都具有相同的符号,那么您就有了一个解决方案。
双零:您的平面是 X=0、Z=0、Y=0 之一。因此一维总是非负的,没有解。
一零:平面包括 X、Y 或 Z 轴。当且仅当法线的其余两个分量具有不同的符号时,才有解决方案。
关于python - Numpy 检查是否存在每行 < 0 的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16717951/