2017-04-04 31 views
0

の固有ベクトルの出力の2番目の部分は、最初の部分の固有値に対応する固有ベクトルのリストです。Maxima:固有ベクトルを行列に変換する

例えば:

[[[1,-1/4],[1,1]],[[[1,2/3]],[[1,-1]]]] 

は(1,2/3)の固有値1の固有ベクトルであり、(1、-1)固有値(-1/4)の固有ベクトルです。

どのようにこれらのベクトルを行列にすることができますか(この場合、行列([1,1]、[2/3、-1])と同じです)。

おかげ

答えて

0
(%i1) display2d: false $ 
(%i2) r: [[[1,-1/4],[1,1]],[[[1,2/3]],[[1,-1]]]] $ 
(%i3) s: second(r) $ 
(%i4) s: map('first, s) $ 
(%i5) s: apply('maplist, cons("[", s)) $ 
(%i6) s: apply('matrix, s); 
(%o6) matrix([1,1],[2/3,-1]) 
0

ここでの試みです。最初に複数の割り当てでピースを抽出したので、ピースの意味を覚えやすくなりました。

(%i1) foo : [[[1,-1/4],[1,1]],[[[1,2/3]],[[1,-1]]]] $ 

(%i2) [[vals, mults], vecs] : foo; 
         1     2 
(%o2)   [[[1, - -], [1, 1]], [[[1, -]], [[1, - 1]]]] 
         4     3 
(%i3) vals; 
             1 
(%o3)        [1, - -] 
             4 
(%i4) mults; 
(%o4)        [1, 1] 
(%i5) vecs; 
            2 
(%o5)      [[[1, -]], [[1, - 1]]] 
            3 
(%i6) apply (append, vecs); 
            2 
(%o6)       [[1, -], [1, - 1]] 
            3 
(%i7) apply (matrix, apply (append, vecs)); 
            [  2 ] 
            [ 1 - ] 
(%o7)        [  3 ] 
            [  ] 
            [ 1 - 1 ] 
(%i8) transpose (%); 
            [ 1 1 ] 
            [  ] 
(%o8)        [ 2  ] 
            [ - - 1 ] 
            [ 3  ] 

固有ベクトルの数が固有値の数やその他の特殊な場合の数と異なる場合には、そのことが有効かどうかは不明です。しかし、これはあなたに何かを与えることを望む。

関連する問題