next up previous contents
Next: Code generation Up: Macsyma Previous: Substitutions - pattern matching

Matrices

 

In Macsyma

For comparison with other CAS choose from: Axiom Derive Maple Mathematica Reduce

xx: matrix([a11, a12], [a21, a22]);

                                  [ a11  a12 ]
                                  [          ]
                                  [ a21  a22 ]
yy: matrix([y1], [y2]);
                                     [ y1 ]
                                     [    ]
                                     [ y2 ]
determinant(xx);
                               a11 a22 - a12 a21
zz: xx^^(-1).yy;
                   [      a22 y1              a12 y2       ]
                   [ ----------------- - ----------------- ]
                   [ a11 a22 - a12 a21   a11 a22 - a12 a21 ]
                   [                                       ]
                   [      a11 y2              a21 y1       ]
                   [ ----------------- - ----------------- ]
                   [ a11 a22 - a12 a21   a11 a22 - a12 a21 ]
xx^^(-2);
               [             2                                 ]
               [          a22                  a12 a21         ]
               [  -------------------- + --------------------  ]
               [                     2                      2  ]
       Col 1 = [  (a11 a22 - a12 a21)    (a11 a22 - a12 a21)   ]
               [                                               ]
               [         a21 a22                a11 a21        ]
               [ - -------------------- - -------------------- ]
               [                      2                      2 ]
               [   (a11 a22 - a12 a21)    (a11 a22 - a12 a21)  ]

                           [         a12 a22                a11 a12        ]
                           [ - -------------------- - -------------------- ]
                           [                      2                      2 ]
                           [   (a11 a22 - a12 a21)    (a11 a22 - a12 a21)  ]
                   Col 2 = [                                               ]
                           [                                    2          ]
                           [        a12 a21                  a11           ]
                           [  -------------------- + --------------------  ]
                           [                     2                      2  ]
                           [  (a11 a22 - a12 a21)    (a11 a22 - a12 a21)   ]
factor(%);
               [        2                                       ]
               [     a22  + a12 a21          a12 (a22 + a11)    ]
               [  --------------------   - -------------------- ]
               [                     2                        2 ]
               [  (a11 a22 - a12 a21)      (a11 a22 - a12 a21)  ]
               [                                                ]
               [                                          2     ]
               [     a21 (a22 + a11)         a12 a21 + a11      ]
               [ - --------------------   --------------------  ]
               [                      2                      2  ]
               [   (a11 a22 - a12 a21)    (a11 a22 - a12 a21)   ]
v : matrix([2, -1, 1], [0, 1, 1], [-1, 1, 1]);
                                [  2   - 1  1 ]
                                [             ]
                                [  0    1   1 ]
                                [             ]
                                [ - 1   1   1 ]
eigenvectors(v);
             [[2, 1, [[0, 1, 1]]], [1, 2, [[1, 1, 0]]]]



Richard Liska