next up previous
Next: 行列の演算(+,1,*,1/?,^) Up: 線型代数 Previous: 線型代数まわりの関数をエクスポートする(export(linalg);)

行列の入力(Dom::Matrix())

行列をmupad に入力してやるには、Dom::Matrix() を使います。
A:=Dom::Matrix()([[1,2],[3,4]]);

                                +-      -+
                                |  1, 2  |
                                |        |
                                |  3, 4  |
                                +-      -+
Dom::Matrix() を入力するのが面倒な場合には、これを適当な記号で 定義しておくと便利です。平田さまのページ (http://www.ed.ehime-u.ac.jp/ hirata/MuPAD/index.html ) にならって
MAT:=Dom::Matrix();
と打ってみましょう。 これ以後は
A:=MAT([[1,2],[3,4]]);
で行列が入力できるようになります。

Dom::Matrix() の"()" のなかには、実は係数環を指定することができます。

k:=Dom::AlgebraicExtension(Dom::Rational, z^2+z+1 = 0, z)
MAT:=Dom::Matrix(k);
A:=MAT([[1+z,2],[3,4]]);

                                +-        -+
                                |  z+1, 2  |
                                |          |
                                |  3,   4  |
                                +-        -+
などとやると、$ k$ の元を成分に持つ行列($ M_2(k)$ の元)を 与えることができるわけです。

$ (i,j)$ -成分を指定して行列を与えるには、 ``->" をもちいます。

matrix(2,2,(i,j)->i);         //version 2.0 以降では matrix() が準備されている。
                              //旧バージョンでは matrix() の代わりに
                              // 上の MAT() を使えばよい

                                +-      -+
                                |  1, 1  |
                                |        |
                                |  2, 2  |
                                +-      -+

行を表す変数を明示できるのでこの方が便利です。 ただし旧バージョンとの互換性 を保つためには行は i, 列は j を使っておくのが無難でしょう。

対角行列を与えるには"Diagonal" を最後に指定すると楽ができます。

En:=MAT(n,n,i->1,Diagonal): // 単位行列

(ただし、$ E$$ I$ はそれぞれ自然対数の底 $ e$ と虚数単位 $ i$ とに 割り当てられているので注意が必要です。)



2008-11-15