-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 に答える