检查二维向量的正线性组合
Check positive linear combination of 2 dimensional vectors
我在平面上有三个向量,我想尽快检查第三个向量是否是其他两个向量的正线性组合。如果y = ax + bz,我想检查a和b是否都是正的。如果x和z是正交的,我当然可以检查标量积。但在这种情况下,他们不是。有没有比解线性方程组更快的方法?当然我可以解出封闭形式的线性方程组。由于
考虑与z
的向量积:
y^z = a x^z + b z^z
= a x^z // since z^z = 0
a = y^z / x^z
如果signum(y^z) == signum(x^z)
为正,则a
为正
同理,signum(x^y) == signum(x^z)
为正,b
为正。
x = (x0,x1)
与y = (y0,y1)
向量积的正交分量为
x^y = x0*y1 - x1*y0
相关文章:
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 可组合的lambda/std::函数与std::可选
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 混合组合和继承的C++问题
- 我需要将多个函数组合为一个函数
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 通过组合不同的类型来创建唯一的id
- 向量上的线性搜索
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 模板元编程:如何将参数包组合成新的参数包
- 检查向量是否具有所有可能的字符组合
- 如何在加密++中将两个源组合成新的源
- 根中的组合
- 二叉搜索如何比线性搜索更快?
- 线性丢番图方程 - 求给定区间内的解数和解
- 查找自动生成键并具有线性内存消耗的小型关联数组
- 犰狳C++:带有模量计算的线性组合
- 一般采用可索引/可调用的线性组合
- 实现欧几里得除法,根据两个正整数的线性组合编写这两个正整数的最大公约数
- 检查二维向量的正线性组合