如何用约束求解这个线性方程?

时间:2013-12-17 10:35:02

标签: math linear least-squares equation-solving linear-equation

我有a1,a2,a3,b1,b2,b3作为已知值,所以我可以列出如下的两个方程式。但是,这还不足以让H解决。所以,还有额外的约束|| H || = 1。

matrix H = [x y z]^T
[a1, a2, a3] H = 0
[b1, b2, b3] H = 0

我想问一下如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

H必须是[a1,a2,a3]和[b1,b2,b3]的叉积的倍数。计算,然后除以它的范数得到单位向量;减去也有效。


一般情况下,如果不是0,而是a4和b4,而|| H || = k:扫描(2乘4)矩阵,得到类似[c1 z + d1,c2 z + d2,z] ^ T的解。取正则的平方,将其设置为k ^ 2,然后在z中得到一个二次方程,得到0,1或2个解。

几何上:两个线性方程a1 x + a2 y + a3 z = a4和b1 x + b2 y + b3 z = b4中的每一个确定平面(1);如果它们不平行(2),它们的交点是一条线;解是该线与半径为k的以原点为中心的球之间的0,1或2个交点。在你的原始(3)情况下,飞机穿过原点,因此它们的交点也是如此 - 如果它们不同则是一条线(2);所以你得到了与单位球体的两个交叉点。

(1)除非[a1,a2,a3]或[b1,b2,b3]为[0,0,0]。 (2)I.e。如果矢量[a1,a2,a3]和[b1,b2,b3]不是共线的。
(3)没有双关语。