python - Numpy 检查是否存在每行 < 0 的解决方案?

标签 python matrix numpy

考虑以下代码

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/

相关文章:

C 编程和数组、矩阵操作

python - 根据pandas中的另一个列值有条件地填充列值

python - 在 Python 中一起使用 pandas groupby 和 numpy where

python - 无法使用 scikit-learn 导入 'datasets'

Python CSV : Find identical data in two CSV files and copy corresponding data

Python Dataframe 获取每行的 NaN 列

python - 使用 Python 和诱变剂进行 De-mojibaking

Python 3 正则表达式 $ 但不是字符串中的 $$

algorithm - matlab中如何找到两个矩阵之间的行与行对应关系

python - numpy 获取在矩阵中构成数组的 block