トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

tips-maxima-matrix

  MAXIMA を使って、行列の計算をする

行列をつくる

 行列に名前をつける. さて、matrix だけを使っても色々な行列の計算を maxima にさせることは可
能なのですが、計算のたびに一々成分を入力するのでは全く疲れてしまいます。そこで、一度入力した行列
に適当な名前を付けて、名前で色々な操作ができれば便利です。maxima で、何かの対象に名前を付ける
は記号 : を使います。例を見てみましょう。
(%i3) A : matrix([1,2,3],[4,5,6],[7,8,9]);
                                 [ 1  2  3 ]
                                 [         ]
(%o3)                            [ 4  5  6 ]
                                 [         ]
                                 [ 7  8  9 ]

(%i4) B : matrix([a,b,c,d],[e,f,g,h]);
                               [ a  b  c  d ]
(%o4)                          [            ]
                               [ e  f  g  h ]
これで、A, B といった名前で行列を使うことができるようになりました。この A や B を変数と言います。

足し算

(%i3) A : matrix([1,2],[3,4]);
                                  [ 1  2 ]
(%o3)                             [      ]
                                  [ 3  4 ]
(%i4) B : matrix([a,b],[c,d]);
                                  [ a  b ]
(%o4)                             [      ]
                                  [ c  d ]
(%i5) C : A + B ;
                              [ a + 1  b + 2 ]
(%o5)                         [              ]
                              [ c + 3  d + 4 ]

かけ算(スカラー)

(%i6) C : A . B ;
                          [  2 c + a    2 d + b  ]
(%o6)                     [                      ]
                          [ 4 c + 3 a  4 d + 3 b ]

かけ算 ( 逓倍 )

(%i8) A * B ;
                                [  a   2 b ]
(%o8)                           [          ]
                                [ 3 c  4 d ]

逆行列

(%i9) AI : invert ( A );
                                [ - 2   1  ]
                                [          ]
(%o9)                           [  3     1 ]
                                [  -   - - ]
                                [  2     2 ]
(%i10) A . AI ;
                                  [ 1  0 ]
(%o10)                            [      ]
                                  [ 0  1 ]