检查2维向量的正线性组合

时间:2014-07-30 08:47:15

标签: c++ algorithm math linear-algebra

我在平面上有三个向量,我想检查第三个是否是其他两个的正线性组合尽可能快。 也就是说,如果y = ax + bz,我想检查a和b是否都是正数。 如果x和z是正交的,我当然可以检查标量积和。但在这种情况下,他们不是。有没有更快的方法解决线性系统? 当然,我可以以封闭的形式解决线性系统。 谢谢

1 个答案:

答案 0 :(得分:1)

考虑带z的载体产品:

y^z = a x^z + b z^z 
    = a x^z            // since z^z = 0

a   = y^z / x^z

如果a,则signum(y^z) == signum(x^z)为正。

同样,如果b,则signum(x^y) == signum(x^z)为正。

x = (x0,x1)y = (y0,y1)的矢量积的(正交分量)是

x^y = x0*y1 - x1*y0