-3

我正在尝试解决一个方程,但我不知道如何做到这一点。我有一个向量 x 实际上是一个矩阵类型,我想解方程 x.transpose()*v=0 其中 v 是另一个向量

有人能帮我吗?

我提前谢谢你

4

2 回答 2

2

取任何向量并将其投影到 的正交补码x

Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) 
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> x = numpy.matrix([1, 3.14, 2.73]).T
>>> P = x * x.T / (x.T * x) # projector onto the space spanned by x
>>> Pperp = numpy.identity(3) - P # projector onto x's orthogonal complement
>>> Pperp * x
matrix([[  0.00000000e+00],
        [  0.00000000e+00],
        [ -2.22044605e-16]])
>>> y = numpy.matrix(numpy.ones((3,1)))
>>> yperp = Pperp * y
>>> yperp
matrix([[ 0.62484642],
        [-0.17798225],
        [-0.02416928]])
>>> x.T * yperp
matrix([[ -4.16333634e-16]])

正如所写的那样,这是非常不受限制的并且给出了一个相当任意的解决方案,但是可以建立相同的想法来为所有解决方案找到一组基向量。

于 2011-08-18T05:27:17.040 回答
1

x.T*v是在向量和之间编写点积的另一种方式,因此听起来您想找到一个与正交的向量。对于一般情况,有无限多个解(在 3 维中,想象垂直于 x 的平面中的任何向量)。xvvxv

你在评论中说过你知道有很多可能的解决方案,你怎么能得到一个,所以这里有一个给你:

v = 0
于 2011-08-18T03:20:03.603 回答